// ==UserScript== // @name 访问米游社七圣召唤卡牌广场的评论区时在控制台打印评论发出用户的主页URL // @namespace http://tampermonkey.net/ // @version 0.1 // @description 访问米游社七圣召唤卡牌广场的评论区时在控制台打印评论发出用户的主页URL。自用。 // @author aspen138 // @match https://webstatic.mihoyo.com/ys/event/bbs-lineup-qskp/* // @grant none // @run-at document-start // @icon https://www.miyoushe.com/favicon.ico // @license GPL-3.0 License // @downloadURL none // ==/UserScript== function printSpecifiedUserAndComment(item) { console.log("\r\n"); var user_account_uid = item.user.account_uid; var user_nickname = item.user.nickname; 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(item.content.text); // 打印account_uid对应的评论 console.log("reply_id="+item.reply_id); //打印此回复对应的reply_id console.log("\r\n"); } (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 => { printSpecifiedUserAndComment(item) item.sub_reply_list.forEach(subItem => { printSpecifiedUserAndComment(subItem) }); }); } } catch (e) { console.error('Error parsing JSON:', e); } } }, false); originalXHROpen.call(this, method, url, async, user, pass); }; })();