知乎屏蔽用户回答-盐选推荐、故事档案局、盐选点金

知乎屏蔽部分官方账号的回答

  1. // ==UserScript==
  2. // @name 知乎屏蔽用户回答-盐选推荐、故事档案局、盐选点金
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.3
  5. // @description 知乎屏蔽部分官方账号的回答
  6. // @author JimmyBeck
  7. // @match https://www.zhihu.com/question/*
  8. // @grant none
  9. // @Rewritten_script_code javascript
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. var blackUsers = ['zhujiangren','gu-shi-dang-an-ju-71','liu-kan-shan-12-91']
  16. var wrapper = document.querySelector('#QuestionAnswers-answers .List')
  17. var listLength = 0
  18. var listInsertedDebounceTimer = 300
  19. var attrBlocked = 'blocked'
  20.  
  21. function debounce(fn, wait) {
  22. var timer = null;
  23. return function () {
  24. var context = this
  25. var args = arguments
  26. if (timer) {
  27. clearTimeout(timer);
  28. timer = null;
  29. }
  30. timer = setTimeout(function () {
  31. fn.apply(context, args)
  32. }, wait)
  33. }
  34. }
  35. function queryUserLinks() {
  36. return document.querySelectorAll('a.UserLink-link')
  37. }
  38. function getUserNameFromLink(link) {
  39. var exec = /[^\/]+$/.exec(link)
  40. return exec ? exec[0] : null
  41. }
  42. function queryListItem() {
  43. return wrapper.querySelectorAll('.List-item')
  44. }
  45. function queryItemInnerUserLink(item) {
  46. return item.querySelector('.AuthorInfo-content a.UserLink-link')
  47. }
  48. function collapsedItem(item, userName) {
  49. item.setAttribute(attrBlocked, attrBlocked)
  50. var content = item.querySelector('.ContentItem')
  51. content.style.height = '0'
  52. content.style.overflow = 'hidden'
  53. var holder = document.createElement('div')
  54. holder.style.cssText = 'display:flex;align-items:center;justify-content:space-between;padding:16px;background:#fafafa;cursor:pointer;'
  55. holder.innerHTML = `<span>折叠一条内容:发布者(${userName})</span><i style="text-decoration: underline;">点击还原</i>`
  56. holder.onclick = function() {
  57. content.style.height='auto'
  58. holder.parentNode.removeChild(holder)
  59. holder = null
  60. content = null
  61. }
  62. item.appendChild(holder)
  63. }
  64.  
  65.  
  66. function maskUserLinks() {
  67. var listItem = queryListItem()
  68. listItem.forEach((item, index) => {
  69. var userLink = queryItemInnerUserLink(item)
  70. if (!userLink || item.getAttribute(attrBlocked)) {
  71. return
  72. }
  73. var href = userLink.href
  74. var userId = getUserNameFromLink(href)
  75. var userName = userLink.innerHTML
  76. if (blackUsers.includes(userId)) {
  77. collapsedItem(item, userName)
  78. }
  79. })
  80.  
  81. }
  82.  
  83. function onListInserted(e) {
  84. maskUserLinks()
  85. }
  86.  
  87. wrapper.addEventListener('DOMNodeInserted', debounce(onListInserted, listInsertedDebounceTimer), false)
  88.  
  89. // Your code here...
  90. })();

QingJ © 2025

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