(type)
| 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); // 监听插入事件 |
no test coverage detected