Greasy Fork is available in English.

访问米游社七圣召唤卡牌广场的评论区时在页面底部打印评论发出用户的主页URL

访问米游社七圣召唤卡牌广场的评论区时在页面底部打印评论发出用户的主页URL。自用。

// ==UserScript==
// @name         访问米游社七圣召唤卡牌广场的评论区时在页面底部打印评论发出用户的主页URL
// @name:en    Print User Homepage URL in Comment Section on Mihoyo's Seven Saints Summon Card Plaza
// @namespace    http://tampermonkey.net/
// @version      0.2.2
// @description  访问米游社七圣召唤卡牌广场的评论区时在页面底部打印评论发出用户的主页URL。自用。
// @description:en Print the URL of the homepage of the user from whom the comment was sent at the bottom of the page when you visit the comment section of the Seven Saints Call of Cards Plaza at MiYosha. for your own use.
// @author       aspen138
// @match        https://webstatic.mihoyo.com/ys/event/bbs-lineup-qskp/*
// @grant        none
// @run-at       document-start
// @icon         data:image/png;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABMLAAATCwAAAAAAAAAAAAD/2FkI/9hZSv/YV5P/3W+19cOaxvzv6NX////g///+6v///vL///74///+/P/////////+///+6v///Yn//vkT/9hZfP/YWe7/2Ff//tx7//XFpv/++vj////////////////////////////////////////////////6///9kP/YWej/2Fn//9lY//zXiP/2zrf///////zw6f/649b////////////////////////////////////////+/e3/2Fn9/9hZ///ZWv/6043/99PB///////2zLT/99C5/////////////////////////////////////v/42Mb+/9hZ///YWf//2Fj//NiJ//XIrv///f3//fPt//759v////////////328f/52sn///79///////76d7/87yY///YWf3/2Fn//9lb//7ikf/3zbD/+NfE///9/P/////////////////53c3/9MOn///////++/r/9cOl//vXkf3/2Fn7/9hX//7cdP/1w5z/9cWm//XIrf/2zLX//PDq/////v///////vn2//749f//////+d3P//fGkf//3Wn6/9hZ9//YWP/82IP/9suu//vWo//1w6H/+daq//XCmf/2y7P/+uHT//zv6P/99fH/++zk//TBoP/92n7//9hX9f/YWfL/2Vn/+9OK//jSt///7Lz/9cWk//3bfv//3G//+9iZ//XEp//0wqb/9cen//bEmv/7147//9pe///YWe//2Fnr/9pb//nPiv/52sf//vLa//XFof/+23L//9lX//vVjv/1wqH/9cKY//jSrv//4H///9lb///YWP//2Fnn/9hZ4//aW//5zon/+dzN//739P/2xZz//9tr///aX//4y5T/+t7C//7nuP/1xKP//tt4///YV///2Fn//9hZ3f/YWdb/2Fj//NaB//XIrf/76eH/9sSZ///baP//22P/98iX//zkyv/+7Mb/9sen//7cdf//2Ff//9hZ///YWdD/2Fm4/9hY///aY//60oz/9L2Z//fIlP//22P//9tk//fImP/87eP//vfv//bHo///3HH//9hX///YWf//2Fm+/9hZaf/YWff/2Fj//9pe//7bdf/+23D//9hZ///bYf/3ypb/++ng//759v/1xqH//9xx///YV///2Fn//9hZof/YWQz/2Fl5/9hZ1v/YWfH/2Ff8/9hY///YWf//2Vr/+9WM//XIr//76N7/9cOd///ccv//2Ff//9hZ8//YWVv/2FkA/9hZAv/YWRz/2FlD/9hZav/YWY3/2Fmr/9hYxf/ca9n50prp9L+f9ffJnf3/3Gn9/9hY5f/YWXz/2FkKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAA==
// @license      GPL-3.0 License
// ==/UserScript==


function myCopeWtih(item) {
    var user_account_uid = item.user.account_uid;
    var user_nickname = item.user.nickname;
    var user_comment = item.content.text;
    var user_comment_reply_id = item.reply_id;

    console.log("\r\n");
    console.log("user_account_uid=" + user_account_uid); // 打印user对象中的account_uid
    console.log("user_nickname=" + user_nickname); // 打印此用户昵称
    console.log("https://webstatic.mihoyo.com/ys/event/bbs-lineup-qskp/index.html#/pc/author/" + user_account_uid); // 打印此用户主页URL
    console.log(user_comment); // 打印account_uid对应的评论
    console.log("reply_id=" + user_comment_reply_id); //打印此回复对应的reply_id
    console.log("\r\n");


    // 创建一个新的 div 元素来显示信息
    var infoDiv = document.createElement("div");
    infoDiv.style.margin = "10px";
    infoDiv.style.padding = "5px";
    infoDiv.style.border = "1px solid #ddd";
    infoDiv.style.backgroundColor = "#f9f9f9";

    // 设置 div 的内容
    infoDiv.innerHTML = "<strong>用户昵称:</strong> " + user_nickname + "<br>" +
        "<strong>评论:</strong> " + user_comment + "<br>" +
        "<strong>用户主页URL:</strong> " + "https://webstatic.mihoyo.com/ys/event/bbs-lineup-qskp/index.html#/pc/author/" + user_account_uid;

    // 找到评论区的容器元素,或者你可以创建一个新的容器元素
    var commentsContainer = document.querySelector("#your-comments-container-selector");
    if (commentsContainer) {
        // 将 div 添加到评论区的容器中
        commentsContainer.appendChild(infoDiv);
    } else {
        // 如果没有找到评论区容器,就直接添加到 body 中
        document.body.appendChild(infoDiv);
    }
}

(function() {
    'use strict';

    // 重写 XMLHttpRequest 的 open 方法
    const originalXHROpen = XMLHttpRequest.prototype.open;
    XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
        this.addEventListener('readystatechange', function() {
            if (this.readyState === 4 && this.status === 200 &&
                (url.includes('api-takumi.mihoyo.com/bouleuterion_v2/v1/account/reply/list') || url.includes('api-takumi.mihoyo.com/bouleuterion_v2/v1/account/reply/floor/list'))
            ) {
                try {
                    // 解析响应的 JSON 数据
                    const responseJSON = JSON.parse(this.responseText);
                    console.log(responseJSON);
                    // 检查数据结构并提取 account_uid
                    if (responseJSON && responseJSON.data && responseJSON.data.list) {
                        console.log('提取的account_uid列表:');
                        // 遍历list数组
                        responseJSON.data.list.forEach(item => {
                            myCopeWtih(item)
                            item.sub_reply_list.forEach(subItem => {
                                myCopeWtih(subItem)
                            });
                        });
                    }
                } catch (e) {
                    console.error('Error parsing JSON:', e);
                }
            }
        }, false);
        originalXHROpen.call(this, method, url, async, user, pass);
    };
})();