Twitterほぞん

Twitterは、Firefoxで見ている。
XBLとuserContent.cssとGreasemonkey - 素人がプログラミングを勉強していたブログ
webで見ると改行が反映されないので、これを使って書き換えている。
innerHTMLのeventに関する罠 - Y's note
書き換えるときには、これに注意。
さて、せっかくツイートを1つずつ改行がないか見て処理しているのだから、
ついでにツイートを保存してみようと思った。
JavaScriptからローカルファイルを作成する方法まとめ - あらびき日記
ファイルに書き込む方法はあったみたいだが、どうも使えないっぽい。
Firefoxでは、危険だから書き込ませない方針のようなので、どうやら望み薄。
userChrome.jsからであれば、アドオンと同等の権限があって、
書き込みでも何でもできるのだが、CSSなので現状はTwitter側と同じ権限しかない。
いっそuserChrome.jsで書くかとも思ったが、新規にコードを書く必要があって面倒。
TLの続きを読み込んだときに起こるイベントも発見できなかった。
あの巨大なDOMノードツリーを辿るのも嫌だ。
JavaScriptからメモリ情報を取得する方法 | Web Scratch
で、このページを見つけた。
つまり、userChrome.jsでgBrowserのloadイベントを捕捉し、Twitterのcontentへ
ファイルに書き込む関数を渡してやればいい。
ただ、これでも問題はあり、CSSはDOMContentLoadedよりも早く適用されてしまう。
CSSが適用される前に、書き込み用の関数を渡す必要がある。
これも、何か方法はあるのかもしれないが、わからなかった。
そこで、loadのタイミングでTwitterのbody要素にclass名を追加指定することにした。
あとは、保存範囲をちょこちょこ修正して、各ケースで保存できているか確認。
重くなるのは嫌なので、最低限の処理しかしていない。
整形は別途C++ででも書けばいいだろう。
1日3MBくらい溜まる。ちょっと保存範囲が広いというのもあるけど。