模块:Qualityprice:修订间差异
来自星露谷物语扩展百科
更多操作
删除的内容 添加的内容
无编辑摘要 |
无编辑摘要 |
||
| 第4行: | 第4行: | ||
local p = {} |
local p = {} |
||
local function expandTemplate(args) |
|||
local templateArgs = {} |
|||
| ⚫ | |||
if value ~= "" then |
|||
templateArgs[key] = value |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
templateArgs[1], |
|||
templateArgs[2], |
|||
pm = templateArgs['pm'], |
|||
dsv = templateArgs['dsv'], |
|||
hide = templateArgs['hide'], |
|||
| ⚫ | |||
} |
|||
} |
|||
end |
|||
-- =p.render{args={"Pufferfish","200"}} |
|||
function p.render(frame) |
function p.render(frame) |
||
local args = frame.args |
|||
local name = args[1]:gsub(".png", "") |
|||
local bp = args[2] or "0" |
|||
local cacheKey = KEY_PREFIX .. "|" .. args[1] .. "|" .. args[2] .. "|" .. (args['pm'] or "") .. "|" .. (args['dsv'] or "").. "|" .. (args['hide'] or "").. "|" .. (args['quality'] or "") |
|||
local pm = args['pm'] or "1" |
|||
| ⚫ | |||
local cacheKey = KEY_PREFIX .. "|Data|" .. name .. "|" .. bp .. "|" .. pm |
|||
local result = cache.get(cacheKey) |
|||
local priceData |
|||
return result |
|||
| ⚫ | |||
end |
|||
local result = expandTemplate(args) |
|||
if cached then |
|||
| ⚫ | |||
priceData = mw.text.jsonDecode(cached) |
|||
return result |
|||
else |
|||
priceData = {} |
|||
local qs = {p0 = 0, p1 = 1, p2 = 2, p4 = 4} |
|||
| ⚫ | |||
priceData[k] = frame:preprocess(string.format("{{#invoke:Templates|csp|im=%s|bp=%s|q=%d|pm=%s|fm=true}}", name, bp, v, pm)) |
|||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
| ⚫ | |||
args[1], |
|||
args[2], |
|||
pm = pm, |
|||
dsv = args['dsv'], |
|||
hide = args['hide'], |
|||
| ⚫ | |||
p0 = priceData.p0, |
|||
p1 = priceData.p1, |
|||
p2 = priceData.p2, |
|||
p4 = priceData.p4 |
|||
} |
|||
} |
|||
end |
end |
||
function p.debug() |
function p.debug() |
||
cache.delete("Module: |
cache.delete("Module:Qp|Data|Fried Egg|35|1") |
||
cache.delete("Module:Qualityprice|Fried Egg|35||false||gold") |
|||
end |
end |
||
2026年1月12日 (一) 20:58的版本
local cache = require "mw.ext.LuaCache"
local KEY_PREFIX = "Module:Qp"
local EXP_TIME = 172800
local p = {}
function p.render(frame)
local args = frame.args
local name = args[1]:gsub(".png", "")
local bp = args[2] or "0"
local pm = args['pm'] or "1"
local cacheKey = KEY_PREFIX .. "|Data|" .. name .. "|" .. bp .. "|" .. pm
local priceData
local cached = cache.get(cacheKey)
if cached then
priceData = mw.text.jsonDecode(cached)
else
priceData = {}
local qs = {p0 = 0, p1 = 1, p2 = 2, p4 = 4}
for k, v in pairs(qs) do
priceData[k] = frame:preprocess(string.format("{{#invoke:Templates|csp|im=%s|bp=%s|q=%d|pm=%s|fm=true}}", name, bp, v, pm))
end
cache.set(cacheKey, mw.text.jsonEncode(priceData), EXP_TIME)
end
return frame:expandTemplate{
title = '模板:Qualityprice/Base',
args = {
args[1],
args[2],
pm = pm,
dsv = args['dsv'],
hide = args['hide'],
quality = args['quality'],
p0 = priceData.p0,
p1 = priceData.p1,
p2 = priceData.p2,
p4 = priceData.p4
}
}
end
function p.debug()
cache.delete("Module:Qp|Data|Fried Egg|35|1")
end
return p