知乎一键拉黑

不需要转到用户主页,在首页即可拉黑

// ==UserScript==
// @name         知乎一键拉黑
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  不需要转到用户主页,在首页即可拉黑
// @author       bluicezhen
// @match        https://www.zhihu.com/
// @icon         https://www.google.com/s2/favicons?domain=zhihu.com
// @grant        https://gist.githubusercontent.com/bluicezhen/0a6fa3255f5718139ed13b46bbd3da6b/raw/ccbaa0b64518ea026c03522cd8e9acd780d8daca/zhihu_block.tampermonkey.js
// ==/UserScript==
(function() {
  'use strict';
  function myAlert(msg,duration) {
    var el = document.createElement("div");
    el.setAttribute("style", "position: absolute; top: 100px; right: 100px; background-color: white; color:red; font-size: 32px");
    el.innerHTML = msg;
    setTimeout(function(){
      el.parentNode.removeChild(el);
    },duration);
    document.body.appendChild(el);
  }
  function generateButton (userID) {
    function blockUser () {
      console.log('blockU')
      fetch(`https://www.zhihu.com/api/v4/members/${userID}/actions/block`, {
        'body': null,
        'method': 'POST',
        'mode': 'cors',
        'credentials': 'include'
      });
      myAlert(`已拉黑用户${userID}`, 1000)
    }
    let para = document.createElement('button');
    let node = document.createTextNode('|一键拉黑|');
    para.classList.add('zhyjlh-button');
    para.appendChild(node);
    para.addEventListener('click', blockUser)
    return para;
  }
  function main () {
    let eConteneItemMetas = document.getElementsByClassName('ContentItem-meta') // 被打开的回答的数量
    if (eConteneItemMetas.length > 0) {
      for (let i = 0; i < eConteneItemMetas.length; i++) {
        if (document.getElementsByClassName('zhyjlh-button').length == 0) { // 防止重复添加按钮
          let eAuthorInfoContent = eConteneItemMetas[i].getElementsByClassName('AuthorInfo-content')[0];
          let userURL = eAuthorInfoContent.getElementsByClassName('UserLink-link')[0].href;
          let userID = userURL.split('/')[userURL.split('/').length - 1];
          let eButton = generateButton(userID);
          eAuthorInfoContent.appendChild(eButton);
        }
      }
    }
  }
  setInterval(main, 1000);
})();