Comments killfile for Cyanide & Happiness

Removes comments by users that I don't care to read

目前為 2016-07-29 提交的版本,檢視 最新版本

// ==UserScript==
// @name        Comments killfile for Cyanide & Happiness
// @namespace   https://pineight.com/
// @description Removes comments by users that I don't care to read
// @include     http://explosm.net/shorts/*
// @include     http://explosm.net/comics/*
// @version     1
// @grant    GM_addStyle
// @grant    GM_getValue
// @grant    GM_setValue
// @noframes
// ==/UserScript==

(function () {
  var trim = (function () {
    var trimRE = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
    return function(s) {
      return s.replace(trimRE, '');
    };
  })();

  var read_users_from_string = (function(s) {
    var kfllines = s.split("\n");
    var r = {};
    for (key in kfllines) {
      var line = trim(kfllines[key]);
      if (line !== '') r[line] = true;
    }
    return r;
  });

  var read_users_from_textarea = (function() {
    var kfl = document.getElementById('pino_killfile_list');
    return read_users_from_string(kfl.value);
  });

  var go = (function () {
    console.log("Applying killfile");
    kfset = read_users_from_textarea();
    console.log("to "+Object.keys(kfset));

    var cws = document.querySelectorAll(".comment-wrapper");
    for (var i = 0; i < cws.length; ++i) {
      var cw = cws[i];
      var cuspan = cw.querySelector(".comment-username");
      if (!cuspan) continue;
      var username = trim(cuspan.firstChild.textContent);
      var in_kfset = Object.prototype.hasOwnProperty.call(kfset, username);
      if (!in_kfset) continue;
      cw.innerHTML = "";
      cw.textContent = "(Ignoring comment by "+username+")";
    }
    var usersaslines = Object.keys(kfset).join("\n");
    if (GM_setValue) GM_setValue("kf_users", usersaslines);
  });

  var install = (function () {
    var jstr = document.querySelector("a.js-toggle-replies");
    if (!jstr) return false;

    var userslist = GM_getValue && GM_getValue("kf_users");
    var users = userslist ? read_users_from_string(userslist) : {};
    var kflwrap = document.createElement('div');
    var usersaslines = Object.keys(users).join("\n");

    kflwrap.setAttribute('id', 'pino_killfile_list_wrapper');
    kflwrap.innerHTML = '<a id="pino_killfile_button" href="#pino_killfile_button">Hide comments</a> by these users:<br><textarea cols="30" rows="5" id="pino_killfile_list"></textarea>';
    jstr.parentNode.appendChild(kflwrap);
    kfl = document.getElementById('pino_killfile_list');
    kfl.textContent = usersaslines;
    kfbutton = document.getElementById('pino_killfile_button');
    kfbutton.addEventListener("click", go, false);
    console.log("Killfile loaded");
    return kfbutton;
  });

  var waitinstall = (function () {
    if (!install()) {
      console.log("Killfile by PinoBatch will be installed once comments load");
      window.setTimeout(waitinstall, 10000);
    }
  })
  waitinstall();
})();

QingJ © 2025

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