Subscribed unsubscribe Subscribe Subscribe

枕を欹てて聴く

香炉峰の雪は簾を撥げて看る

LDRのFolderのblack listを作る

LDR Greasemonkey

ふと, 思ったので.

// ==UserScript==
// @name           LDR Block List
// @namespace      http://d.hatena.ne.jp/Constellation/
// @include        http://reader.livedoor.com/reader/*
// @include        http://reader.fastladder.com/reader/*
// ==/UserScript==

var reg = /Blog/
var white = true;// black list or white list

var win = unsafeWindow;
var load_data = true;
var load_partial_data = true;
var id = setTimeout(function(){
  clearTimeout(id);
  if(load_data && win.subs && win.subs.model && win.subs.model.load_data){
    load_data = false;
    win.subs.model.load_data = function(list){
      this.loaded = true;
      this.list = list.filter(function(item){
        var res = reg.test(item.folder);
        return white ? res : !res;
      });
      this.generate_cache();
    }
  }
  if(load_partial_data && win.subs && win.subs.model && win.subs.model.load_partial_data){
    load_partial_data = false;
    var orig = win.subs.model.load_partial_data;
    win.subs.model.load_partial_data = function(list){
      list = list.filter(function(item){
        var res = reg.test(item.folder);
        return white ? res : !res;
      });
      orig.call(this, list);
    }
  }
  if(load_data || load_partial_data) id = setTimeout(arguments.callee, 100);
}, 100);

意外とあっさりできた.
/Blog/になってるけど, white list状態なので, folderがBlogのものしか表示されないはず.
white = falseにするとblack list状態になるから, 人前では見れないものを1folderにまとめて, 消しとくとかできる.

たまーにLDRのソース読み直すと, 面白いなー.