Module:NUMBEROF: Difference between revisions

Content deleted Content added
No edit summary
No edit summary
Line 5:
return nil
else
return mw.ustring.lower(mw.text.trim(arg))
end
end
Line 14:
return count
end
 
-- Credit: http://lua-users.org/wiki/FormattingNumbers
function comma_value(amount)
local formatted = amount
while true do
formatted, k = string.gsub(formatted, "^(-?%d+)(%d%d%d)", '%1,%2')
if (k==0) then
break
end
end
return formatted
end
 
 
function p.numberof(frame)
local pframe = frame:getParent()
local args = pframe.args
local tname = "NUMBEROF"
local result = 0
local data = mw.ext.data.get("Wikipedia_statistics/data.tab")
local action = mw.ustring.lower(trimArg(args[1])) -- "ARTICLES, PAGES, EDITS, USERS, ACTIVEUSERS, ADMINS or FILES"
if not action then
local site = mw.ustring.lower(trimArg(args[2])) -- "en" or "en.wikipedia" or "en.wikiquote" etc..
error("Parameter 1 is missing. See [[Template:" .. tname .. "]] documentation")
local comma = trimArg(args[3]) -- If set to "N" use commas in output
end
local site = mw.ustring.lower(trimArg(args[2])) -- "en" or "en.wikipedia" or "en.wikiquote" etc..
if not site then
error("Parameter 1 is missing. See [[Template:" .. tname .. "]] documentation")
end
local site2split = mw.text.split(site, "%.")
if tableLength(site2split) == 1 then
site = site .. ".wikipedia"
end
local comma = trimArg(args[3]) -- If set to "N" use commas in output
 
for k,v in pairs(data['data']) do
if site == mw.ustring.lower(v[1]) then
if action == "activeusers" then -- activeusers
result = v[2]
elseif action == "admins" then -- admins
result = v[3]
elseif action == "articles" then -- articles
result = v[4]
elseif action == "edits" then -- edits
result = v[5]
elseif action == "files" then -- files
result = v[6]
elseif action == "pages" then -- pages
result = v[7]
elseif action == "users" then -- users
result = v[8]
end
end
end
if result > 0 and comma then
result = comma_value(result)
end
return result