Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
local p = {}

function p.getTitle(frame)
    local bvid = frame.args[1]
    if not bvid or bvid == '' then
        return "无效BV号"
    end
    
    -- 调用B站API获取视频信息
    local url = "https://api.bilibili.com/x/web-interface/view?bvid=" .. bvid
    local response = mw.ext.externalData.getWebData{
        url = url,
        format = "json"
    }
    
    if not response then
        return "获取信息失败"
    end
    
    if response.code == 0 and response.__json.data.title then
        return response.__json.data.title  -- 返回视频标题
    else
        return "视频不存在或获取失败"
    end
end

function p.getPic(frame)
	local bvid = frame.args[1]
	if not bvid or bvid == '' then
		return "无效BV号"
	end
	
	local url = "https://api.bilibili.com/x/web-interface/view?bvid=" .. bvid
	
	local response = mw.ext.externalData.getWebData{
        url = url,
        format = "json"
    }
    
    if not response then
        return "获取信息失败"
    end
    
    if response.code == 0 and response.__json.data.pic then
        return response.__json.data.pic
    else
        return "视频不存在或获取失败"
    end
end

function p.getOwner(frame)
	local bvid = frame.args[1]
	if not bvid or bvid == '' then
		return "无效BV号"
	end
	
	local url = "https://api.bilibili.com/x/web-interface/view?bvid=" .. bvid
	
	local response = mw.ext.externalData.getWebData{
        url = url,
        format = "json"
    }
    
    if not response then
        return "获取信息失败"
    end
    
    if response.code == 0 and response.__json.data.owner.name then
        return response.__json.data.owner.name
    else
        return "视频不存在或获取失败"
    end
end


function p.getView(frame)
	local bvid = frame.args[1]
	if not bvid or bvid == '' then
		return "无效BV号"
	end
	
	local url = "https://api.bilibili.com/x/web-interface/view?bvid=" .. bvid
	
	local response = mw.ext.externalData.getWebData{
        url = url,
        format = "json"
    }

    if not response then
        return "获取信息失败"
    end
    
    if response.code == 0 and response.__json.data.stat.view then
        return response.__json.data.stat.view
    else
        return "视频不存在或获取失败"
    end
end

return p