2023年政策修订增补工作正在进行中,欢迎参与!
  • Moegirl.ICU:萌娘百科流亡社群 581077156(QQ),欢迎对萌娘百科运营感到失望的编辑者加入
  • Moegirl.ICU:账号认领正在试运行,有意者请参照账号认领流程

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