模組:Article count by project and class

维基百科,自由的百科全书
文档图示 模块文档[创建]
local class = mw.loadData('Module:Class/data')

local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:Yesno')
local p = {}

local function returnClassName(k)
	k = string.lower(k)
	
	for i, v in pairs(class) do
		if k == v.code then
			return v.name, v.name2
		end
	end	

end

function p.main(frame)
	local args = getArgs(frame)
	return p._main(args)
end

function p._main(args)
	local count = 0
	
	for i, v in ipairs(args) do
		local categoryNameS, categoryNameT  = returnClassName(v)
		
		if returnClassName(v) then
			count = count 
				+ mw.site.stats.pagesInCategory( categoryNameS .. '级' .. (args.project or '') .. '条目', 'pages' ) 
				+ mw.site.stats.pagesInCategory( categoryNameT .. '級' .. (args.project or '') .. '條目', 'pages' )
		end

	end

	if tonumber(args.weight) then
		count = count * args.weight
		count = math.floor(count)
	end

    if yesno(args.formatnum) then
	    count = mw.language.new('en'):formatNum(count)
    end 

    return count
end

return p