// ==UserScript==
// @name 仙家军成分查询Helper
// @namespace www.bilibili.com
// @version 1.0.0.4
// @description 用于标记仙家军和动态转发仙的b站用户,列表纯手动验证成分后添加。可能误伤出于批判嘲笑等原因转发仙的用户。脚本改自【糊狸-B站成分查询Helper】
// @author Darknights
// @match https://*.bilibili.com/*
// @icon https://static.hdslb.com/images/favicon.ico
// @connect bilibili.com
// @grant GM_xmlhttpRequest
// @license MIT
// @run-at document-end
// @downloadURL none
// ==/UserScript==
(function () {
'use strict';
/* 配置区 */
const config = {
times: 2500, // 标签处理间隔时间 单位:ms
testLog: false // 是否开启调试日志
}
// 显示标签配置在👇面
const xianList = ['2626308','91294717','691660481','594265974','1399233488','201128149','492233743','1384853937','193242084','59212436','1547943832','355829734','439010078','3493110134868545','289739171','455857213','559989730','252864981','595397699','1825148722','300313419','2142529765','333755368','372672537','366752296','628918703','359762403','449254922','27748754','1397451482','435429250','293497224','87355702','1080954745','1005732624','353381701','3493146415598203','36832623','298253160','3493109944027757','1459252016','626718713','3493128606583732','1413259326','3493108211780104','288608355','398268451','527079387','1705910990','2072727585','19227977','8118856710','1986311121','273627979','322540587','3493264994863124','1436392582','3493122713586530','503354352','3493267740035490','3461576510147287','643362376','55417546','3493282594163167','20617055','3461564359248624','388317005','2029973237','543283877','599439268','937235','511355405','37660844','511355405','524480956','375074321','87296302','44952669','172725229','1369696284','389007','589755766','4947574','394067676','499866803','35612911','10453721','3493295195949740','1134025725','1350039692','442716028','1044725703','36579529','1677221329','5765492','1691881192','86520669',,'525706751','442716028','353839591','10453721','1113890768','3461574566086858','111339218','1531330351','662110818','3461574433966081','1770158437','646116461','193242084','2112612559','3494349983714230','3493080227383503','626139499','408443934','503777492','490811664','3493120108923438','1861056960','161537754','355829734','3493260081236751','3493123518892834','3493281459604332','1055982250','97156738','549164139','572103170','19767091','17426743','26144732','3493104510306572','20668227','310739216','38134752','2086415808','24370011','227711','341345864','131686171','1215911548','518890959','361110695','343483727','22356679','1500447686','382322597','1652444369','1379468139','700334419','1920077601','629636812','342625887','1999783629','1521899960','1250227139','1035834480','515953856','1269661366','1580057','342504730','492886360','518890959','322003546','402337847','509967955','545157646','46700199','393185198','330060938','1773068006','3493292132010608','2049417456','3493110134868545','421415625','1901385718','1299712856','184834562','323316289','592098805','3493130307373585','3493283921660585','497749570','38669319','1886920878','3493128552057316'];
const xianTag = ["<目标:仙>", "#11DD77"];
const xianSmellTag = ["<环境:转发仙>", "#1E971E"];
/* Functions */
const getUid = function (htmlEntity) {
if (isNew) {
return htmlEntity.dataset['userId'];
} else {
return htmlEntity.children[0]['href'].replace(/[^\d]/g, "");
}
}
const getCommentList = function () {
if (isNew) {
let lst = new Set();
for (let c of document.getElementsByClassName('user-name')) {
lst.add(c);
}
for (let c of document.getElementsByClassName('sub-user-name')) {
lst.add(c);
}
return lst;
} else {
return document.getElementsByClassName('user');
}
}
const log = function (message) {
return config.testLog ? console.log(message) : null;
};
const spawnHtml = function (data) {
return `${data[0]}`
}
const smell = function (items) {
var flag = false;
for (var i = 0; i < items.length; i++) {
var item = items[i];
for (var key in item) {
if(key == 'orig'){
var did = String(item.orig.modules.module_author.mid);
if(xianList.indexOf(did)>-1){
log('repost:'+did);
flag = true;
break;
}
}
}
if(flag == true) break;
}
log(flag);
return flag;
}
const blog = 'https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space?&host_mid=';
// 检测是不是新版
const isNew = document.getElementsByClassName('item goback').length != 0;
log(isNew);
log("Loading...");
setInterval(() => {
const commentlist = getCommentList();
if (commentlist.length != 0) {
commentlist.forEach(htmlEntity => {
if (htmlEntity.innerHTML.indexOf(``) == -1) {
htmlEntity.innerHTML += ``;
const uid = getUid(htmlEntity);
if(xianList.indexOf(uid)>-1){
log('target:'+uid);
htmlEntity.innerHTML += spawnHtml(xianTag);
}else{
GM_xmlhttpRequest({
method: "get",
url: blog + uid,
data: '',
headers: {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
},
onload: res => {
if (res.status === 200) {
const dynamicJson = JSON.parse(res.response).data;
if(smell(dynamicJson.items)){
log('smell:'+uid);
htmlEntity.innerHTML += spawnHtml(xianSmellTag);
}
} else {
log('Fail');
log(res);
}
},
});
}
htmlEntity.innerHTML += ``;
}
});
}
}, config.times)
})();