B站评论区开盒

B站评论区直接展示 ip 属地

目前為 2022-07-25 提交的版本,檢視 最新版本

// ==UserScript==
// @name         B站评论区开盒
// @namespace    mscststs
// @version      0.1
// @description  B站评论区直接展示 ip 属地
// @author       mscststs
// @match        *://*.bilibili.com/*
// @license      ISC
// @icon         https://www.google.com/s2/favicons?sz=64&domain=bilibili.com
// @run-at       body
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    hackEle(document.querySelector("head"), "insertBefore", hack)
    hackEle(document.querySelector("head"), "appendChild", hack)

    function hackEle(ele, func, callback){
        const ori = ele[func];
        ele[func] = function(...args){
            callback(ori.bind(this), ...args)
        }
    };


    function hack(origin, ...args){
        const [ele, target] = [...args];
        const src = ele.src;
        if( ele.src && ~src.indexOf("/x/v2/reply/")){
            // 确定是评论类型,执行额外流程
            let url = new URL(src);
            let oldName = url.searchParams.get("callback"); // 旧名称
            let newName = `JSONP_FAKE_${Date.now()}_${Math.random()}`.replace(/\./g,""); // 新名称

            url.searchParams.set("callback", newName);
            ele.src = url.href;

            window[newName] = function(obj){
                // 处理数据
                function addReplyLocation (reply){
                    if(reply.reply_control && reply.reply_control.location){
                        reply.member.uname = `${reply.member.uname}   [${reply.reply_control.location}]`
                    }
                    if(reply.replies && reply.replies.length){
                        reply.replies.forEach(addReplyLocation)
                    }
                }
                if(obj.code === 0 && obj.data && obj.data.replies.length){
                    obj.data.replies.forEach(addReplyLocation)
                }
                window[oldName](obj);
                delete window[newName];
            }
        }
        origin(...args)
    }

})();

QingJ © 2025

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