Autopagerize+DM Mailerでログを整理するためのBookmarklet

TwitterのDMをサーバーに保存し、アイコンつきで見やすく表示してくれるのがhttps://dmmailer.org/です。
せっかくなのでローカルにも保存したいと思い、その一環として先日AutoPagerizeのDM Mailer用の定義を登録しました。Autopagerizeを入れたブラウザでDM Mailerの画面をスクロールすれば全てのログを一枚のページに表示する事ができます。

名前欄のリンクをクリックするだけで会話が抽出されるそうです(yakumo_x様、ご指摘ありがとうございます)。あらやだ完璧。つまりこのスクリプトはゴミ

しかしながら、DM Mailerでは相手ユーザー毎の表示形式がありません。そこで、特定のユーザーとの会話だけを抽出するためのBookmarkletを作成しました。

javascript:(function(){var%20twName=prompt("%E7%9B%B8%E6%89%8B%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E5%90%8D%EF%BC%9A","");if(twName){var%20mc=document.getElementById("main_contents");var%20tabs=mc.getElementsByTagName("table");for(i=0;i<tabs.length;i++){if(tabs[i].getAttribute("class")=="list"){var%20trs=tabs[i].getElementsByTagName("tr");var%20del=false;var%20j=0;while(j<trs.length){if(trs[j].childNodes.length>5){var%20div=trs[j].getElementsByTagName("div");var%20name="";for(k=0;k<div.length;k++){var%20c=div[k].getAttribute("class");if(c=="r_name_ribbon"||c=="s_name_ribbon"){name=div[k].getElementsByTagName("a")[0].childNodes[0].nodeValue;}}if(name==twName){del=false;j++;}else%20if(name==""){if(del){trs[j].parentNode.removeChild(trs[j]);}else{j++;}}else{trs[j].parentNode.removeChild(trs[j]);del=true;}}else{if(del){trs[j].parentNode.removeChild(trs[j]);}else{j++;}}}}}var%20l=0;var%20hrs=mc.getElementsByTagName("hr");while(l<hrs.length){if(hrs[l].getAttribute("class")=="autopagerize_page_separator"){hrs[l].parentNode.removeChild(hrs[l]);}else{l++;}}l=0;var%20ps=mc.getElementsByTagName("p");while(l<ps.length){if(ps[l].getAttribute("class")=="autopagerize_page_info"){ps[l].parentNode.removeChild(ps[l]);}else{l++;}}var%20rm=mc.getElementsByTagName("a");l=0;while(l<rm.length){c=rm[l].getAttribute("class");if(c=="delete"||c=="reDM"){rm[l].parentNode.removeChild(rm[l]);}else{l++;}}rm=mc.getElementsByTagName("div");l=0;while(l<rm.length){if(rm[l].getAttribute("class")=="star"){rm[l].parentNode.removeChild(rm[l]);}else{l++;}}}})();

Mac OS X Lion上のSafariGoogle Chromeにおいて動作することを確認しています。Autopagerizeはともにブラウザ拡張機能版です。

上のスクリプトをコピーしてブックマークに登録してください。直接登録できない場合はこのページを登録した後、ブックマークを編集して下さい。
使い方ですが、まず欲しい範囲の会話ログをAutopagerizeの機能で全部表示させます。その後登録したブックマークを起動すると入力ダイアログが出ますので、会話の相手の表示名(TwitterIDではなく、DM Mailerの画面上での表示名)をそのまま入力(コピーペーストが良いでしょう)して[OK]を押してください。入力した相手との会話だけが抽出されて残ります。あとはブラウザの機能を使ってhtmlやmhtとしてローカルに保存してください。

いずれ入力式でなくユーザー名選択式に改良するかもしれません。