Greasy Fork

Greasy Fork is available in English.

原神玩家指示器

B站评论区自动标注原神玩家,依据是动态里是否有原神相关内容(0.3支持新版与旧版B站)

目前为 2022-09-10 提交的版本。查看 最新版本

// ==UserScript==
// @name         原神玩家指示器
// @namespace    www.cber.ltd
// @version      0.3
// @description  B站评论区自动标注原神玩家,依据是动态里是否有原神相关内容(0.3支持新版与旧版B站)
// @author       xulaupuz
// @match        https://www.bilibili.com/video/*
// @icon         https://static.hdslb.com/images/favicon.ico
// @grant        GM_xmlhttpRequest
// @license MIT
// @run-at document-end
// ==/UserScript==


(function() {
    'use strict';

    console.log("正常加载")
    let jiance = setInterval(()=>{
        let blog = 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space?&host_mid='
        let nw = document.getElementsByClassName('item goback')
        if (nw.length == 0){//如果是旧版
            let commentlist = document.getElementsByClassName('user')
            if (commentlist.length != 0){
                clearInterval(jiance)
                commentlist.forEach(c => {
                    let pid = c.children[0]['href'].replace(/[^\d]/g, "")
                    let blogurl = blog + pid
                    GM_xmlhttpRequest({
                        method: "get",
                        url: blogurl,
                        data: '',
                        headers:  {
                            'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
                        },
                        onload: function(res){
                            if(res.status === 200){
                                //console.log('成功')
                                let st = JSON.stringify(JSON.parse(res.response).data)
                                if (st.includes('原神')){
                                    c.append('|原神玩家|')
                                }
                            }
                        },
                    });
                });
            }
        }
        else{//如果是新版
            let commentlist = document.getElementsByClassName('user-name')
            //commentlist[1].dataset['userId']
            if (commentlist.length != 0){
                clearInterval(jiance)
                commentlist.forEach(c => {
                    let pid = c.dataset['userId']
                    let blogurl = blog + pid
                    GM_xmlhttpRequest({
                        method: "get",
                        url: blogurl,
                        data: '',
                        headers:  {
                            'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
                        },
                        onload: function(res){
                            if(res.status === 200){
                                //console.log('成功')
                                let st = JSON.stringify(JSON.parse(res.response).data)
                                if (st.includes('原神')){
                                    c.append('|原神玩家|')
                                }
                            }
                        },
                    });
                });
            }

        }
    },2000)
})();