“2012-01-25(26) に Tumblr. で投稿や Reblog に関する変更があったため Tumblr Tornado に更新しました。
- - -
1.2.8 以前の Tumblr Tornado を使っている方は t, d, q, p 及びチャンネルダイアログによる Reblog が出来なくなりました。
ver. 1.2.8.1 は若干の不具合が存在してもそれを許容しつつも、とりあえず Reblog できることを優先して更新した開発版です。 もしかすると上手く Reblog できないかも知れませんが、変な部分が見つかった場合は報告していただけると助かります。
メインブログしか使っていない方は H キー(fast reblog) が生きているので、そちらを使うと良いかも知れません。
- - -
インストールや更新はこちらから → Install
Google chrome の方は一度ダウンロードしてから拡張機能ページに放り込むか、もしくは Tampermonkey か NinjaKit を入れていただくと上記の Install リンクから直接導入できます。
- - -
また Tumblr Tornado の更新情報などはタグ #Tumblr Tornado を参照ください。
”
Posts tagged "userscript"
Reblogable 0.0.5 - 「Shift + R」でReblogできるようになったので開発終了
2012/10/18追記: Windowsにおけるキーボードショートカットが変更されていたらしいので修正した。もう一日待てば良かったかもしれない…。
DashboardやLikeのページでポストをReblogできるキーボードショートカットを追加するシンプルなUser Script、Reblogableを0.0.5へ更新。
同時に、最近のTumblr側の更新によりDashboardなどにおいて「AltShift(MacではOption) + R」でReblogできるようになり、「公式で実装されるまでの繋ぎになる」という目的を達成できたので、Reblogableの開発を終了する事にした。
インストール: https://raw.github.com/gist/1609210/reblogable.user.js
※Chromeでセキュリティ強化によりインストールできない場合はこちらを参照
ソースコード: Add shortcut key T for Reblog on Tumblr Dashboard. — Gist
更新の概要
- キーコードはwhichではなくkeyCodeをチェックするように
- JSLintの更新により、コーディングスタイルと修飾キーのチェック方法を変更
- User Scriptにおけるメタデータの潜在的な衝突問題を可能な限り回避する為、使用するメタデータを必須なもののみに制限
- 自分はSafari 6を使用できる環境を持っておらず、Windows版Safariの更新が来そうにないので、Safariの対応を終了(Safari 5.1.7はセキュリティ上の脆弱性が多数公開されているので使用すべきではない)
Tumblr側のReblogのキーボードショートカットの実装は以下の画像の部分のはず。他のキーボードショートカットの実装もjquery.application.jsに移動しているみたい。
この通り、他にも幾つかのキーボードショートカットが追加されているようだ。また、TumblrのDashboardなどではこれまでのPrototypeやscript.aculo.usのeffects.jsに加えて、jquery_with_plugins.jsが示すようにjQueryやjQuery UI Widget、Underscore.js、Backbone.jsなどのJavaScriptライブラリも採用するようになったらしい。
開発終了については、Reblogableでは取り組むべき課題はまだいくつかあるものの、当初の目的は達成できたので良かった。Reblogableを今後も長期的に使いたい人は、環境が変化して動作しなくなった時、GistをForkするなどして改変する事で変化に対応してみると良いと思う。
ちなみに、Reblogableは0.0.4からTumblr側のキーボードショートカットよりもReblogableのキーボードショートカットを優先するようにしたので、Reblogableを編集していてRキーと被ってもReblogableの処理が実行され、Tumblr側の処理(ポストのReblogページを開く)は実行されないようになっている。他のUser Scriptを使っていてRキーでReblogできなくなって困っている人は、そのUser ScriptがTumblrの更新に対応するまでReblogableを使うと良いかもしれない(Reblogableを編集してTキーからRキーを使うようにする必要があるけど)。
tumblrに「ここまで読んだ」を追加するchrome拡張
前回読んだエントリに自動的に色を付けます
http://dl.dropbox.com/u/15541927/tumblr_auto_readmark.user.js
エンドレススクロールのマージンを変更するchrome拡張
次のページを読み込むマージンをデフォルトの300pxから2000pxにします
これで読み込み中を見ることが少なくなるはずhttp://dl.dropbox.com/u/15541927/tumblr_auto_paginator_plus.user.js
Tumblr Dashboard bugfix 0.0.3
TumblrのDashboardに存在している不具合を修正するUser Script、Tumblr Dashboard bugfixを0.0.3に更新。
インストール: https://raw.github.com/gist/2627067/tumblr_dashboard_bugfix.user.js
ソースコード: fix 2 bugs on Tumblr Dashboard. — Gist
更新の概要
- 「自分のポストでReblogボタンを「Alt + 左クリック」するとエラーになってReblogできない」問題が修正されたので該当のコードを削除
- _process_auto_paginator_response関数の処理の変化に対応
- 「http://www.tumblr.com/show/photos/」のような末尾にスラッシュが付くshowページで動作していなかったのを修正
1について補足すると、以前はReblogに必要な情報が足りていなかったのをこちらで修正して追加していたんだけど、いつの間にか情報が揃うようになってたみたい。しかし、fast_reblogの仕様変更で、メインアカウントにおいて、自分のオリジナルのポストをReblogする事はできなくなっている。自分がReblogしたポストはReblogする事ができるんだけど、fast_reblogではない従来のReblogページを経由したReblogの場合はこれもできないので、むしろ自分のポスト(オリジナル、Reblogしたもの)を自分宛にReblogできてしまう事(あるいは、サブアカウント宛にReblogされない事)が新たな不具合になっているっぽい。
「自分のオリジナルのポスト」とは以下の様なポストの事。このポストはfast_reblogでもReblogページからでも自分宛にReblogする事はできない。

blogページ

dashboardページ
「自分がReblogしたポスト」とは以下の様なポストの事。このポストはfast_reblogだと自分宛にReblogする事ができるが、Reblogページからだとできない。

blogページ

dashboardページ
「fast_reblogで自分がReblogしたポストをReblogできる事」を防止する事はある程度できると思うけど(逆に、「fast_reblogで自分のポストがサブアカウント宛にReblogされない事」を修正するのは難しい)、今のところReblogできていても特に不便ではないし大きな問題は感じないので、Tumblr側が修正してくれるのを待つ事にする。
Tumblr Tornado (タンブラー トルネード)
複数の Tumblelog へ振り分けながら Reblog できるユーザスクリプトです → [Install]
・ Chromium 18.0
・ Firefox 11.0
・ Opera 11.62 (CSS アニメーションは動かない)で動作確認をしています。
振り分け方は「チャンネルダイアログ」というのを経由してリアクションを行います。
チャンネルダイアログの出し方は通常の動作の直前に g を入力するだけです。
他にも隠し機能はあるのですが、インストールすると右側にヘルプが表示されるので [もっと読む] をクリックすると隠し機能の説明が表示されます。
Have a nice Tumblr life.
[参考・参照明示] Tumblr Tornado 1.0.4 を公開
Tumblr Tornado を公開しました。
設計のベースは Tumblr Life を元にしています(元々は Tumblr Life を書き換えて機能を増やしていました。)
以前 Tumblr Life にチャンネル(Tumblelog)を振り分ける機能を取り付けてみたのですが機能が上手く馴染まなかったので、試しに一から書いてみたところ想像していたよりも使いやすかったため Tumblr Tornado を公開しました。
ショートカット部分もそうですが、特にオートロード時に URL を変更する機能はほぼ焼き増しです。
その他にも fast_reblog については Reblogable を、cleanPost については 無限Tumblr を参考にして機能を組み込みました。
Tumblr Dashboard bugfix 0.0.2 - fast_reblogの仕様変更に対応
TumblrのDashboardに存在している不具合を修正するUser Script、Tumblr Dashboard bugfixを0.0.2に更新。
インストール: https://raw.github.com/gist/2627067/tumblr_dashboard_bugfix.user.js
ソースコード: fix 3 bugs on Tumblr Dashboard. — Gist
Tumblr Dashboard bugfixの公開から一週間も経たないうちに、fast_reblogの仕様が変更されたので、「自分のポストでReblogボタンを「Alt + 左クリック」するとエラーになってReblogできない」という不具合に関する修正をこの変更に対応させた。
今回のfast_reblogの仕様変更により、これまでのfast_reblogのURLにアクセスすればすぐにReblogできるというものから、http://www.tumblr.com/fast_reblog にポストのID、Reblog Key、Reblogableが0.0.2まで利用していたform_keyを送信しなければReblogできないというものになっている。つまり、ReblogページのURLとなるhttp://www.tumblr.com/reblog/Post_ID/Reblog_Key にform_keyなどを送信してReblogするというfast_reblog以前のReblog方式と同じようなものになったという事になる。
以下は仕様変更が反映されているReblogボタンを「Alt + 左クリック」でReblogできる実装の画像。http://assets.tumblr.com/javascript/application_src.js より。

Reblogable 0.0.4 - Tumblr側でReblogコマンドが実装された場合に対処
DashboardやLikeのページでポストをReblogできるキーボードショートカットを追加するシンプルなUser Script、Reblogableを0.0.4へ更新。
インストール
https://raw.github.com/gist/1609210/reblogable.user.js
ソースコード
Add shortcut key T for Reblog on Tumblr Dashboard. — Gist
更新の概要
- Tumblr側でReblogのキーボードショートカットが追加された時に、Reblogableのキーボードショートカットと重複した場合、二重投稿になる可能性を現状より小さくするように
- Dashboard上のReblogボタンで「Alt(MacではOption) + 左クリック」するとfast_reblogできるようになっていた(taizoooさんより。 Missing eの記事は4/20~21投稿でtaizoooさんによると4/20には情報が出ていたようだけど、staffブログではまだ発表されていない?)ので、Reblogボタンに「Alt + 左クリック」の入力イベントを送ってReblogするように変更
- 2により、Reblogableのエラー処理を削除
- DashboardやLikeのページの最後のページで、底の方にあるポストをReblogできるようにページ下部を広げておくスタイルの修正を削除
- 「Shift + T」などと入力した時にReblogしてしまっていたので、入力チェックをより厳しく
補足
1の変更について。Tumblr側でReblogのキーボードショートカットが追加された時に備えて、実際にTumblrではJ、K、Lのキーボードショートカットをどのように実装しているのかを改めて調べてみた。
以下の画像は、TumblrのDashboardで読み込まれるprototype_effects_application_tumblelog.js?804という、prototype.js(1.7)とscript.aculo.us(1.9.0)のeffects.jsの2つのライブラリに加えて、application.js、tumblelog.jsを連結したJavaScriptファイルの中の、application.jsにおけるキーボードショートカットの実装部分(12/05/08追記: 圧縮されていないapplication.jsはこちら。saitamanodorujiさんより)。
DashboardでChrome 18のデベロッパーツールを開き、Scriptsタブで上にある停止ボタンを押すとapplication.jsが展開されたものが表示される(参考)。表示されない事もあるみたい。表示されたら、押した停止ボタンは再生ボタンに変わっているのでそれを押し、下にある停止ボタンの隣にある「Pretty print」ボタンを押すと、画像のようにある程度綺麗に整えられてコードが表示される。
743行目の、prototype.jsにおけるaddEventListenerであるEvent.observeは、第1引数の対象となる要素がdocumentで、第2引数のイベントタイプはkeydownとなっている。Likeと同じようにReblogのキーボードショートカットがstart_observing_key_commands内に実装されるなら(もちろんコードが全く新しいものになる可能性もあるけど)、Reblogの重複を防ぐにはここを何とかすれば良い。そこで、イベントリスナの優先順位を利用してイベントの伝播を止めれば、キーボードショートカットが重複した場合にTumblr側が無効化され(Event.observeの第3引数に指定された関数が呼び出されない)、Reblogable側のみがReblogするようにできるのではと考えた。本来ならばReblogable側を止めてTumblr側が優先されるようにするべきだと思うけど、それを実現する簡単な方法が自分にはわからなかったので、そちらの方法を採ることにした。
「イベントリスナの優先順位を利用してイベントの伝播を止める」には、この状況では幾つか選択肢があるけど、自分の場合は、Reblogableで使用しているaddEventListenerが、対象とする要素がwindow、第1引数に指定したイベントタイプがkeydownだったので、第3引数の「useCapture」を「true」にし、第2引数に指定したコールバック関数内で適当なタイミングでevent.stopPropagationを呼び出して実現する事にした。
以上のようにして、1の変更で、Reblogが重複する可能性をより低くするようにできたと思うけど、完全な対策ではないし何らかの副作用もあるかもしれないので、問題があれば教えて頂けるとありがたい。
2、3の変更により、Tumblr側がfast_reblogを利用して実装した機能を利用する形になり、Reblogableはさらにシンプルな実装になった。Tumblr側の処理は以下のようになっている(参考)。記述されているファイルはstart_observing_key_commandsと同じ。
Tumblr側の実装ではエラーハンドリングもしてくれている。Reblogableが0.0.3でやっていたように、Reblogできなかった場合はalertでエラーを知らせるようになっている。また、通信中と成功でReblogボタンが変わるようになっている。但し、自分のポストでReblogボタンを「Alt + 左クリック」するとエラーになってReblogできないという不具合がある模様。これは、自分のポストのReblogボタンの要素に「data-fast-reblog-url」属性が無い為に起こっているようだ。
4の変更は、Tumblr Lifeの実装をよく見てみたところ、Dashboardに存在している不具合が1つだけではない事がわかり(今更すぎる…)、さらに先述の「Alt + 左クリック」のfast_reblogにも問題がある事がわかったので、それら不具合を修正するだけのTumblr Dashboard bugfixというUser Scriptを別に作り、Reblogableのスタイル修正は削除する事にした。Tumblr Dashboard bugfixについては別ポストにて紹介。現在把握できている不具合を以下にまとめておく。
- JキーによりDashboardやLikeのページの最後のページで底の方にあるポストに移動できない
- Preferencesの「Enable endless scrolling」を有効にしていたり、AutoPagerizeやAutoPatchWorkを利用している時、showページで読み込まれる次のページが正しくない
- 自分のポストでReblogボタンを「Alt + 左クリック」するとエラーになってReblogできない
上記の不具合は、複数のユーザーをフォローしていて、Dashboardしか見ないというユーザーにはあまり大きな問題にならないかもしれない。とはいえ、将来的にReblogableが不要になったとしても、Dashboardの不具合は残るかもしれないので、無駄にはならないと思う。
そもそも、Dashboardの底は意識的に見ようとしなければほぼ見ることは無いんじゃないかと思うので、4の変更のデザイン修正の削除だけを見るとDashboardの利用に対して与える影響は殆ど無いはず。それでも困る場合にはTumblr Dashboard bugfixをインストールすると良いと思う。
5の変更は単純なミスの修正。こうした不具合はまだ存在してしまっているかもしれない。
0.0.1から処理工程が結構変わっているので、0.0.4における処理工程を以下にまとめておく。
- ポストがなければ処理を終える
- どのキーを入力したらReblogするのかを決める
- キーボードの入力を監視
- Tキーが入力されて、入力された場所がページ全体であるかを確認
- 確認がとれたらJ、Kキーで選択されているポストを特定する
- 特定したポストからReblogボタンを取得
- 取得できたらイベントの伝播を止める
- 次のポストを特定する
- 次のポストがあればそのポストに移動する
- 「Alt + 左クリック」の入力イベントを作成し、6のReblogボタンへイベントをdispatchする
既知の問題
- ポストの投稿ページで「Send to Twitter」を無効にしているにもかかわらず、ReblogしたポストのリンクがTwitterに流れてしまう
- fast_reblogによってReblogする事が原因らしい。http://www.tumblr.com/blog/ユーザ名/settings の「Twitter」で「Share posts on your Twitter」を無効にするか、Twitter連携自体をやめると良いかもしれない。この方法による解決が適切でなければ、fast_reblogから従来方式へ戻す事も検討する。
今後の予定(Tumblr側で実装されるまで)
- event.stopPropagationを、DOM Level 3 Eventsのevent.stopImmediatePropagationに変える(Operaの対応待ち)
「Alt + 左クリック」イベントの発行と、次のポストへの移動をDOM4のEvent Constructorによって行うようにする(Safariの更新待ち、WebKit r112531では使用可能)(12/10/14追記: 残念ながらUser ScriptではEvent Constructorによって作成され変更を加えたイベントが要素に正しく伝播しない環境がある事がわかったので、取り止めにする事にした)
TumblrのDashboardに存在している不具合を修正するUser Script「Tumblr Dashboard bugfix」をつくってみた
Reblogableを開発している際に発見した、TumblrのDashboardに存在している不具合を修正するUser Scriptをつくってみた。
インストールはこちら。
https://raw.github.com/gist/2627067/tumblr_dashboard_bugfix.user.js
ソースコードはこちら。
fix 3 bugs on Tumblr Dashboard. — Gist
Tumblr Lifeにおける実装を大いに参考にさせて頂いた。修正対象は以下。
- JキーによりDashboardやLikeのページの最後のページで底の方にあるポストに移動できない
- Preferencesの「Enable endless scrolling」を有効にしていたり、AutoPagerizeやAutoPatchWorkを利用している時、showページで読み込まれる次のページが正しくない
- 自分のポストでReblogボタンを「Alt + 左クリック」するとエラーになってReblogできない
動作確認はWindows 7 Home Premium SP1 64bit上のFirefox 12.0(Scriptish 0.1.7)、Chrome 18.0.1025.168、Safari 5.1.5(NinjaKit 0.9.1)、Opera 11.62で行った。不具合があれば@syoichiまで。
複数のユーザーをフォローしていて、Dashboardしか見ないというユーザーにはあまり大きな問題にならないかもしれない。
3の修正において、Firefoxで何故かdatasetのsetterがうまく動かなかったのでsetAttributeで代用したけど、これはScriptishの問題なんだろうか。Firebug 1.10.0a7やWeb コンソールで確認したらちゃんと動いてるんだけどなー。
更新
Reblogable 0.0.3 - fast_reblogによってReblogするように変更
DashboardやLikeのページでポストをReblogできるキーボードショートカットを追加するシンプルなUser Script、Reblogableを0.0.3へ更新。
インストールはこちら。
https://raw.github.com/gist/1609210/reblogable.user.js
ソースコードはこちら。
Add shortcut key T for Reblog on Tumblr Dashboard. — Gist
更新の要点は以下。
- 昨日ぐらいにTumblr側で実装されたfast_reblogによってReblogするように
- 1の変更によりReblogに成功したかどうかが簡単にわかるようになったので、失敗時はエラーを表示する機能を追加
- 1の変更によりform_keyの取得が不要に
- Tumblr側で自分のポストにもReblogボタンが表示されるようになったので、「http://www.tumblr.com/blog/syoichi 」のようなページでも動作するように
- キーボードショートカットのカスタマイズが少しだけしやすくなったかも
上記に関して幾つか補足を。
1の変更で、Reblogableはよりシンプルな実装になったと思う。ただ、fast_reblogはまだ実装されたばかりのようなので、すぐにまた劇的な変更が来るかもしれない。その場合は0.0.2の処理へ差し戻しになりそう。
2の変更も大きい。これまではReblogに成功したかどうかを確かめるには、どうしてもReblogする以外のTumblr側との通信が必要だったのでReblogableでは対応していなかった。しかし、1の変更でReblog以外の通信をせずにシンプルな処理で確かめられるようになったので、今回実装してみた。Reblog成功時は何も表示されず、失敗時のみエラーを示すalertが出るようになっている。エラーは、主にReblogする間隔が早かったり、空のTextポストをReblogしようとしたり、Reblog Limitに引っかかった場合に発生する。その時、fast_reblogのURLをリクエストした時のレスポンスが「OK」ではなく「Internal Server Error.」となるみたい。
5の変更は、これまでReblogableにおけるキーボードショートカットのカスタマイズには、ソースコード中の「KEY」にキーコードの指定が必要だったのが、「’t’」のようなキーの文字の指定に変えた事。「’T’」のような大文字でも問題ない。
それにしても、fast_reblogの実装は、Tumblr側でキーボードショートカットによるReblogに対応する時が近い事を示しているんだろうか。だとしたら、Reblogableの役目ももうすぐ終わりなのかも…。
Reblogable 0.0.2
DashboardやLikeのページでポストをReblogできるキーボードショートカットを追加するシンプルなUser Script、Reblogableを0.0.2へ更新。
インストールはこちら。
https://raw.github.com/gist/1609210/reblogable.user.js
ソースコードはこちら。
Add shortcut key T for Reblog on Tumblr Dashboard. — Gist
更新の要点は以下。
- 「http://www.tumblr.com/show/photos 」なページや、タグのページでも動作するように
- 「redirect_to」に「data:text/plain,」ではなく「/favicon.ico」を設定
- 検索やreply、Answerへ文字を入力する際に、ポストを誤爆しないように
上記に関して幾つか補足を。
2では、Reblog後のリダイレクトでFaviconへアクセスするように設定する事で、0.0.1で発生していたXMLHttpRequestProgressEvent.typeがerrorになる問題を回避するようにした。また、FaviconはTumblrのページへアクセスしていれば、ブラウザ側でキャッシュされやすいのでリダイレクトによる不必要な通信もある程度抑える事ができると思う。

Chrome(デベロッパーツール)

Firefox(Firebug)
ただし、Operaではキャッシュがちゃんと活用されているかは確認できなかったけど…。
3では、Dashboardなどに存在する入力フォームでTキーを入力した時、ポストを誤ってReblogしてしまう恐れがあったので、Tキーが入力されたか確認する時に、入力フォームで入力しているのかもあわせて確認するようにした。
DashboardやLikeのページでポストをReblogできるキーボードショートカットを追加するシンプルなUser Script「Reblogable」をつくってみた
先日、DashboardやLikeのページで、これまでのJ、Kキーによるポスト間移動に加えて、LキーからLikeできるようになったので、TキーでReblogできるだけのシンプルなUser Scriptをつくってみた。いずれは公式でも実装されるかもしれないので、それまでの繋ぎになれば。
インストールはこちら。
https://raw.github.com/gist/1609210/reblogable.user.js
ソースコードはこちら。
Add shortcut key T for Reblog on Tumblr Dashboard. — Gist
RキーやHキーでReblogしたいという人はコードを参考に書き換えると良いかも。コードはメタデータをあわせても90行に満たないほど小さいので、似たようなUser Scriptを自作したい人の参考になると良い。
動作確認はWindows 7 Home Premium SP1 64bit上のFirefox 9.0.1(Scriptish 0.1.6)、Chrome 16.0.912.75、Safari 5.1.2(NinjaKit 0.8.5)、Opera 11.60で行った。不具合があれば@syoichiまで。
Tumblr LifeやCursedTumblrなどの多機能なUser Scriptはいくつかあるみたいだけど、Reblogできるだけの単機能なUser ScriptはReblogCommandやTumblr Dashboard Quick ReblogのようにMinibufferに依存するものぐらいしか見当たらなかったのと、DashboardやLikeのページでReblogするにはどのような処理をすれば良いのかを知りたかったというのもつくってみた理由。
J、K、T、Lがあれば良いという人なら、Preferencesの「Enable endless scrolling」を有効にしていれば、Reblogableをインストールするだけで高速にReblog/Likeできる環境を構築できると思う。
Reblogableの主な処理工程は以下。
- 初めにどのキーを入力したらReblogするのかを決める
- Reblogに必要なデータを予め取得
- DashboardやLikeのページの最後のページで底の方にあるポストをReblogできるようにページ下部を広げておく
- 準備ができたらキーボードの入力を監視
- Tキーが入力されたら J、Kキーで選択されているポストを特定する
- 特定したポストからReblogのページのリンクを取得
- リンクがあれば次のポストを特定する
- 次のポストがあればそのポストに移動する
- ここから、6で取得したリンクからURLを取り出し、Reblogする為の通信を開始する
- Reblogのページにおける入力フォームのデータを送信するやり方を再現して、9で取り出したURLに向けて、2で取得したReblogに必要なデータを送信する
上記の処理に関して幾つか補足を。
ReblogのページからReblogした時、以下のデータが送信されているみたい。

この内、Reblogするのに最低限送信しなければいけないデータが、ポスト(この場合ではReblogしたポスト)を公開するか下書きにするかなどの状態を示す「post[state]」と「form_key」らしい。
Reblogableでは「post[state]」と「form_key」に加えて「redirect_to」も送信している。これはReblogした後に、リダイレクトによりDashboardのページを取得してしまうのを防ぐ為。

防いでおかないとReblogする度に不必要な通信が発生してしまう(ChromeではXMLHttpRequest.responseTextに取得してしまったDashboardのページのソースが入っていた)。リダイレクトを無効にする事はできないみたいだったので、代わりに空のテキストを示す「data:text/plain,」というData URIを指定してみた。

エラーが発生している(XMLHttpRequestProgressEvent.typeがerror)ので良くないやり方ではあるが、これで少なくとも不必要な通信の発生は回避できた。
ちなみに、Preferencesの「Edit posts using」で「rich text editor」を選択している時、空のTextポストなどを作れてしまうのだけど、このポストをReblogするにはさらに「is_rich_text[two]=1」というデータも必要になるようだった。しかし、「Edit posts using」でその他のエディターを選択していて、空のTextポストなどをReblogしようとすると「Post cannot be empty.」と表示される。なので、ここはTumblrの挙動に合わせて、「is_rich_text[two]=1」を送信せず、空のTextポストなどはReblogしないようにしてある。
また、10の後にちゃんとReblogされたか確認する処理をしていないのは、できる限りTumblr側と通信する回数を減らす為とLikeの挙動に合わせた為。LikeはLikeできていない時も赤くなったままなので、Likeが成功したかどうかはその時点でのDashboardではわからなくなっている。
逆に、8ではLikeの挙動とは異なる処理をしている。Reblogした後にすぐ次のポストに移動するのは、Tumblr LifeやCursedTumblrなどの挙動とも異なるので良くないかもしれないが、これはTキーを押した事をわかるようにし、また、Reblogした後にすぐ次のポストもReblogできるようにしてみたかったから。これだと、良いポストが連続で来た時に「TTT」とJキーを押さずに連打できる。
5の部分は、かなりおおまかな当たりを付けてポストを特定しているので、User ScriptやUser CSSでDashboardのデザインを改変していたりすると、ここで何らかの不具合が発生するかもしれない。デザインの改変をせずにJ、Kキーで移動していればたぶん問題ないと思う…。
更新