模块:HttpTest:修订间差异
来自夜幕之下
更多操作
无编辑摘要 |
无编辑摘要 |
||
| 第1行: | 第1行: | ||
local p = {} | local p = {} | ||
function p.get(frame) | function p.get(frame) | ||
| 第14行: | 第7行: | ||
"https://data.saltedkiss.org/items/cards?filter[stylename][_eq]=" | "https://data.saltedkiss.org/items/cards?filter[stylename][_eq]=" | ||
.. mw.uri.encode(cardname) | .. mw.uri.encode(cardname) | ||
.. "&limit=1&fields=*,character.*,profession.*,desire.*,skill_normal_attack.*,skill_passive.*,skill_ultimate.*,feats.stages.*,stories. | .. "&limit=1&fields=*,character.*,profession.*,desire.*,skill_normal_attack.*,skill_passive.*,skill_ultimate.*,feats.stages.*,stories.text" | ||
-- | -- 调用 ExternalData | ||
local | local rawData = mw.ext.externalData.getExternalData({ | ||
url = url, | url = url, | ||
format = "json" | format = "json" | ||
}) | }) | ||
if not | -- 先确保数据存在 | ||
if not rawData or not rawData[1] or not rawData[1].__json | |||
or not rawData[1].__json.data or #rawData[1].__json.data == 0 then | |||
return "未获取到卡牌数据" | return "未获取到卡牌数据" | ||
end | end | ||
local | -- 核心数据表 | ||
local cardData = rawData[1].__json.data[1] | |||
-- 创建变量 | -- 创建变量 | ||
local stylename = | local stylename = cardData.stylename or "—" | ||
local rarity = | local rarity = cardData.rarity or "—" | ||
local character = | local character = (cardData.character and cardData.character.name) or "—" | ||
local profession = | local profession = (cardData.profession and cardData.profession.name) or "—" | ||
local desire = | local desire = (cardData.desire and cardData.desire.name) or "—" | ||
local skill_normal_name = (cardData.skill_normal_attack and cardData.skill_normal_attack.name) or "—" | |||
local skill_normal_desc = (cardData.skill_normal_attack and cardData.skill_normal_attack.description) or "—" | |||
local skill_passive_name = (cardData.skill_passive and cardData.skill_passive.name) or "—" | |||
local skill_passive_desc = (cardData.skill_passive and cardData.skill_passive.description) or "—" | |||
local | local skill_ultimate_name = (cardData.skill_ultimate and cardData.skill_ultimate.name) or "—" | ||
local | local skill_ultimate_desc = (cardData.skill_ultimate and cardData.skill_ultimate.description) or "—" | ||
local | local stories = {} | ||
if cardData.stories then | |||
for i, s in ipairs(cardData.stories) do | |||
table.insert(stories, s.text or "—") | |||
end | |||
end | |||
-- | -- 返回一个简单 HTML 显示 | ||
local output = "<pre>" | local output = "<pre>" | ||
output = output .. "卡牌名: " .. stylename .. "\n" | output = output .. "卡牌名: " .. stylename .. "\n" | ||
| 第48行: | 第53行: | ||
output = output .. "角色: " .. character .. "\n" | output = output .. "角色: " .. character .. "\n" | ||
output = output .. "职业: " .. profession .. "\n" | output = output .. "职业: " .. profession .. "\n" | ||
output = output .. "欲望: " .. desire .. "\n" | output = output .. "欲望: " .. desire .. "\n\n" | ||
output = output .. "普通攻击: " .. skill_normal_name .. " - " .. skill_normal_desc .. "\n" | |||
output = output .. " | output = output .. "被动技能: " .. skill_passive_name .. " - " .. skill_passive_desc .. "\n" | ||
output = output .. "被动技能: " .. | output = output .. "必杀技能: " .. skill_ultimate_name .. " - " .. skill_ultimate_desc .. "\n\n" | ||
output = output .. "必杀技能: " .. | |||
output = output .. "故事条数: " .. #stories .. "\n" | |||
output = output .. "\ | for i, story in ipairs(stories) do | ||
output = output .. "故事 " .. i .. ":\n" .. story .. "\n\n" | |||
end | |||
output = output | output = output .. "</pre>" | ||
return output | return output | ||
2026年3月11日 (三) 22:35的版本
此模块的文档可以在模块: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"
-- 调用 ExternalData
local rawData = mw.ext.externalData.getExternalData({
url = url,
format = "json"
})
-- 先确保数据存在
if not rawData or not rawData[1] or not rawData[1].__json
or not rawData[1].__json.data or #rawData[1].__json.data == 0 then
return "未获取到卡牌数据"
end
-- 核心数据表
local cardData = rawData[1].__json.data[1]
-- 创建变量
local stylename = 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 skill_normal_name = (cardData.skill_normal_attack and cardData.skill_normal_attack.name) or "—"
local skill_normal_desc = (cardData.skill_normal_attack and cardData.skill_normal_attack.description) or "—"
local skill_passive_name = (cardData.skill_passive and cardData.skill_passive.name) or "—"
local skill_passive_desc = (cardData.skill_passive and cardData.skill_passive.description) or "—"
local skill_ultimate_name = (cardData.skill_ultimate and cardData.skill_ultimate.name) or "—"
local skill_ultimate_desc = (cardData.skill_ultimate and cardData.skill_ultimate.description) or "—"
local stories = {}
if cardData.stories then
for i, s in ipairs(cardData.stories) do
table.insert(stories, s.text or "—")
end
end
-- 返回一个简单 HTML 显示
local output = "<pre>"
output = output .. "卡牌名: " .. stylename .. "\n"
output = output .. "稀有度: " .. rarity .. "\n"
output = output .. "角色: " .. character .. "\n"
output = output .. "职业: " .. profession .. "\n"
output = output .. "欲望: " .. desire .. "\n\n"
output = output .. "普通攻击: " .. skill_normal_name .. " - " .. skill_normal_desc .. "\n"
output = output .. "被动技能: " .. skill_passive_name .. " - " .. skill_passive_desc .. "\n"
output = output .. "必杀技能: " .. skill_ultimate_name .. " - " .. skill_ultimate_desc .. "\n\n"
output = output .. "故事条数: " .. #stories .. "\n"
for i, story in ipairs(stories) do
output = output .. "故事 " .. i .. ":\n" .. story .. "\n\n"
end
output = output .. "</pre>"
return output
end
return p