各種ソーシャルブックマークのコメントを埋(ryのLDR版

LDR版も欲しいなあ

livedoorクリップに各種ソーシャルブックマークのコメントを埋め込むGreasemonkeyスクリプト(管理人日記) - むぅもぉ.jp

とのことだったので書いてみました。

  • http://shinten.info/userjs/showcommentsviasbmcommen.0.0.3.user.js
    • クリックしたエントリーのコメントを表示するように修正。
      • 個人的にはLDR使うならキーボードで、と思う。
    • ロード中に次のフィードに移るとエラってたのを修正。
  • http://shinten.info/userjs/showcommentsviasbmcommen.0.0.2.user.js
    • 表示位置をエントリーの下にした。
    • 複数のエントリーでコメントを表示できるようにした。
    • 一度取得したやつは表示非表示を切り替えるようにした。
  • http://shinten.info/userjs/showcommentsviasbmcommen.0.0.1.user.js


とりあえず動いてるように見える版です。デフォルトだとキーバインドのBかBMっていう文字列クリックでメニューの上矢印のところにコメントを表示します。消すには適当なところをクリックとかで*1。初めは自分でポジションいじって表示しようと書いてたんだけど、面倒になって結局FlatMenu使った。表示位置も手抜き。結果のキャッシュとかもしてないし。

恥ずかしながらY!PipesでJSON(P)?でも出力できるって知らなかった。というか一回も使ったこと無かった。ちょっといじってみようかなと思った。でも今回みたいな使い方だとレスポンスが返ってくるまで結構時間がかかるので常用するのはつらいかなぁっていうのが正直なところです。これは僕の家の回線が遅いせいからかもしれないけど。

あと、HTMLエスケープをしてなかったので、Twitter statuses list for LDR - 口から出まかせの修正をした。HTMLエスケープとか書いてるとき最初に気付くべきだよなぁ。

追記

あぁそうか、entry_widgetsの下というかエントリーにappendChildすれば簡単だったんだ、とクリップのonkさんのコメント経由でid:aki77さんのソースを読んで気付いた。

ちょろっと変更して試しに以下の二通りを作ってみた。ちょっとわかりづらいけど、一つ目はid:aki77さんのやつみたいにエントリーがのびる。二つ目は次のエントリーにかぶる。ソースは後で貼る。


FlatMenuの引数にbase_elementを指定するとそのエレメントに、省略するとbodyにappendChildしてくれるので簡単に変更できた。LDR++

再追記

だいぶ書き換えた。というかFlatMenu使うのやめた。FlatMenu#snapとかFlatMenu#hideでインスタンスを全部消せるのがFlatMenuの利点だと(勝手に)思ったので。

関係ないけどGreasemonkeyのwindowからunsafeWindowで拡張されたオブジェクトのprototypeを使うのにいちいち

with(unsafeWindow) {
    new String('foo').func()
}

とか書いてるんだけどこれってなんかうまいことできないのかなぁ。むしろこう書くのが当然なのかなぁ。

*1:「その他」のメニューと同じです