用于检查评论是否被阿瓦隆拦截屏蔽
// ==UserScript==
// @name B站阿瓦隆检测工具2
// @namespace https://github.com/XiaoMiku01/check-awl
// @supportURL https://github.com/XiaoMiku01/check-awl
// @version 0.1.6
// @description 用于检查评论是否被阿瓦隆拦截屏蔽
// @author 晓轩iMIKU-原作 带鱼-改
// @license MIT
// @compatible chrome 80 or later
// @compatible edge 80 or later
// @compatible firefox 74 or later
// @compatible safari 13.1 or later
// @match *://*.bilibili.com/*
// @match *://*.hdslb.com/*
// @icon https://www.google.com/s2/favicons?domain=bilibili.com
// @grant none
// ==/UserScript==
(function () {
'use strict';
// 拦截 fetch 请求
const originalFetch = window.fetch;
window.fetch = function (...args) {
const fetchPromise = originalFetch.apply(this, args);
// 检查请求的 URL 是否包含 '/x/v2/reply/add'
if (args[0].includes('/x/v2/reply/add')) {
fetchPromise.then(async response => {
const clone = response.clone(); // 克隆响应,以便后续读取
const resText = await clone.text();
//console.log('/x/v2/reply/add!');
let oid = '';
if (args[1] && args[1].body) {
const formData = new URLSearchParams(args[1].body);
oid = formData.get('oid');
}
//console.log('oid=', oid, 'response=', resText);
setTimeout(() => {
check(resText, oid)
}, 1000);
}).catch(error => {
console.error('Fetch error:', error);
});
}
return fetchPromise;
};
// 检查评论状态
async function check(response_str, oid) {
let response_json = JSON.parse(response_str);
if (response_json.data.reply.state !== 0) {
copy_delete_reply(response_json, oid);
} else {
const exists = await check_reply(response_json, oid);
if (exists === true) return;
copy_delete_reply(response_json, oid);
}
}
// 验证评论是否存在
function check_reply(response_json, oid) {
let api = "https://api.bilibili.com/x/v2/reply/jump";
let type = response_json.data.reply.type;
let rpid = response_json.data.reply.rpid;
let url = `${api}?type=${type}&oid=${oid}&rpid=${rpid}`;
return fetch(url, {
method: 'GET',
mode: 'cors',
credentials: 'omit', // 不携带cookie,模拟未登录(不可用)用户
headers: {
// 不要添加'priority'等自定义请求头
// 浏览器会自动添加标准的请求头
},
referrer: document.referrer || window.location.href,
referrerPolicy: 'no-referrer-when-downgrade'
}).then(res => res.json()).then(res => {
// 处理响应
let exists = false;
if (res.data && res.data.replies) {
res.data.replies.forEach(reply => {
if (reply.rpid === rpid) {
exists = true;
} else if (reply.replies) {
reply.replies.forEach(subReply => {
if (subReply.rpid === rpid) {
exists = true;
}
});
}
});
}
return exists;
}).catch(error => {
console.error('Check reply error:', error);
return false;
});
}
// 提示用户删除被屏蔽的评论
function copy_delete_reply(response_json, oid) {
let message = response_json.data.reply.content.message;
let confirmDelete = confirm(`你的评论:\n${message}\n被阿瓦隆屏蔽了,点击确定复制并删除\n(长评论小作文可能要过审才能显示,建议小作文显示被屏蔽点取消!!)`);
if (confirmDelete) {
let api = "https://api.bilibili.com/x/v2/reply/del";
let type = response_json.data.reply.type;
let rpid = response_json.data.reply.rpid;
let csrf = document.cookie.match(/bili_jct=([^;]+)/)[1];
fetch(api, {
method: 'POST',
body: `type=${type}&oid=${oid}&rpid=${rpid}&csrf=${csrf}`,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
credentials: "include"
}).then(() => {
navigator.clipboard.writeText(message).then(() => {
setTimeout(() => {
document.getElementsByClassName('hot-sort')[0].click();
setTimeout(() => {
document.getElementsByClassName('new-sort')[0].click();
}, 250);
}, 500);
});
});
}
}
})();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址