はてなハイク - ミルクモード

最近ハイクで言ってた、「はてなハイク ミルクモード」について誰も興味なさそうだけど詳しく書いてみる。


事の発端は、tukihatuがオフィス転勤になったことから。
オフィスでハイクにつなごうとすると”見せられないよ!”と出てきてしまうのだ…
まあ「それでも見る」ボタンがついてるから、絶対に見られないわけではないんだけどね。でもネットワーク監視にサボってるの見つけてください!と宣戦布告してることになるのでちょっと…
と、いうことでなんとかハイクを見ることは出来ないかー!というわがままな発想により、専用ブラウザ作って覗こう!ということになったわけですよ。うん、「技術の無駄づかい」なんだ。すまない。


まずは調査開始。いろいろアクセスして情報を集める。
http://d.hatena.ne.jp/はダメだけど、http://www.hatena.ne.jp/はOK。
・ダイアリーはダメなのに、ダイアリーRSSは普通に見れる。
・全てのブラウザで同じように見える。
・指定されたプロキシを指定しないとネット閲覧できず。
・xammpインストールOK。
↑↑このことから
・社内ネットワークを制限している。
・URLアドレスのブラックリスト+htmlなどの拡張子でネット制限している。
・プロキシを通して見ているので、普通のサイトでも結局全て情シスに筒抜け。(まあ全社員のブラウザ監視とかしてたらどんな暇人だよ、って感じだけど)
ということがわかった。
重要なのはこれ。
・URLアドレスのブラックリスト+htmlなどの拡張子でネット制限している。
だからRSSとかxml形式ならOKらしい。なんてぬるいリストなんだ…^^;


xmlがOKならハイクAPIが使える!早速localhostからAPIを呼び出し。
…呼び出しできない><
どうやらlocalhostにはプロキシを通してないから開けないようで…
かといってプロキシ通すとイントラにつながるのでlocalhostは使えない。
うわーfopenやActiveXObjectが使えないよー!
唯一使えるのは…iframeでxmlを直接表示するぐらいです。直接表示ならプロキシ通っているので…
ひとまずタイムラインを呼び出して、投稿フォームを付けて形にする。

これで一応書き込めるようになりました。この間1時間。


時は流れ二日後ぐらい。
そろそろちゃんとしたものにしよう。と思ってさわり始める。
しかし、やっぱりiframe内のデザインを親フレームから干渉したり、iframe内のデータを吸い出したりは出来なかった。俗にいう権限問題ってやつのせい。(URLの違う別サイトを改変したりは基本出来ない)
FOXのユーザースタイル機能を使えば、まあなんとかなるかなーと思ったが、それだとxmlソースコードは結局いじれないので詰まってしまう。
これを解消するには、xmlをローカルにダウンロードすること。
そうすればfopneも使えるし、ソースの改変なども思うがまま、である。
…で、どうやってダウンロードすんの?
・名前を付けて保存
いや…それはちょっと…
・URLを時間で自動的にダウンロードするような別ソフトを使う
うぐぐ…更新ボタンを押すだけで全ての作業をしてほしいよ!


えー…はい。というわけでもう無茶苦茶やりました。
Operaさん、出番ですよー。
なんとOperaMIMEタイプによってどうやって開くか処理を細かく決められるのだ!
だからxml形式のデータをローカルにダウンロードするよう設定して…でけた!
元のファイルがあると保存するとき(1)とか変な名前がつくので、xml保存する前にunlinkでファイル削除機能もつくる。
あとは読み込んだXMLを装飾!
動き的にはこうした。なんという無茶。
・opendirとunlinkでxmlファイルを全部消す
・iframeでタイムラインとかhotとかを読み込み、operaの力で自動保存
・保存したファイルをjsで読み込み
・一部画像タグなどを盛り込んで、タグの順番変えてinnerHTMLで表示
・表示したデータをinnerHTMLで再習得
・imgタグを捜索して、imagewidthなどを監視。大きすぎる画像は縮めて表示するように
・もっかいinnerHTMLで表示



最終的にこうなりました。
あーたのしかったー。