置顶公告:【置顶】关于临时开启评论区所有功能的公告(2022.10.22) | 【置顶】关于本站Widget恢复使用的公告
  • 你好~!欢迎来到萌娘百科镜像站!如需查看或编辑,请联系本站管理员注册账号。
  • 本镜像站和其他萌娘百科的镜像站无关,请注意分别。

Module:RandomText

贴贴♀百科,万娘皆可贴的百科全书!转载请标注来源页面的网页链接,并声明引自贴贴百科。内容不可商用。
跳到导航 跳到搜索
Template-info.svg 模块文档  [查看] [编辑] [历史] [刷新]

用于随机显示一个列表中的项目,数据写在模块: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