Subscribed unsubscribe Subscribe Subscribe

枕を欹てて聴く

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

LDR Full Feed 0.0.3

Greasemonkey LDR LDRFullFeed

細かな修正と少し拡張
LDR Full Feed for Greasemonkey

SITE_INFOの追加

gをぺちって押してLDRで全部全文読んじゃおう。 - Muibrogで公開されていたSITE_INFOを取り込みました。ありがとうございます。また、そのほかにも追加。

設定項目の追加

Script内部の変数をかえると多少設定ができるように。ロード中の処理など個人の好き嫌いによるものが出てきたのでon/offを設定できるようにしてみた。

  • KEY : どのキーを押すと全文表示ができるか。
  • ADCHECKER : タイトルがこの正規表現にマッチすると、広告とみなして展開しない。
  • LOADING_MOTION : trueで展開中のエントリの背景色を変化。falseで今までどおり。
  • REMOVE_SCRIPT : 読み込み時にScript要素を削除するかどうか。
  • REMOVE_H2TAG : 読み込み時にH2要素を削除するかどうか。標準ではfalseになってる。

H2要素の消去の訂正

以前は

(function (doc){
  var h2tags = doc.getElementsByTagName('h2');
  for(var i = 0; i < h2tags.length; i++) {
    h2tags[i].parentNode.removeChild(h2tags[i]);
  }
})

の部分が担っていたけれども、これではひとつでも削除したとたんに構造が変わって消す要素を見失い、削除し損ねるということが。(ひどいミス)
例: moongiftのエントリで、一度タイトルでもないのにつっかかるのはH2要素が残っていたため。
よって、REMOVE_H2TAGがtrueのときには、テキストの段階で、

    text = text.replace(/<h2[^>]*?>[\S\s]*?<\/h2>/g, "");

として取り除くように。でもなんか間違ってそうな気がして怖い。

読み込んだエントリにclassを追加

読み込んだエントリにgm_fullfeed_loadedクラスと
もしSITE_INFOにbaseが指定されているならその値を、指定されていなければそのエントリのURLをクラスとして追加するように。
結果、たとえばStylishやuserContent.css

@-moz-document url-prefix(http://fastladder.com/reader/),url-prefix(http://reader.livedoor.com/reader){
div[class*="http://alfalfa.livedoor.biz"] {
  background-color : #F5F5DB !important;
}
div[class*="http://alfalfa.livedoor.biz"] .NM {
  color : #008000 !important;
}
}

てなかんじに記載しておくと
例: アルファルファモザイク場合
f:id:Constellation:20080219013158j:image
という風にわりと表示をいろいろと変更できます。味気ないと思ったらいじってみてもいいかもしれません。

フィルタ

AutoPagerizeを参考にして作った結果、微妙にaddFilterやaddDocumentFilterのようなフィルタをかけることができる。これは一番最初から内蔵してみてはいたけどいまいち使いどころが思いつかないので、リンクに_blankつける作業にだけ使っています。

補足

メタ情報に標準で

// @privilege false

を追加。これでそのままuserContent.uc.jsでも使えるように。(割と自分が使ってたりするので)
いちおうFirefox3でも動作するのは確認しました。