Module:Songconstant:修订间差异

来自Arcaea中文维基
(判空,区别自动读取名称和传入名称)
(重写)
 
(未显示同一用户的1个中间版本)
第11行: 第11行:
["[X]"]="infinity",
["[X]"]="infinity",
}
}
-- 你维好像没有关于这个的 直接的 东西
-- 你维好像没有关于这个的 直接的 东西 。有了请替换掉
local p={}
local p={}


第20行: 第20行:


function p._main(args)
function p._main(args)
-- arg: id, name, nameAuto, diff
-- 指定曲目:id / name / nameAuto
-- id 优先于 name 优先于 nameAuto
--   id 优先于 name 优先于 nameAuto
-- diff 是难度, 为 0~4
--  指定数值:(优先于指定曲目)
-- 不存在返回空, 存在返回 定数
--  PST曲目定数 / Past / PST
--  PRS曲目定数 / Present / PRS
--  FTR曲目定数 / Future / FTR
--  BYD曲目定数 / Beyond / BYD
--   ETR曲目定数 / Eternal / ETR
local diffs={
args["PST曲目定数"] or args["Past"] or args["PST"],
args["PRS曲目定数"] or args["Present"] or args["PRS"],
args["FTR曲目定数"] or args["Future"] or args["FTR"],
args["BYD曲目定数"] or args["Beyond"] or args["BYD"],
args["ETR曲目 定数"] or args["Eternal"] or args["ETR"],
}
local id=''
local id=''
if args["id"] and args["id"] ~= "" then
if args["id"] and args["id"] ~= "" then
id=args["id"]
id=args["id"]
elseif args["name"] or args["nameAuto"] then
elseif args["name"] or args["nameAuto"] then
local name=''
local name=args["name"] or args["nameAuto"]
if args["name"] then
name=args["name"]
else
name=args["nameAuto"]
end
if specialTransition[name] then
if specialTransition[name] then
id=specialTransition[name]
id=specialTransition[name]
第40行: 第46行:
end
end
end
end
if id=='' or id==nil then
if not (id=='' or id==nil) then
return ''
if constantTable[id] then
for diff=1,5 do
if constantTable[id][diff] then
diffs[diff]=diffs[diff] or string.format("%.1f",constantTable[id][diff]["constant"])
end
end
end
end
local wikiText='{| class="wikitable" style="text-align:center" cellspacing="0" cellpadding="5"'
local names={'Past','Present','Future','Beyond','Eternal'}
for diff=1,5 do
if diffs[diff] then
wikiText=wikiText .. '\n!' .. names[diff]
end
end
end
local diff=tonumber(args['diff'])
wikiText=wikiText .. '\n|-'
if constantTable[id][diff] then
for diff=1,5 do
return string.format("%.1f",constantTable[id][diff]["constant"])
if diffs[diff] then
wikiText=wikiText .. '\n|' .. diffs[diff]
end
end
end
return ""
wikiText=wikiText .. '\n|}'
return wikiText
end
end


return p
return p

2024年11月23日 (六) 18:55的最新版本

可在Module:Songconstant/doc创建此模块的帮助文档

local getArgs = require('Module:Arguments').getArgs
local getData = require("Module:Arcaea Data")
local constantTable = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate{ title = 'ChartConstant.json' })
local specialTransition={
	["Quon (DJ Noriken)"]="quonwacca",
	["Quon (Feryquitous)"]="quon",
	["Genesis (Iris)"]="genesis",
	["Genesis (Morrigan)"]="genesischunithm",
	["#1f1e33"]="ifi",
	["AI[UE]OON"]="aiueoon",
	["[X]"]="infinity",
}
-- 你维好像没有关于这个的 直接的 东西。有了请替换掉
local p={}

function p.main(frame)
    local args = getArgs(frame)
    return p._main(args)
end

function p._main(args)
	-- 指定曲目:id / name / nameAuto
	--   id 优先于 name 优先于 nameAuto
	-- 指定数值:(优先于指定曲目)
	--   PST曲目定数 / Past / PST
	--   PRS曲目定数 / Present / PRS
	--   FTR曲目定数 / Future / FTR
	--   BYD曲目定数 / Beyond / BYD
	--   ETR曲目定数 / Eternal / ETR
	local diffs={
		args["PST曲目定数"] or args["Past"] or args["PST"],
		args["PRS曲目定数"] or args["Present"] or args["PRS"],
		args["FTR曲目定数"] or args["Future"] or args["FTR"],
		args["BYD曲目定数"] or args["Beyond"] or args["BYD"],
		args["ETR曲目定数"] or args["Eternal"] or args["ETR"],
	}
	local id=''
	if args["id"] and args["id"] ~= "" then
		id=args["id"]
	elseif args["name"] or args["nameAuto"] then
		local name=args["name"] or args["nameAuto"]
		if specialTransition[name] then
			id=specialTransition[name]
		else
			id=getData.singleSongInformation(name,"name","mobile")("id")
		end
	end
	if not (id=='' or id==nil) then
		if constantTable[id] then
			for diff=1,5 do
				if constantTable[id][diff] then
					diffs[diff]=diffs[diff] or string.format("%.1f",constantTable[id][diff]["constant"])
				end
			end
		end
	end
	local wikiText='{| class="wikitable" style="text-align:center" cellspacing="0" cellpadding="5"'
	local names={'Past','Present','Future','Beyond','Eternal'}
	for diff=1,5 do
		if diffs[diff] then
			wikiText=wikiText .. '\n!' .. names[diff]
		end
	end
	wikiText=wikiText .. '\n|-'
	for diff=1,5 do
		if diffs[diff] then
			wikiText=wikiText .. '\n|' .. diffs[diff]
		end
	end
	wikiText=wikiText .. '\n|}'
	return wikiText
end

return p