Jump to content

Module:Sandbox/SiBr4

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by SiBr4 (talk | contribs) at 13:39, 28 November 2015. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

local p = {}

-------------------------

function p.lua_code2name(code1,code2)

--Combine code parameters
local code = string.upper((code1 or "")..(code2 and code2~="" and "-"..code2 or ""))

--Check if valid code
if not string.find(code,"[^A-Z0-9%-]") --No non-alphanumeric characters allowed
   and (string.find(code,"^%u%u%-%w%w?%w?$") --3166-2 codes must be two letters, hyphen, and 1-3 letters or digits
   	    or string.find(code,"^%u%u$")        --3166-1 codes can be two letters..
   	    or string.find(code,"^%w%w%w$"))     --..or three letters or digits
   and not string.find(code,"%-%w*%-") --Multiple hyphens not allowed
then
  --Change back to code1 and code2
  code1, _, code2 = string.match(code,"^(%u%u)(%-(%w%w?%w?))?$")
  return "\""..code1.."\" and \""..code2.."\""
else
  return error("Invalid code "..code)
end

end

function p.code2name(frame)

local args = require("Module:Arguments").getArgs(frame)
return p.lua_code2name(args.code1,args.code2)

end

-------------------------

function p.listdata(frame)

local args = require('Module:Arguments').getArgs(frame)

local map = {}
for k,v in pairs(args) do
  if tonumber(k) ~= nil then
    table.insert(map, k)
  end
end
table.sort(map)

local list = mw.html.create('table')
list:css("background-color","#ecfcf4")

for n = 1, #map, 1 do
  local row = list:tag("tr")
  local c = args[map[n]]
  local p = "Template:Country data "..c
  local var = args["var"..map[n]]
  local note = args["note"..map[n]]
  local vartext
  if var
    then vartext = " (<code>"..var.."</code> variant)"
    else vartext = ""
  end
  if require('Module:Redirect').luaIsRedirect(p)
    then row:tag("td"):css("padding","0px 10px"):addClass("plainlinks"):wikitext("["..mw.title.new(p):fullUrl("redirect=no").." "..p.."]"..vartext)
    else row:tag("td"):css("padding","0px 10px"):wikitext("[["..p.."]]"..vartext)
  end
  row:tag("td"):css("padding","0px 10px"):wikitext(frame:expandTemplate({title="flaglist", args={c, variant=(var or "")}}))
  row:tag("td"):css("padding","0px 10px"):wikitext(note or "")
end

return list

end

function p.listdata2(frame)

local args = require('Module:Arguments').getArgs(frame,{removeBlanks=false})

local list = mw.html.create('table')
list:css("background-color","#ecfcf4")

for n,c in ipairs(args) do
  if c ~= "" then
    local row = list:tag("tr")
    local p = "Template:Country data "..c
    local var = args["var"..n]
    local note = args["note"..n]
    local vartext
    if var
      then vartext = " (<code>"..var.."</code> variant)"
      else vartext = ""
    end
    if require('Module:Redirect').luaIsRedirect(p)
      then row:tag("td"):css("padding","0px 10px"):addClass("plainlinks"):wikitext("["..mw.title.new(p):fullUrl("redirect=no").." "..p.."]"..vartext)
      else row:tag("td"):css("padding","0px 10px"):wikitext("[["..p.."]]"..vartext)
    end
    row:tag("td"):css("padding","0px 10px"):wikitext(require("Module:Flagg").luaMain(frame,{"usc", c, variant=(var or "")}))
    row:tag("td"):css("padding","0px 10px"):wikitext(note or "")
  end
end

return list

end

-------------------------

function p.ec(frame)

local p = frame:preprocess("{{Wikipedia:List of Wikipedians by number of edits/5001โ€“6000}}")
local i = string.find(p,"User:SiBr4")
if i then
  return string.sub(p,i-10,i-6)
else
  return "?"
end

end

-------------------------

function p.test(frame)

return ""

end

-------------------------

return p