Shogo's Blog

Oct 13, 2012 - 1 minute read - Comments - togetter bookmarklet

半自動トゥギャりスクリプトを書いてみた

togetterでたくさんツイートをまとめたい

Twitterは手軽に情報収集ができ他人とのコミニュケーションができる楽しいSNSですが、 古いツイートはしばらく経つとタイムラインや検索結果からはたどれなくなってしまいます。 過去のイベントに関するつぶやきを後から見たい、といった場合に不便です。

そこで登場するのがtogetterというサービス。 Twitterのツイートを引用して、「まとめ」を作ることができます。 Twitter上での議論やイベントに対するみんなの反応がわかりやすく見れるので便利です。 僕もJO_RI_botのツイートをまとめたりといろいろとお世話になってます。

簡単なまとめを作るのには非常に便利なtogetter。 しかし、ツイート数が多くなると少し大変です。 例えば何かのイベントのハッシュタグのついたツイートをまとめたい場合、 検索に現れるツイートの数には上限があるので、 漏れ無くツイートを集めるにはイベントの最中にまとめを作る必要があります。 togetterには自動更新機能がないので、数分毎に「検索」ボタンを押さなければなりません。 これは面倒だ・・・

ブックマークレットを書いてみたよ

面倒なので、自動的に検索ボタンを押すブックマークレットを書いてみた。

** ユーザスクリプトで書き直してみたよ! **

上のリンクをブックマークに登録しておき、togetterのまとめ作成ページを開くと、 検索ボックスのしたにテキストボックスとボタンが追加されます。 テキストボックスに検索ボタンを押す間隔(秒単位)を入れ、開始ボタンを押すと、 自動的に検索・移動・重複ツイートの削除・ソートをしてくれます。

スクリプト

元のスクリプトをgistにあげておきます。

{% gist 3883841 %}

ブラウザ拡張のほうが便利だろうけどブックマークレットとして実装しているのは、togetterのスクリプトやjQueryを自前のスクリプトから呼びたかったから。 ブラウザ拡張でも実現する方法はあるんだろうけど、調べるの面倒だからやってない。 DOMの操作だけでもなんとかなりそうだから、余力があれば書きなおすかも。

これ作るにあたって、togetterのソース見てたけど、重複削除やソートアルゴリズムがなんだか残念な感じ。 ツイート数に比例した回数だけjQueryのセレクタを呼び出している。 jQueryのセレクタって結構重い処理だし、オーダーが O( n^2 ) になるわけで・・・。 単なるソートにしては重すぎだろ、とは思ってはいたんだ。まさかこんな中身だとは。