仙家军成分查询Helper

用于标记仙家军和动态转发仙的b站用户,列表纯手动验证成分后添加。可能误伤出于批判嘲笑等原因转发仙的用户。脚本改自【糊狸-B站成分查询Helper】

目前为 2023-05-27 提交的版本。查看 最新版本

// ==UserScript==
// @name         仙家军成分查询Helper
// @namespace    www.bilibili.com
// @version      1.0.0
// @description  用于标记仙家军和动态转发仙的b站用户,列表纯手动验证成分后添加。可能误伤出于批判嘲笑等原因转发仙的用户。脚本改自【糊狸-B站成分查询Helper】
// @author       Darknights
// @match        https://*.bilibili.com/*
// @icon         https://static.hdslb.com/images/favicon.ico
// @connect      bilibili.com
// @grant        GM_xmlhttpRequest
// @license MIT
// @run-at document-end
// ==/UserScript==


(function () {
    'use strict';

    /* 配置区 */
    const config = {
        times: 2500, // 标签处理间隔时间 单位:ms
        testLog: false // 是否开启调试日志
    }
    // 显示标签配置在👇面

    const xianList = ['2626308','91294717','691660481','594265974','1399233488','201128149','492233743','1384853937','193242084','59212436','1547943832','355829734','439010078','3493110134868545','289739171','455857213','559989730','252864981','595397699','1825148722','300313419','2142529765','333755368','372672537','366752296','628918703','359762403','449254922','27748754','1397451482','435429250','293497224','87355702','1080954745','1005732624','353381701','3493146415598203','36832623','298253160','3493109944027757','1459252016','626718713','3493128606583732','1413259326','3493108211780104','288608355','398268451','527079387','1705910990','2072727585','19227977','8118856710','1986311121','273627979','322540587','3493264994863124','1436392582','3493122713586530','503354352','3493267740035490','3461576510147287','643362376','55417546'];

    const xianTag = ["<目标:仙>", "#11DD77"];

    const xianSmellTag = ["<环境:转发含仙>", "#1E971E"];


    /* Functions */
    const getUid = function (htmlEntity) {
        if (isNew) {
            return htmlEntity.dataset['userId'];
        } else {
            return htmlEntity.children[0]['href'].replace(/[^\d]/g, "");
        }
    }

    const getCommentList = function () {
        if (isNew) {
            let lst = new Set();
            for (let c of document.getElementsByClassName('user-name')) {
                lst.add(c);
            }
            for (let c of document.getElementsByClassName('sub-user-name')) {
                lst.add(c);
            }
            return lst;
        } else {
            return document.getElementsByClassName('user');
        }
    }

    const log = function (message) {
        return config.testLog ? console.log(message) : null;
    };

    const spawnHtml = function (data) {
        return `<b style='color: ${data[1]}' >${data[0]}</b>`
    }

    const smell = function (items) {
        var flag = false;
        for (var i = 0; i < items.length; i++) {
            var item = items[i];
            for (var key in item) {
                if(key == 'orig'){
                    var did = String(item.orig.modules.module_author.mid);
                    if(xianList.indexOf(did)>-1){
                        log('repost:'+did);
                        flag = true;
                        break;
                    }
                }
            }
            if(flag == true) break;
        }
        log(flag);
        return flag;
    }

    const blog = 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space?&host_mid=';
    // 检测是不是新版
    const isNew = document.getElementsByClassName('item goback').length != 0;

    log(isNew);
    log("Loading...");

    setInterval(() => {
        const commentlist = getCommentList();
        if (commentlist.length != 0) {
            commentlist.forEach(htmlEntity => {
                if (htmlEntity.innerHTML.indexOf(`<span id="huli">`) == -1) {
                    htmlEntity.innerHTML += `<span id="huli">`;
                    const uid = getUid(htmlEntity);
                    if(xianList.indexOf(uid)>-1){
                        log('target:'+uid);
                        htmlEntity.innerHTML += spawnHtml(xianTag);
                    }else{
                        GM_xmlhttpRequest({
                            method: "get",
                            url: blog + uid,
                            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: res => {
                                if (res.status === 200) {
                                    const dynamicJson = JSON.parse(res.response).data;
                                    if(smell(dynamicJson.items)){
                                        log('smell:'+uid);
                                        htmlEntity.innerHTML += spawnHtml(xianSmellTag);
                                    }
                                } else {
                                    log('Fail');
                                    log(res);
                                }
                            },
                        });
                    }
                    htmlEntity.innerHTML += `</span>`;
                }
            });
        }
    }, config.times)
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址