play on tumblrに手を入れてみた (20101110 11:45)

2010/11/29 03:45 追記
またもやlキーが無反応な現象に遭遇しちゃいました。(どうも俺だけっぽいけど)
いま現在、最新版だろうと思われる下記に差し替えたら無事にlキーが機能するようになりました。
ttps://gist.github.com/717500

2010/11/10 18:00 追記
gist.github.comに改造版play on tumblrを公開しました。
ttps://gist.github.com/670526

公開に当たってTwitterでtwwpさん(taizoooさん)に色々とアドバイスをいただきました。
ありがとうございます。

また、これを受けてオリジナルのplay on tumblrに、今回のおいらの改訂をtaizoooさんが盛り込んだ版も公開してくださいました。
ttps://gist.github.com/670503

2010/11/10の早朝ぐらいから、Tumblrのダッシュボードでlikeを取り消せない症状が発生している。

この影響だと思うけんども、Tumblrのダッシュボード操作を快適にしてくれるGreasemonkeyスクリプトplay on tumblrにて、lキーによるlike操作もできなくなってしまったのでちょっと手を入れてみましたメモ。

ただしこの修正を施したplay on tumblrであっても、lキーでのトグル操作はできず*、likeするのみの一方通行です。 片思いかっ、片思いなのかーっ (違う

*
lキー操作によってダッシュボード上でlike済みのポストに対し、再びlキー操作をすることで、likeを取り消すことが出来ない)

---
※この「ダッシュボードでlikeが取り消せない」件はTumblrサポートにメール済み)
---

ソースの91行目以降にある下記を
    addCommand({
        name: "tumblr.like",
        command: function(stdin) {
            try {
                if (!stdin.length) stdin = execute('current-node');
                var count = $X('.//input[contains(concat(" ",@class," "), " like_button ")]', stdin[0]);
                for (var n = 0; n < count.length; n++) {
                    if(!count[n].clientWidth) continue;
                    count[n].click();
                    return stdin;
                }
            } catch(e) {}
            return stdin;
         }});

ひとつ上の段落にあるreblog.countのマネっこをする方針で下記のように変更した。
    addCommand({
        name: "tumblr.like",
        command: function(stdin) {
            try {
                if (!stdin.length) stdin = execute('current-node');
                var count = $X('.//a[contains(concat(" ",@class," "), " like_button ")]', stdin[0]);
                for (var n = 0; n < count.length; n++) {
                    click(count[n]);
                    return stdin;
                }
            } catch(e) {}
            return stdin;
         }});