Module:Tool
可在Module:Tool/doc创建此模块的帮助文档
local p={}
-- 小工具集
--时间格式转换
function p.time(frame)
return os.date("%Y/%m/%d", frame.args.time)
end
--获取以太之滴总数
function p.Etherdrop(frame)
local text=mw.title.new(':世界模式'):getContent()
if frame.args.type=="limit" then text=string.match(text,"额外章:活动([%s%S]-)第1章:失落的世界")
else text=string.match(text,"额外章:活动([%s%S]-)Nintendo Switch版调整") end
local match=string.gmatch(text,"(%d?%d) 以太之滴")
local result=0
local number=nil
while true
do
number=match()
if number==nil then break end
result=result+number
end
--这里开始匹配注释
local commentMatch=string.gmatch(text,"<!%-%-([%s%S]-)%-%->")
while true
do
text=commentMatch()
if text==nil then break end
match=string.gmatch(text,"(%d?%d) 以太之滴")
while true
do
number=match()
if number==nil then break end
result=result-number
end
end
commentMatch=nil
result=result-17 --这里删掉因为sia和shirabe常驻而多统计的6+11=17个
local text=mw.title.new(':曲包列表'):getContent()
match=string.gmatch(text,"(%d)00记忆源点/整曲包")
local mmr=0
while true
do
number=match()
if number==nil then break end
mmr=mmr+number
end
match=string.gmatch(text,"单曲包\n|(%d?%d)")
number=match()
mmr=mmr+number-4 --这里减去guardina innocence desive rainofconflict
ann5=55 --五周年兑换券给的55个
course=40 --段位模式给的40个
mission=15 --新手任务给的15个
if frame.args.type=="purchase" then return mmr
elseif frame.args.type=="ann5" then return ann5
elseif frame.args.type=="course" then return course
elseif frame.args.type=="mission" then return mission
elseif frame.args.type=="max" then return result+mmr+ann5+course+mission
else return result
end
end
--从字符串中移除某字符
function p.LuaReomve(frame)
str=frame.args.str
remove=frame.args.remove
local lcSubStrTab = {}
while true do
local lcPos = string.find(str,remove)
if not lcPos then
lcSubStrTab[#lcSubStrTab+1] = str
break
end
local lcSubStr = string.sub(str,1,lcPos-1)
lcSubStrTab[#lcSubStrTab+1] = lcSubStr
str = string.sub(str,lcPos+1,#str)
end
local lcMergeStr =""
local lci = 1
while true do
if lcSubStrTab[lci] then
lcMergeStr = lcMergeStr .. lcSubStrTab[lci]
lci = lci + 1
else
break
end
end
return lcMergeStr
end
function link(frame)
local result=""
for i,k in ipairs(frame.args) do
result=result..'<span id="'..k..'"></span>'
end
return result
end
return p