MCPcopy Create free account
hub / github.com/XIU2/UserScript / blockUsers

Function blockUsers

Hostloc-Enhanced.user.js:232–291  ·  view source on GitHub ↗
(type)

Source from the content-addressed store, hash-verified

230 };
231 // 屏蔽用户
232 function blockUsers(type) {
233 if (!menu_value('menu_customBlockUsers') || menu_value('menu_customBlockUsers').length < 1) return
234 switch (type) {
235 case 'thread': // 帖子内
236 blockUsers_('[id^="post_"]', 'a[href^="space-uid"]');
237 blockUsers_('[id^="comment_"] > div', 'a.xi2.xw1'); // 点评
238 blockUsers_('.quote', 'a[href*="&ptid="]:not([id])>font', 1); // 回复引用
239 break;
240 case 'forum': // 各版块帖子列表
241 blockUsers_('[id^="normalthread_"]', 'a[href^="space-uid"]');
242 blockUsers_vfastpost(); // 预览帖子中的回复
243 break;
244 case 'search': // 搜索结果
245 blockUsers_('.pbw', 'a[href^="space-uid"]');
246 break;
247 case 'notice': // 消息
248 blockUsers_('dl.cl', '.ntc_body a[href^="space-uid"]');
249 break;
250 case 'pm': // 私人聊天
251 blockUsers_('dl[id^="pmlist_"]', '.ptm.pm_c a[href^="space-uid"]');
252 break;
253 }
254 function blockUsers_(list1, list2, type) {
255 document.querySelectorAll(list1).forEach(function (item) { // 遍历所有帖子
256 menu_value('menu_customBlockUsers').forEach(function (item1) { // 遍历用户黑名单
257 let itemName = item.querySelector(list2); // 寻找用户名
258 if (itemName) {
259 if (type && type === 1 && itemName.textContent.split(' ')[0] === item1) { // 回复引用
260 console.log(`屏蔽用户:${item1}`);
261 item.hidden = true; // 隐藏
262 } else if (itemName.textContent === item1) {
263 console.log(`屏蔽用户:${item1}`);
264 item.hidden = true; // 隐藏
265 }
266 }
267 })
268 })
269 }
270 function blockUsers_vfastpost() {
271 let vfastpost = e => {
272 if (e.target.nodeType == 1 && e.target.outerHTML && e.target.outerHTML.indexOf('class="fastpreview"') > -1) {
273 e.target.querySelectorAll('.bm_c > [id^="post_"]').forEach(function (item) { // 遍历所有回复
274 menu_value('menu_customBlockUsers').forEach(function (item1) { // 遍历用户黑名单
275 let itemName = item.querySelector('a.xi2'); // 寻找用户名
276 if (itemName && itemName.textContent === item1) {
277 console.log(`屏蔽用户:${item1}`);
278 item.hidden = true; // 隐藏
279 }
280 itemName = item.querySelector('.quote>blockquote>font:first-child'); // 寻找用户名(回复引用)
281 if (itemName && itemName.textContent.split(' ')[0] === item1) {
282 console.log(`屏蔽用户:${item1}`);
283 item.querySelector('.quote').hidden = true; // 隐藏
284 }
285 })
286 })
287 }
288 }
289 document.addEventListener('DOMNodeInserted', vfastpost); // 监听插入事件

Callers 3

blockFunction · 0.70
pageLoadingFunction · 0.70

Calls 3

blockUsers_vfastpostFunction · 0.85
menu_valueFunction · 0.70
blockUsers_Function · 0.70

Tested by

no test coverage detected