全站通知:
模块:思念
刷
历
编
跳到导航
跳到搜索
此模块的文档可以在模块:思念/doc创建
-- 测试用法
-- local frame = mw.getCurrentFrame()
-- frame.args[1] = 10.1
-- p.isNumber(frame)
local p={}
-- 定义特殊思念(没有视频的5星卡和有视频的4/3星卡)
local skip_Card = {'飞羽向夜', '方寸盈余', '隐秘日出', '余温过午', '永恒心役', '逐光迷心', '深海醉金','暗潮边缘','限定余味'}
local add_Card = {'余冽', '漉漉温言', '潮夜陷落'}
function p.getVideo(frame)
-- 获取参数
local he = frame.args[1] -- 角色名:沈星回/黎深/祁煜/秦彻/夏以昼
local star = frame.args[2] -- 星级:3/4/5
local card = frame.args[3] -- 思念名字
-- 默认视频地址
local defaultVideo = {
['沈星回'] = 'BV19m42137BV',
['黎深'] = 'BV1tH4y1w7y4',
['祁煜'] = 'BV1W6421Z7NZ',
['秦彻'] = 'BV16T421r7je',
['夏以昼'] = 'BV1emcgeyEsh'
}
-- 检查card是否在skip_Card里
for _, skipCard in ipairs(skip_Card) do
if card == skipCard then
return '' -- 返回空
end
end
-- 检查card是否在add_Card里
for _, addCard in ipairs(add_Card) do
if card == addCard then
return defaultVideo[he] -- 返回对应角色的defaultVideo
end
end
-- 检查star是否等于5
if star == '5' then
return defaultVideo[he] -- 返回对应角色的defaultVideo
end
-- 如果以上条件都不满足,返回空
return ''
end
function p.boolSetVideo(frame)
local cardStar = frame.args[1] -- 思念星级
local card = frame.args[2] -- 思念名字
-- 判断是否有视频
-- 返回值:0代表无视频,1代表有视频
if cardStar == '5' then
-- 5星思念:检查是否在skip_Card列表中
for _, skipCard in ipairs(skip_Card) do
if card == skipCard then
return 0 -- 在skip列表中,无视频
end
end
return 1 -- 不在skip列表中,有视频
else
-- 非5星思念:检查是否在add_Card列表中
for _, addCard in ipairs(add_Card) do
if card == addCard then
return 1 -- 在add列表中,有视频
end
end
return 0 -- 不在add列表中,无视频
end
end
function p.boolExitsVideo(frame)
local bv, pName = frame.args[1], frame.args[2]
-- 判断视频是否存在
-- 返回值:1代表视频存在,0代表视频不存在
if not bv or bv == '' or not pName or pName == '' then return 0 end
local response = mw.ext.HTTP.get(
'https://api.bilibili.com/x/web-interface/view?bvid=' .. bv
)
if not response then return 0 end
local success, data = pcall(mw.text.jsonDecode, response)
if not success or not data or not data.data or not data.data.pages then return 0 end
for _, page in ipairs(data.data.pages) do
if page.part == pName then return 1 end
end
return 0
end
return p;