🏠 Home 

Greasy Fork is available in English.

知乎谢邀自动不感兴趣功能

可以自动点击不感兴趣


安装此脚本?
  1. // ==UserScript==
  2. // @name 知乎谢邀自动不感兴趣功能
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description 可以自动点击不感兴趣
  6. // @author Kaze.Liu
  7. // @match https://www.zhihu.com/creator/featured-question/invited
  8. // @grant none
  9. // ==/UserScript==
  10. (function () {
  11. 'use strict';
  12. var setting = false;
  13. var kazeBtn = document.createElement('KazeBtn');
  14. kazeBtn.innerHTML = `<div class="kazeArea"><div class='btnArea'><div class="notInterested">开始自动不感兴趣</div><span class="kazesetting">设置</span></div>` +
  15. `<div style="margin-top:10px"><span>回答数达到</span><input type='number' class="kazeanswer" value='30'/><span>以上的不清除</span></div>` +
  16. `<div style="margin-top:10px"><span>关注数达到</span><input type='number' class="kazeattention" value='30'/><span>以上的不清除</span></div>`;
  17. document.getElementsByTagName('main')[0].appendChild(kazeBtn);
  18. var kazestyle = document.createElement('style');
  19. kazestyle.innerHTML = `
  20. .kazeArea {
  21. position: fixed;
  22. top: 62px;
  23. right: 10px;
  24. display: flex;
  25. flex-direction: column;
  26. background: #fff;
  27. align-items: flex-end;
  28. overflow: hidden;
  29. width: 220px;
  30. height: 40px;
  31. padding: 5px;
  32. transition: all 0.5s;
  33. }
  34. .kazeanswer,.kazeattention{
  35. width:50px;
  36. }
  37. .kazeArea .btnArea {
  38. display: flex;
  39. align-items: center;
  40. justify-content: space-between;
  41. width: 210px;
  42. }
  43. .kazeArea .notInterested,
  44. .kazeArea .kazesetting {
  45. border: 1px solid #0084ff;
  46. color: #fff;
  47. background: #0084ff;
  48. padding: 10px;
  49. cursor: pointer;
  50. }
  51. .kazeArea.active {
  52. width: 230px;
  53. height: 127px;
  54. }
  55. .kazeError{
  56. background: #23ade5;
  57. color: #fff;
  58. }
  59. `;
  60. document.getElementsByTagName('main')[0].appendChild(kazestyle);
  61. let answerIndex = 0;
  62. let removeAnswer = 0;
  63. let removeAnswerError = 0;
  64. document.querySelectorAll(`.notInterested`)[0].addEventListener('click', event => {
  65. var el = document.querySelectorAll(`.QuestionItem`);
  66. answerIndex = el.length;
  67. for (let index = 0; index < el.length; index++) {
  68. const element = el[index];
  69. if (index == 2) debugger;
  70. var a = element.querySelectorAll(`.ContentItem-statusItem`);
  71. if (a != null && a.length > 0) {
  72. let statusItem = a[0].innerText.split(' ');
  73. //标准格式
  74. if (statusItem != null && statusItem.length == 5) {
  75. if (statusItem[1] == "万浏览") {
  76. //热
  77. var answer = parseFloat(statusItem[3]);
  78. let kazeanswer = parseFloat(document.querySelectorAll(`.kazeanswer`)[0].value);
  79. if (kazeanswer > answer) {
  80. removeAnswer++;
  81. console.log(`删除 ${element.querySelectorAll(`.QuestionItem-title`)[0].innerText} ,该问题关注${attention},回答${answer}`);
  82. element.querySelectorAll(`button[data-tooltip-classname='QuestionItem-ignoreButtonTooltip']`)[0].click();
  83. }
  84. } else {
  85. try {
  86. var attention = parseFloat(statusItem[3]);
  87. var answer = parseFloat(statusItem[0]);
  88. let kazeanswer = parseFloat(document.querySelectorAll(`.kazeanswer`)[0].value);
  89. let kazeattention = parseFloat(document.querySelectorAll(`.kazeattention`)[0].value);
  90. if (kazeanswer > answer && kazeattention > attention) {
  91. removeAnswer++;
  92. console.log(`删除 ${element.querySelectorAll(`.QuestionItem-title`)[0].innerText} ,该问题关注${attention},回答${answer}`);
  93. element.querySelectorAll(`button[data-tooltip-classname='QuestionItem-ignoreButtonTooltip']`)[0].click();
  94. }
  95. } catch (error) {
  96. removeAnswerError++;
  97. console.log('解析失败 ' + element.querySelectorAll(`.QuestionItem-title`)[0].innerText);
  98. element.querySelectorAll(`.QuestionItem-title`)[0].classList.add('kazeError');
  99. }
  100. }
  101. } else if (statusItem != null && statusItem.length == 4) {
  102. if (statusItem[0] == '好物推荐') {
  103. var answer = parseFloat(statusItem[2]);
  104. let kazeanswer = parseFloat(document.querySelectorAll(`.kazeanswer`)[0].value);
  105. if (kazeanswer > answer) {
  106. removeAnswer++;
  107. console.log(`删除 ${element.querySelectorAll(`.QuestionItem-title`)[0].innerText} ,该问题关注${attention},回答${answer}`);
  108. element.querySelectorAll(`button[data-tooltip-classname='QuestionItem-ignoreButtonTooltip']`)[0].click();
  109. }
  110. }
  111. } else {
  112. removeAnswerError++;
  113. console.log('解析失败 ' + element.querySelectorAll(`.QuestionItem-title`)[0].innerText);
  114. element.querySelectorAll(`.QuestionItem-title`)[0].classList.add('kazeError');
  115. }
  116. }
  117. }
  118. alert(`处理完毕,点击确定后请等待服务器和页面响应,白屏为正常现象。共有问题${answerIndex}个,清除${removeAnswer}个,失败${removeAnswerError}个(已标记),保留${answerIndex-removeAnswer-removeAnswerError}个,详情请去控制台查看`);
  119. });
  120. document.querySelectorAll(`.kazesetting`)[0].addEventListener('click', event => {
  121. setting = !setting;
  122. if (setting) {
  123. document.querySelectorAll(`.kazeArea`)[0].classList.add('active');
  124. } else {
  125. document.querySelectorAll(`.kazeArea`)[0].classList.remove('active');
  126. }
  127. })
  128. })();