emacs-china user blocker

Emacs-China 论坛,屏蔽指定用户的帖子

  1. // ==UserScript==
  2. // @name emacs-china user blocker
  3. // @namespace https://liujiacai.net/
  4. // @match https://emacs-china.org/
  5. // @grant none
  6. // @version 1.0
  7. // @author https://github.com/jiacai2050
  8. // @description Emacs-China 论坛,屏蔽指定用户的帖子
  9. // @icon https://emacs-china.org/uploads/default/optimized/2X/d/dd05943671ee57856f9d7fa7ba6497f31bfcd332_2_180x180.png
  10. // ==/UserScript==
  11.  
  12.  
  13. // users id your want to block
  14. const blockedUsers = [];
  15. const prefix = 'https://emacs-china.org/u/';
  16.  
  17. let seenPostCount = 0;
  18.  
  19. function removeBlockedPosts() {
  20. const allPosts = document.querySelectorAll('td.posters a');
  21. console.log(allPosts.length);
  22. if (seenPostCount >= allPosts.length) {
  23. // console.log('already removed, return directly');
  24. return;
  25. }
  26. const oldLength = seenPostCount;
  27. seenPostCount = allPosts.length;
  28. for (let i=oldLength;i<allPosts.length;i++) {
  29. const post = allPosts[i];
  30. const url = post.href;
  31. for (blocked of blockedUsers) {
  32. const userLink = prefix + blocked;
  33. if (url === userLink) {
  34. const tr = post.parentNode.parentNode;
  35. const titleLink = tr.firstElementChild.firstElementChild.firstElementChild;
  36. console.log(`remove post: ${titleLink.textContent}, url: ${titleLink.href}, by ${blocked}`);
  37. tr.remove();
  38. }
  39. }
  40. }
  41. }
  42.  
  43. window.addEventListener('wheel', removeBlockedPosts);
  44. window.addEventListener('load', removeBlockedPosts);

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址