chen310 / BilibiliPotPlayer

PotPlayer 哔哩哔哩插件:可以直接在 PotPlayer 中播放哔哩哔哩中的视频、直播和音乐
1.4k stars 63 forks source link

显示动态首页的直播间 #88

Open asd25213 opened 5 months ago

asd25213 commented 5 months ago

插件很有意思,这两天在看这个插件怎么写的,琢磨怎么改得更符合自己的习惯。

在这个过程中,注意到动态首页的直播间是显示不了的。

图片

Snipaste_2024-05-15_19-15-50

具体对应的代码如上图。

在自己尝试的过程中,发现应该是api改了。

上图使用的api是:/x/polymer/web-dynamic/v1/feed/all,获取的json里找不到代码中对应的live_rcmd

但是我在看的过程中,找到对应的api是:https://api.bilibili.com/x/polymer/web-dynamic/v1/portal

为此我在webDynamic(string path)中试着加了下面这一段代码,效果如图:

{
    //动态首页一些窗口的api
    string url = "/x/polymer/web-dynamic/v1/portal";
    string res = apiPost(url);
    if (res.empty() || !Reader.parse(res, Root) || !Root.isObject() || Root["code"].asInt() != 0) 
        return videos;
    JsonValue items = Root["data"]["live_users"]["items"];
    //["live_users"]可能为null,但是插件的语言好像可以处理空指针,不会报错,就这么写了。
    dictionary live;
    for (int i = 0; i < items.size(); i++) {
        JsonValue item = items[i];

        live["title"]       = "直播 | " + item["title"].asString();
        live["url"]         = item["jump_url"].asString();
        live["thumbnail"]   = item["face"].asString();
        live["author"]      = item["uname"].asString();
        videos.insertLast(live);
    }
}

图片