Module:Random image

来自Arcaea中文维基
Benpigchu讨论 | 贡献2021年2月9日 (二) 19:02的版本 (使用 random.main("array",{...})从列表中不重复地选择多个项目)

可在Module:Random image/doc创建此模块的帮助文档

local p = {}

local pagename_escape={
	["#"]="#",
	["<"]="<",
	[">"]=">",
	["["]="[",
	["]"]="]",
	["|"]="|",
	["{"]="{",
	["}"]="}",
}

function SpecialPageName(pagename)
	-- 请在这里添加页面名转换
	-- 当页面名和title_localized:en的值不同时,请在这里转换
	
	pagename=string.gsub(pagename,"[#<>%[%]|{}]",pagename_escape)
	
	return pagename

end

local random=require("Module:Random")

function p.image(frame)

	local songlist=require("Module:Songlist")
	
	local limit=tonumber(frame.args.count)
	if not limit then
		limit=5	
	end
	local selected=random.main("array",{t=songlist['songs'],limit=limit})
	local result=""
	for _, v in pairs( selected ) do
		local id=v['id']
		local title=SpecialPageName(v['title_localized']['en'])
		result=result.."[[file:Songs_"..id..".jpg|100px|link="..title.."]]"
	end
	
	return result
end

return p