livedoor Reader でレートを一括変更する

(2007-07-07 追記) Fastladderに対応しました(include追加しただけですが)。移行時のレート付けにどうぞ。


LDR で複数のフィードのレートをまとめて設定したかったのですけど、そういう機能が見当たらないので Greasemonkey で vi コマンドを拡張してみました。 すでにどこかにありそうですが。

上のユーザースクリプトをインストールした後、「フォルダ、アイテムの編集」画面でフィードをいくつか選択して : 数字 Enter とかやると選択したフィードのレートが変わるはずです。 編集画面以外では通常通り、その時読んでいるフィードのレートが変わります。
あんまりテストとかしてないので関係ないフィードのレートが変わっちゃったりするかもしれませんが、そこは自己責任でおねがいします。

ソース

// ==UserScript==
// @name           LDR Manage Rate Commands
// @namespace      http://d.hatena.ne.jp/margin/
// @include        http://reader.livedoor.com/reader/*
// @include        http://fastladder.com/reader/*
// ==/UserScript==

(function() {with(unsafeWindow) {

  '0,1,2,3,4,5'.split(',').forEach(function(v) {
    register_command(v, function() {
      var rate = v - 0;
      var rate_img = Rate.image_path_p + rate + '.gif';
      if (hasClass('right_container', 'mode-manage')) {
        TRSelector.get_selected().forEach(function(sid) {
          set_rate(sid, rate);
        });
        var table = $('manage_table').getElementsByTagName('table')[0];
        Array.forEach(table.rows, function(row) {
          if (hasClass(row, 'selected')) {
            var img = row.cells[4].getElementsByTagName('img')[0];
            img.src = rate_img;
          }
        });
      } else if (State.now_reading) {
        var sid = State.now_reading;
        set_rate(sid, rate);
        $('rate_img').src = rate_img;
      }
    });
  });

}})();

追記 (2006-10-24 13:24)

隠れているアイテムのレートが変更されなかったのを修正したつもりです。