模块:HttpTest
来自夜幕之下
更多操作
此模块的文档可以在模块:HttpTest/doc创建
local p = {}
function p.get(frame)
local cardname = frame.args[1] or ""
local url =
"https://data.saltedkiss.org/items/cards?filter[stylename][_eq]="
.. mw.uri.encode(cardname)
.. "&limit=1&fields=*,character.*,profession.*,desire.*,skill_normal_attack.*,skill_passive.*,skill_ultimate.*,feats.stages.*,stories.text"
local rawData = mw.ext.externalData.getExternalData({
url = url,
format = "json"
})
if not rawData or #rawData == 0 then
return "No data returned."
end
local cardData = rawData[1].__json.data[1]
if not cardData then
return "Card not found."
end
-- 创建变量
local name = cardData.stylename or "—"
local rarity = cardData.rarity or "—"
local character = cardData.character and cardData.character.name or "—"
local profession = cardData.profession and cardData.profession.name or "—"
local desire = cardData.desire and cardData.desire.name or "—"
local normal = cardData.skill_normal_attack or {}
local passive = cardData.skill_passive or {}
local ultimate = cardData.skill_ultimate or {}
-- 故事
local stories = cardData.stories or {}
local storyCount = #stories
local storyTexts = {}
for i, s in ipairs(stories) do
table.insert(storyTexts, string.format("%d: %s", i, s.text or ""))
end
-- 输出
local out = {}
table.insert(out, string.format("卡牌名: %s", name))
table.insert(out, string.format("稀有度: %s", rarity))
table.insert(out, string.format("角色: %s", character))
table.insert(out, string.format("职业: %s", profession))
table.insert(out, string.format("欲望: %s", desire))
table.insert(out, "")
table.insert(out, string.format("普通攻击: %s - %s", normal.name or "—", normal.description or "—"))
table.insert(out, string.format("被动技能: %s - %s", passive.name or "—", passive.description or "—"))
table.insert(out, string.format("必杀技能: %s - %s", ultimate.name or "—", ultimate.description or "—"))
table.insert(out, "")
table.insert(out, string.format("故事条数: %d", storyCount))
table.insert(out, table.concat(storyTexts, "\n"))
return table.concat(out, "\n")
end
return p