一入泥潭深似海,满城尽是菊家#。余承东是天上父,任正非是地上神。老师教你#祖国,外野孝子#华为。你给华为智商税,华为给你增智慧。华为好呀华为美,华为用户全拉黑。
// ==UserScript== // @name 自动拉黑华为用户 // @description 一入泥潭深似海,满城尽是菊家#。余承东是天上父,任正非是地上神。老师教你#祖国,外野孝子#华为。你给华为智商税,华为给你增智慧。华为好呀华为美,华为用户全拉黑。 // @namespace huawei-ptsd // @match *://bbs.saraba1st.com/2b/thread-* // @grant none // @run-at document-end // @version 1.2 // ==/UserScript== async function getFormHash() { let res = await fetch('https://bbs.saraba1st.com/2b/home.php?mod=space&do=friend&view=blacklist'), html = await res.text(), parser = new DOMParser(), doc = parser.parseFromString(html, 'text/html'), formHashInput = doc.querySelector('form[name=blackform] input[name=formhash]'), formHash = formHashInput.value; return formHash; } async function addBlacklist(username) { let formHash = await getFormHash(), res = await fetch('https://bbs.saraba1st.com/2b/home.php?mod=spacecp&ac=friend&op=blacklist&start=', { method: 'POST', credentials: 'include', headers: { 'content-type': 'application/x-www-form-urlencoded' }, body: `username=${encodeURIComponent(username)}&blacklistsubmit_btn=true&blacklistsubmit=true&formhash=${formHash}`, }), html = await res.text(); return html.includes('操作成功'); } function isHuaweiUser(text) { return [ /—— 来自 HUAWEI .+, Android .+$/, // S1Next-鹅版 /----发送自 HUAWEI .+,Android .+$/ // Stage1 App For Android ].some(re => re.test(text)); } ~async function() { let huaweiPosts = Array.from(document.querySelectorAll('#postlist > [id^=post_]:not([style])')).filter( postElement => { return isHuaweiUser(postElement.querySelector('[id^=postmessage_]').textContent); }) for (let postElement of huaweiPosts) { postElement.style.display = 'none'; } let unblockedHuaweiUsers = Array.from( new Set( huaweiPosts.map( postElement => { return postElement.querySelector('.authi .xw1').textContent; }) ) ); for (let username of unblockedHuaweiUsers) { await addBlacklist(username); } }();