2023年政策修订增补工作正在进行中,欢迎参与!
Module:RandomText
跳转到导航
跳转到搜索
用于随机显示一个列表中的项目,数据写在模块:RandomText的子页面,使用『Data』参数传入。
随机数种子使用『年份+当日是一年的第几日』,所以在UTC计时的一日之内不会变动。
由于本站缓存功能的特殊性,可能需要配合{{TemplateAsyncLoad}}以取得正确的每日随机效果。
示例:
{{RandomText|Data=萌属性}}
local module = {}
function module.RandomList(frame)
local parent = frame:getParent()
if parent and parent:getTitle() == "Template:RandomText" then
frame = parent
end
if not frame.args["Data"] then return -1 end
local data = mw.loadData("Module:RandomText/"..frame.args["Data"])
local count = data.count
data = data.data
local result = {}
local ttime = os.date("!*t", os.time())
local seed = tonumber(tostring(ttime.year)..tostring(ttime.yday))
math.randomseed(seed)
for j=1,count do
local length = data[j].length or 1
for i=1,length do
table.insert(result, data[j].list[math.random(data[j].count)])
end
end
return frame:preprocess(table.concat(result, "、"))
end
return module