CC98 显示用户风评

在查看帖子时的用户信息栏内显示用户风评

// ==UserScript==
// @name         CC98 显示用户风评
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  在查看帖子时的用户信息栏内显示用户风评
// @author       Q&A
// @match        https://www.cc98.org/topic/*
// @icon         https://www.cc98.org/static/98icon.ico
// @grant        GM_xmlhttpRequest
// @license      MIT
// @connect      api.cc98.org
// ==/UserScript==

(function() {
    'use strict';
    // Your code here...
    let dom = document.getElementsByClassName("column userMessage-left");
    let event = new Event('loaded');
    addEventListener("loaded",(event)=>{
        //console.log(dom.length);
        let uids = [];
        Array.from(dom).forEach((item)=>{
            if(item.childNodes[0].tagName!="A") {
                return;
            }
            let uid = item.childNodes[0].href.split("/").slice(-1)[0];
            uids.push(uid);
        });
        let user_info_url = "https://api.cc98.org/user?id="+uids.join("&id=");
        //console.log(uids);
        //console.log(user_info_url);
        function createNode(htmlStr) {
            var div = document.createElement("div");
            div.innerHTML = htmlStr;
            return div.childNodes[0];
        }
        GM_xmlhttpRequest({
            method: "get",
            url: user_info_url,
            onload: function(res){
                //console.log(res);
                let data = JSON.parse(res.response);
                //console.log(data);
                let uid_pops = {};
                data.forEach((item,idx)=>{
                    uid_pops[`${item.id}`] = item.popularity;
                });
                Array.from(dom).forEach((item)=>{
                    if(item.childNodes[0].tagName!="A") {
                        return;
                    }
                    let uid = item.childNodes[0].href.split("/").slice(-1)[0];
                    let pop = uid_pops[uid];
                    if(pop == undefined) {
                        return;
                    }
                    let info = item.childNodes[1];
                    if(info.childElementCount==5) {
                        return;
                    }
                    info.insertBefore(createNode(`<div class="userMessageOpt">风评 ${pop}</div>`),info.childNodes[3]);
                });
            }
        });
    });
    let last_len = 0;
    setInterval(()=>{
        let len = dom.length;
        if(len>0&&len!=last_len) {
            dispatchEvent(event);
        }
        last_len = len;
    }, 1);
})();

QingJ © 2025

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