// ==UserScript==
// @name 访问米游社七圣召唤卡牌广场的评论区时在页面底部打印评论发出用户的主页URL
// @namespace http://tampermonkey.net/
// @version 0.2.1
// @description 访问米游社七圣召唤卡牌广场的评论区时在页面底部打印评论发出用户的主页URL。自用。
// @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
// @downloadURL none
// ==/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 = "用户昵称: " + user_nickname + "
" +
"评论: " + user_comment + "
" +
"用户主页URL: " + "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);
};
})();