Permanently protected module
From Wikipedia, the free encyclopedia


local p = {}



function p.fetch(frame)

	local template = nil

	local return_value = nil



	-- Use demo parameter if it exists, otherswise use current template name

	local namespace = mw.title.getCurrentTitle().namespace

	if frame.args"demo" and frame.args"demo" ~= "" then

		template = mw.ustring.gsub(frame.args"demo"],"^[Tt]emplate:","")

	elseif namespace == 10 then -- Template namespace

		template = mw.title.getCurrentTitle().text

	elseif namespace == 828 then -- Module namespace

		template = (mw.site.namespaces828].name .. ":" .. mw.title.getCurrentTitle().text)

	end



	-- If in template or module namespace, look up count in /data

	if template ~= nil then

		namespace = mw.title.new(template, "Template").namespace

		if namespace == 10 or namespace == 828 then

			template =  mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end

			template =  mw.ustring.gsub(template, "/sandbox$", "") -- strip /sandbox from end

			local index = mw.ustring.sub(mw.title.new(template).text,1,1)

			local status, data = pcall(function () 

				return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other"))) 

			end)

			if status then

				return_value = tonumber(datamw.ustring.gsub(template, " ", "_")])

			end

		end

	end

	

	-- If database value doesn't exist, use value passed to template

	if return_value == nil and frame.args1 ~= nil then

		local arg1=mw.ustring.match(frame.args1], '[%d,]+')

		if arg1 and arg1 ~= '' then

			return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R'))

		end

	end

	

	return return_value	

end



-- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]]

function p.tabulate(frame)

	local list = {}

	for i = 65, 91 do

		local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i)))

		for name, count in pairs(data) do

			table.insert(list, {mw.title.new(name, "Template").fullText, count})	

		end

	end

	table.sort(list, function(a, b)

		return (a2 == b2]) and (a1 < b1]) or (a2 > b2])

	end)

	local lang = mw.getContentLanguage();

	for i = 1, #list do

		listi = ('|-\n| %d || [[%s]] || %s\n'):format(i, listi][1]:gsub('_', ' '), lang:formatNum(listi][2]))

	end

	return table.concat(list)

end



return p
Permanently protected module
From Wikipedia, the free encyclopedia


local p = {}



function p.fetch(frame)

	local template = nil

	local return_value = nil



	-- Use demo parameter if it exists, otherswise use current template name

	local namespace = mw.title.getCurrentTitle().namespace

	if frame.args"demo" and frame.args"demo" ~= "" then

		template = mw.ustring.gsub(frame.args"demo"],"^[Tt]emplate:","")

	elseif namespace == 10 then -- Template namespace

		template = mw.title.getCurrentTitle().text

	elseif namespace == 828 then -- Module namespace

		template = (mw.site.namespaces828].name .. ":" .. mw.title.getCurrentTitle().text)

	end



	-- If in template or module namespace, look up count in /data

	if template ~= nil then

		namespace = mw.title.new(template, "Template").namespace

		if namespace == 10 or namespace == 828 then

			template =  mw.ustring.gsub(template, "/doc$", "") -- strip /doc from end

			template =  mw.ustring.gsub(template, "/sandbox$", "") -- strip /sandbox from end

			local index = mw.ustring.sub(mw.title.new(template).text,1,1)

			local status, data = pcall(function () 

				return(mw.loadData('Module:Transclusion_count/data/' .. (mw.ustring.find(index, "%a") and index or "other"))) 

			end)

			if status then

				return_value = tonumber(datamw.ustring.gsub(template, " ", "_")])

			end

		end

	end

	

	-- If database value doesn't exist, use value passed to template

	if return_value == nil and frame.args1 ~= nil then

		local arg1=mw.ustring.match(frame.args1], '[%d,]+')

		if arg1 and arg1 ~= '' then

			return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R'))

		end

	end

	

	return return_value	

end



-- Tabulate this data for [[Wikipedia:Database reports/Templates transcluded on the most pages]]

function p.tabulate(frame)

	local list = {}

	for i = 65, 91 do

		local data = mw.loadData('Module:Transclusion count/data/' .. ((i == 91) and 'other' or string.char(i)))

		for name, count in pairs(data) do

			table.insert(list, {mw.title.new(name, "Template").fullText, count})	

		end

	end

	table.sort(list, function(a, b)

		return (a2 == b2]) and (a1 < b1]) or (a2 > b2])

	end)

	local lang = mw.getContentLanguage();

	for i = 1, #list do

		listi = ('|-\n| %d || [[%s]] || %s\n'):format(i, listi][1]:gsub('_', ' '), lang:formatNum(listi][2]))

	end

	return table.concat(list)

end



return p

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook