Module:NUMBEROF/rank
Appearance
-- Return a table of statistics to be accessed once per page using mw.loadData.
-- The table ranks each site of form xxx.wikipedia by its number of articles.
local function makeData()
local statistics = mw.ext.data.get('Wikipedia statistics/datarank.tab') -- https://commons.wikimedia.org/wiki/Data:Wikipedia_statistics/datarank.tab
local iSite, iArticles
for i, v in ipairs(statistics.schema.fields) do
if v.name == 'site' then
iSite = i
elseif v.name == 'articles' then
iArticles = i
end
end
local rankBySite, rankByIndex = {}, {}
for _, v in ipairs(statistics.data) do
rankBySite[v[iSite]] = v[iArticles] -- rank of site from number of articles
rankByIndex[v[iArticles]] = v[iSite] -- inverse
end
return {
rankByIndex = rankByIndex, -- rankByIndex[1] == 'en.wikipedia'
rankBySite = rankBySite, -- rankBySite['en.wikipedia'] == 1
}
end
return makeData()