|
配合油猴脚本:
===========================
// ==UserScript==
// @name hostloc 自动屏蔽黑名单用户
// @namespace http://tampermonkey.net/
// @version 0.2.1
// @description 自动获取 hostloc 的黑名单,并屏蔽相应帖子
// @author susc
// @match http*://*.hostloc.com/*
// @grant unsafeWindow
// @license GPL
// ==/UserScript==
(async function () {
'use strict';
// 脚本内部使用,在此处修改无效
var CONFIG = {
blockList: [],
blockedPIDs: [],
blockedCount: 0
}
// 根据页数获取黑名单
async function getBlackListByPage(page) {
let response
try {
response = await fetch(`/home.php?mod=space&do=friend&view=blacklist&page=${page}`)
} catch (e) {
console.log('获取黑名单失败')
console.log(e)
return []
}
let html = await response.text()
let regList = html.match(/[url=]([^/g)
if (!regList) {
return []
}
let blacklist = regList.map(i => i.replace(//g, ''))
console.log(`获取第${page}页黑名单成功: ${blacklist}`)
return blacklist
}
// 获取黑名单
let currentPage = 1
let finish = false
while (!finish) {
console.log(`获取第${currentPage}页黑名单`)
let blacklist = await getBlackListByPage(currentPage)
if (blacklist.length === 0) {
finish = true
}
else {
CONFIG.blockList = CONFIG.blockList.concat(blacklist)
currentPage++
}
}
// 帖子列表页面
var authorNodes = document.querySelectorAll('th + .by cite a')
authorNodes.forEach(function (item) {
if (CONFIG.blockList.includes(item.innerText.trim())) {
var $wrapper = item.parentElement.parentElement.parentElement.parentElement
var $list = $wrapper.parentElement
$list.removeChild($wrapper)
CONFIG.blockedCount++
}
})
// 帖子列表点击下一页
var $postList = document.querySelector('#threadlisttableid')
if ($postList) {
var post_mo = new MutationObserver(function (mList) {
authorNodes = document.querySelectorAll('th + .by cite a')
authorNodes.forEach(function (item) {
if (CONFIG.blockList.includes(item.innerText.trim())) {
var $wrapper = item.parentElement.parentElement.parentElement.parentElement
var $list = $wrapper.parentElement
$list.removeChild($wrapper)
CONFIG.blockedCount++
console.log('Blocked: ' + CONFIG.blockedCount)
}
})
})
post_mo.observe($postList, {
childList: true
})
}
// 帖子详情页面
authorNodes = document.querySelectorAll('.authi a.xw1');
authorNodes.forEach(function (item) {
if (CONFIG.blockList.includes(item.innerText.trim())) {
var $wrapper = item.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement
var id = Number(item.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement.id.replace('pid', ''))
CONFIG.blockedPIDs.push(id)
var $list = $wrapper.parentElement
$list.removeChild($wrapper)
CONFIG.blockedCount++
}
})
// 针对隐藏楼层
if (unsafeWindow.blockedPIDs) {
CONFIG.blockedPIDs.forEach(function (id) {
for (var i = 0; i
plyu007 发表于 2024-9-24 09:43
[/url]
配合油猴脚本:
===========================
// ==UserScript==
点评通知也能解决吗? |
|