local function remove_wiki_link (str)
return (str:gsub( "%[%[([^%[%]]*)%]%]", function(l)
return l:gsub( "^[^|]*|(.*)$", "%1" ):gsub("^%s*(.-)%s*$", "%1");
end));
end
local function main (frame)
local user = frame.args1
local page = {
1 = "Wikipedia:List of Wikipedians by number of edits/1–1000",
2 = "Wikipedia:List of Wikipedians by number of edits/1001–2000",
3 = "Wikipedia:List of Wikipedians by number of edits/2001–3000",
4 = "Wikipedia:List of Wikipedians by number of edits/3001–4000",
5 = "Wikipedia:List of Wikipedians by number of edits/4001–5000",
6 = "Wikipedia:List of Wikipedians by number of edits/5001–6000",
7 = "Wikipedia:List of Wikipedians by number of edits/6001–7000",
8 = "Wikipedia:List of Wikipedians by number of edits/7001–8000",
9 = "Wikipedia:List of Wikipedians by number of edits/8001–9000",
10 = "Wikipedia:List of Wikipedians by number of edits/9001–10000",
}
local i = 1
local content
repeat
content = mw.title.new (pagei]):getContent();
if string.find(content, "|"..user.."]]\n") or string.find(content, "| "..user.."\n") then
pgnum = i
else
if i == 10 then
pgnum = 0
else
pgnum = nil
end
end
i = i + 1
until ((pgnum == i - 1) or (pgnum == 0))
if pgnum == 0 then
outputRank = "nil"
outputName = user
outputCount = "nil"
else
for rank, name, count in string.gmatch(content, "|%-\n|%s(.-)\n|%s(.-)\n|%s(.-)\n") do
rank = mw.text.trim(rank)
name = mw.text.trim(name)
count = mw.text.trim(count)
name = remove_wiki_link (name)
if name == user then
outputRank = rank
outputName = name
outputCount = count
break
end
end
end
if frame.args2 == "rank" then
return outputRank
elseif frame.args2 == "count" then
return outputCount
else
return outputRank .. " " .. outputName .. " " .. outputCount
end
end
return {
main = main,
}
local function remove_wiki_link (str)
return (str:gsub( "%[%[([^%[%]]*)%]%]", function(l)
return l:gsub( "^[^|]*|(.*)$", "%1" ):gsub("^%s*(.-)%s*$", "%1");
end));
end
local function main (frame)
local user = frame.args1
local page = {
1 = "Wikipedia:List of Wikipedians by number of edits/1–1000",
2 = "Wikipedia:List of Wikipedians by number of edits/1001–2000",
3 = "Wikipedia:List of Wikipedians by number of edits/2001–3000",
4 = "Wikipedia:List of Wikipedians by number of edits/3001–4000",
5 = "Wikipedia:List of Wikipedians by number of edits/4001–5000",
6 = "Wikipedia:List of Wikipedians by number of edits/5001–6000",
7 = "Wikipedia:List of Wikipedians by number of edits/6001–7000",
8 = "Wikipedia:List of Wikipedians by number of edits/7001–8000",
9 = "Wikipedia:List of Wikipedians by number of edits/8001–9000",
10 = "Wikipedia:List of Wikipedians by number of edits/9001–10000",
}
local i = 1
local content
repeat
content = mw.title.new (pagei]):getContent();
if string.find(content, "|"..user.."]]\n") or string.find(content, "| "..user.."\n") then
pgnum = i
else
if i == 10 then
pgnum = 0
else
pgnum = nil
end
end
i = i + 1
until ((pgnum == i - 1) or (pgnum == 0))
if pgnum == 0 then
outputRank = "nil"
outputName = user
outputCount = "nil"
else
for rank, name, count in string.gmatch(content, "|%-\n|%s(.-)\n|%s(.-)\n|%s(.-)\n") do
rank = mw.text.trim(rank)
name = mw.text.trim(name)
count = mw.text.trim(count)
name = remove_wiki_link (name)
if name == user then
outputRank = rank
outputName = name
outputCount = count
break
end
end
end
if frame.args2 == "rank" then
return outputRank
elseif frame.args2 == "count" then
return outputCount
else
return outputRank .. " " .. outputName .. " " .. outputCount
end
end
return {
main = main,
}