Module:Random image:修订间差异

来自Arcaea中文维基
(更一般的曲名→页面名转换)
(使用 require("Module:Random") 直接加载随机数模块进行随机,并直接从Songlist中提取曲目总数)
第21行: 第21行:


end
end
local random=require("Module:Random")


function p.image(frame)
function p.image(frame)


local data = mw.getCurrentFrame():expandTemplate{ title = 'Songlist' }
local songlist=require("Module:Songlist")
local result=mw.text.jsonDecode( data )
local id=result['songs'][tonumber(frame.args.number)]['id']
local count=#songlist['songs']
local title=SpecialPageName(result['songs'][tonumber(frame.args.number)]['title_localized']['en'])
local i=random.number{count}
local id=songlist['songs'][i]['id']
local title=SpecialPageName(songlist['songs'][i]['title_localized']['en'])
local result="[[file:Songs_"..id..".jpg|100px|link="..title.."]]"
local result="[[file:Songs_"..id..".jpg|100px|link="..title.."]]"

2021年2月9日 (二) 18:24的版本

可在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 count=#songlist['songs']
	local i=random.number{count}
	local id=songlist['songs'][i]['id']
	local title=SpecialPageName(songlist['songs'][i]['title_localized']['en'])
	
	local result="[[file:Songs_"..id..".jpg|100px|link="..title.."]]"
	
	return result
end

return p