Wiki/模块:ArtsData/source
来自蒙纳多研究本部
-- Module:ArtsData/source —— 唯一 XBDB 访问层(决策11) -- ⚠ 探测结论(2026-10-08,README §3.3):pc_arts 可达;pc_arts_ms 与 grow_arts_* 均返回 -- HTTP 500 未注册。故 desc/AP 走静态表,fetchDesc/fetchApTable 预留 nil 待站长开放后接入。 -- row_id 越界/多 ID 会整页 500 且 pcall 无效,白名单校验必须前置。
local p = {}
local post = require("Module:RequestHelper").post
local lv1 = require("Module:ArtsData/lv1") local VALID_IDS = {} for _, role in pairs(lv1.roles) do
for _, id in ipairs(role.ids) do VALID_IDS[id] = true end
end
local cache = {}
function p.fetchArt(artId)
artId = tonumber(artId) if not artId or not VALID_IDS[artId] then return nil end local cached = cache[artId] if cached ~= nil then return cached end local ok, data = pcall(post, "bdat_common.pc_arts", artId) if not ok or type(data) ~= "table" or not data.row_id then cache[artId] = false return nil end cache[artId] = data return data
end
function p.fetchDesc(artId)
return nil
end
function p.fetchApTable()
return nil
end
function p.isValidArtId(artId)
artId = tonumber(artId) return artId ~= nil and VALID_IDS[artId] == true
end
return p