Mô đun:Transclusion count

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 = frame.args["demo"]
	elseif namespace == 10 then -- Template namespace
		template = mw.title.getCurrentTitle().text
	elseif namespace == 828 then -- Module namespace
		template = (mw.site.namespaces[828].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, "/tài liệu$", "") -- cho mô đun tại viwiki
			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('Mô đun:Transclusion count/data/' .. (mw.ustring.find(index, "[A-Z]") and index or "other")))
			end) -- xếp tất cả Â, Ẩ, Đ, Ô, Ứ,... vào other
			if status then
				return_value = tonumber(data[template]) -- dùng " " thay cho "_"
			end
		end
	end
	
	-- If database value doesn't exist, use value passed to template
	if return_value == nil and frame.args[1] ~= nil then
		local arg1=mw.ustring.match(frame.args[1], '[%d,]+')
		if arg1 and arg1 ~= '' then
			return_value = tonumber(frame:callParserFunction('formatnum', arg1, 'R'))
		end
	end
	
	return return_value
end

-- Lập bảng từ dữ liệu cho [[Wikipedia:Báo cáo cơ sở dữ liệu/Bản mẫu được nhúng trên nhiều trang nhất]] (cần có bot cập nhật dữ liệu)
function p.tabulate(frame)
	local list = {}
	for i = 65, 91 do
		local data = mw.loadData('Mô đun: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 (a[2] == b[2]) and (a[1] < b[1]) or (a[2] > b[2])
	end)
	local lang = mw.getContentLanguage();
	for i = 1, #list do
		list[i] = ('|-\n| %d || [[%s]] || %s\n'):format(i, list[i][1]:gsub('_', ' '), lang:formatNum(list[i][2]))
	end
	return table.concat(list)
end

return p
Chúng tôi bán
Bài viết liên quan
Kinh nghiệm thuê xe và lái xe ở Mỹ
Kinh nghiệm thuê xe và lái xe ở Mỹ
Dịch vụ thuê xe ở Mỹ rất phát triển có rất nhiều hãng cho thuê xe như Avis, Alamo, Henzt
[Guide] Hướng dẫn build Layla (Khiên Support) - Genshin Impact
[Guide] Hướng dẫn build Layla (Khiên Support) - Genshin Impact
Layla là đại diện hoàn hảo cho tôi ở trường, lol (có lẽ tôi nên đi ngủ sớm hơn)
The Alley Flash - Weapon Guide Genshin Impact
The Alley Flash - Weapon Guide Genshin Impact
The Alley Flash is a Weapon Event's weapon used to increase the damage dealt by the wearer, making it flexible to the characters
Giải thích các danh hiệu trong Tensei shitara Slime Datta Ken
Giải thích các danh hiệu trong Tensei shitara Slime Datta Ken
Tổng hợp một số danh hiệu "Vương" trong Tensura