6,354
次編輯
小無編輯摘要 |
小 (代码重新整理) |
||
第1行: | 第1行: | ||
local getArgs = require('Module:Arguments').getArgs | local getArgs = require('Module:Arguments').getArgs | ||
local loadJson =require("Module:LoadJson") | local loadJson = require("Module:LoadJson") | ||
local p = {} | local p = {} | ||
function makeInvokeFunc(funcName) | |||
return function (frame) | |||
local args = getArgs(frame) | |||
return p[funcName](args) | |||
end | |||
end | end | ||
第14行: | 第14行: | ||
function p._pack(args) | function p._pack(args) | ||
local json = loadJson.Packlist()['packs'] | |||
for i, k in ipairs(json) do | |||
if k['id'] == args[1] then | |||
return k['name_localized']['en'] | |||
end | |||
end | |||
end | end | ||
function p.unlock(songId) | function p.unlock(songId) | ||
local json = loadJson.unlocks()['unlocks'] | |||
local result = {} | |||
for i, k in ipairs(json) do | |||
if k['songId'] == songId | |||
then | |||
result[tonumber(k['ratingClass'] + 1)] = k['conditions'] | |||
end | |||
end | |||
return result | |||
end | end | ||
第36行: | 第37行: | ||
function p._song(args) | function p._song(args) | ||
local json | |||
if args['type'] or args[3] == 'ns' | |||
then | |||
json = loadJson.Songlist() | |||
else | |||
json = loadJson.SonglistNS() | |||
end | end | ||
return getSingle(json, args[1], args['index'])(args[2]) | |||
end | end | ||
function getSingle(json, | function getSingle(json, index, genre) | ||
local s,list="",{} | local s, list = "", {} | ||
for i,k in ipairs(json['songs']) do | if genre == "id" | ||
then | |||
list = json | |||
else | |||
for i, k in ipairs(json['songs']) do | |||
s = k['title_localized']['en'] | |||
list[s] = k | |||
end | |||
end | end | ||
return function( | return function(key) | ||
local info=list[ | local info = list[index] | ||
if list[ | if list[index] == nil then return nil end | ||
local switch = { | local switch = { | ||
第150行: | 第72行: | ||
return info['title_localized']['en'] | return info['title_localized']['en'] | ||
end, | end, | ||
["artist"] = function() | |||
return info["artist"] | return info["artist"] | ||
end, | end, | ||
第169行: | 第91行: | ||
end, | end, | ||
["bg"] = function() | ["bg"] = function() | ||
if info["bg"] ~= "" then | |||
return info["bg"] | |||
else | else | ||
if info["side"] == 0 then | |||
return 'base_light' | |||
else | |||
return 'base_conflict' | |||
end | |||
end | end | ||
end, | end, | ||
第205行: | 第127行: | ||
["ftrRating"] = function() | ["ftrRating"] = function() | ||
if info["difficulties"][3]['ratingPlus'] | if info["difficulties"][3]['ratingPlus'] | ||
then | |||
return info["difficulties"][3]['rating']..'+' | return info["difficulties"][3]['rating'] .. '+' | ||
else | else | ||
return info["difficulties"][3]['rating'] | return info["difficulties"][3]['rating'] | ||
第237行: | 第159行: | ||
end, | end, | ||
["ftrChange"] = function() | ["ftrChange"] = function() | ||
if info["difficulties"][3] then | |||
return info["difficulties"][3]['has_controller_alt_chart'] | return info["difficulties"][3]['has_controller_alt_chart'] | ||
end | end | ||
第243行: | 第165行: | ||
} | } | ||
if switch[key] == nil then return nil end | |||
return switch[key]() | |||
end | end | ||
end | end | ||
function p.getMobile(name) | function p.getMobile(name) | ||
return getSingle(loadJson.Songlist(),name) | return getSingle(loadJson.Songlist(), name, 'name') | ||
end | end | ||
function p.getNS(name) | function p.getNS(name) | ||
return getSingle(loadJson.SonglistNS(),name) | return getSingle(loadJson.SonglistNS(), name, 'name') | ||
end | end | ||
return p | return p |