跳到内容
折叠侧栏
搜索
创建账号
个人工具
创建账号
登录
导航
首页
最近更改
随机页面
编者用页面
方针
指引
讨论版
格式手册
挂起清单
维护清单
玩法条目
游戏玩法
界面
机制
搭档
潜力值
Link Play
世界模式
故事模式
段位挑战
解歌系统
成就系统
版本更新日志
列表条目
定数表
曲目列表
曲包列表
曲师列表
谱师列表
画师列表
背景列表
友情链接
Rotaeno中文维基
工具
链入页面
相关更改
特殊页面
页面信息
查看“Module:AnotherTool”的源代码
模块
讨论
English
阅读
查看源代码
查看历史
更多
阅读
查看源代码
查看历史
←
Module:AnotherTool
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local lang = mw.language.getContentLanguage() local getArgs = require 'Module:Arguments'.getArgs local p = {} local function purge(args) -- Make the URL local url do local title if args.page then title = mw.title.new(args.page) if not title then error(string.format( "'%s'不是有效的页面名称", args.page ), 2) end else title = mw.title.getCurrentTitle() end if args.jumpto then title.fragment = args.jumpto end url = title:fullUrl {action = 'purge'} -- &_={{CURRENTTIMESTAMP}} end -- Make the display local purgeText, purgeTitle = args[1] or '清除缓存', args[2] or '更新服务器所缓存的页面数据' local display if args.page then display = purgeText else display = tostring(mw.html.create 'span' :attr('title', purgeTitle) :wikitext(purgeText) ) end -- Output the HTML local root = mw.html.create 'span' root :addClass 'noprint' -- :addClass 'plainlinks' -- :addClass 'purgelink' :wikitext(('[%s %s]'):format(url, display)) return tostring(root) end local function formatMessage(secondsLeft, event, color) local chosenIntervals if secondsLeft >= 86400 then chosenIntervals = {'days', 'hours'} elseif secondsLeft >= 3600 then chosenIntervals = {'hours'} else chosenIntervals = {'minutes', 'seconds'} end local timeLeft = lang:formatDuration(secondsLeft, chosenIntervals) -- Color and bold the numbers, because it makes them look important. timeLeft = string.gsub(timeLeft, '(%d+)', '<span style="color: ' .. (color or '#66F') .. '; font-weight: bold;">%1</span>') return string.format('距离%s尚余%s', event, timeLeft) end local function countdown(args) if not (args.month and args.day) then return '<strong class="error">错误:必须指定 month 和 day</strong>' end local timeArgs = {year = args.year or os.date '*t'.year, month = args.month, day = args.day, hour = args.hour, min = args.minute, sec = args.second} for k, v in pairs(timeArgs) do if not tonumber(v) then error('参数' .. k .. '无法解析为数字:' .. v) end end local eventTime = os.time(timeArgs) local timeToStart = os.difftime(eventTime, os.time()) -- (future time - current time) local text if timeToStart > 0 then -- Event has not begun yet text = formatMessage(timeToStart, args.event or '这次事件', args.color) elseif args.duration then local timeToEnd if args['duration unit'] then -- Duration is in unit other than seconds, use formatDate to add timeToEnd = tonumber(lang:formatDate('U', '@' .. tostring(timeToStart) .. ' +' .. tostring(args.duration) .. ' ' .. args['duration unit'])) else timeToEnd = timeToStart + (tonumber(args.duration) or error('args.duration应该是秒数', 0)) end if timeToEnd > 0 then -- Event is in progress text = args.eventstart or formatMessage(timeToEnd, (args.event or '这次事件') .. '完结', args.color) else -- Event had a duration and has now ended text = args.eventend or ((args.event or '这次事件') .. '已完结') end else -- Event had no duration and has begun -- 已经开始? text = args.eventend or ((args.event or '这次事件') .. '已完结') end local refreshLink if args.nopurge then refreshLink = '' else refreshLink = '<small>' .. purge '更新' .. '</small>' end return text .. refreshLink end local function makeInvokeFunc(func, opt) return function(frame) local args = getArgs(frame, opt) return func(args) end end p.countdown = makeInvokeFunc(countdown) p.purge = makeInvokeFunc(purge, {parentOnly = true}) return p
本页使用的模板:
Module:AnotherTool/doc
(
查看源代码
)
返回
Module:AnotherTool
。