pixiv comment abone

By rikuo Last update Sep 3, 2008 — Installed 191 times.
// ==UserScript==
// @name           pixiv comment abone
// @namespace      http://d.hatena.ne.jp/rikuo/
// @description    Hidden unrequisite comment for pixiv
// @include        http://www.pixiv.net/member_illust.php?mode=medium&illust_id=*
// @include        http://www.pixiv.net/member_board.php?id=*
// @include        http://www.pixiv.net/profile_board.php*
// ==/UserScript==
// origin1 http://anond.hatelabo.jp/20080302214727
// origin2 http://anond.hatelabo.jp/20080308200619
// cf. http://www.trashsuite.org/~minase/download/gm/hatena_haiku_hidden_entries.user.js


// '5764' の部分を、非表示にしたいユーザーで置き換えてください
// 複数のユーザーを非表示にしたい場合は,'123' , '456' , '789' のように , で id を区切って入力してください

var abone_users = [

    '5764',
    '123',
    '456',

  ];

// /禁止ワード/ の部分を、非表示にしたい言葉で置き換えてください
// また正規表現を使うことができます
// 複数のワードを登録する場合したい場合は,/foo/ , /bar/ , /biz/ のように , で区切って入力してください

var filter_comment = [

    /禁止ワード/,
    /foo/,
    /bar/,

  ];


//------------------------------------------------------------------------//

(function(){

  function xpath(context, query){
    return document.evaluate(
      query, context, null,
      XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null
    )
  }
  function removeElem(elem){
    elem.parentNode.removeChild(elem)
  }

  if(document.getElementById('one_comment_area')){
    var num = 0;
  }else{
    var num = 1;
  }

  var xpath_elem = [ 
    "descendant::div[@id='one_comment_area']/table/tbody/tr" , 
    "descendant::div[@id='bbs']/div" 
  ];
  var xpath_username = [ 
    "descendant::td[1]/a/@href" ,
    "descendant::div/span[1]/a/@href" 
  ];
  var xpath_comment = [ 
    "descendant::td[2]" ,
    "descendant::div/span[2]" 
  ];


  function abone_user(){
    if(abone_users.length == 0)return;
    var entries = xpath(document, xpath_elem[num])
    for(var i=0; i < entries.snapshotLength; i++) {
      var entry = entries.snapshotItem(i)
      if(abone_users.length > 0) {
        var username = xpath(entry, xpath_username[num])
        if(username.snapshotItem(0)){
          for(var n=0; n < abone_users.length; n++){
            if(abone_users[n] == username.snapshotItem(0).textContent.replace(/^member\.php\?id=/,'')){
              removeElem(entry);
              break;
            }
          }
        }
      }
    }
  }

  function filterComment(){
    if(filter_comment.length == 0)return;
    var entries = xpath(document, xpath_elem[num]);
    for(var j=0; j<entries.snapshotLength; j++){
      var entry = entries.snapshotItem(j);
      var comment = xpath(entry,xpath_comment[num]);
      if(comment.snapshotItem(0)){
        for(var i=0; i<filter_comment.length; i++) {
          var regexp = filter_comment[i];
          if(comment.snapshotItem(0).textContent.match(regexp)){
            removeElem(entry);
            break;
          }
        }
      }
    }
  }

  abone_user();
  filterComment();

})();