2007年9月23日日曜日

オフラインブラウズ

前からやるつもりだったuGNoteのオフラインブラウズに対応に着手しました。
結構難航してます
ノートの本文をファイルに保存するところはXMLシリアライザにクラスごと投げて簡単にできましたが、本文からリンクされている画像をローカルファイルに保存するのに手間取ってます。
.NETのwebブラウザコンポーネントで表示するだけなら、コンポーネント任せで画像の読込からキャッシュ処理まで全部やってくれます。でもノートブックから一括してメモをwebからダウンロードするのでwebブラウザコンポーネントに頼るわけにはいかないのです
だから画像のダウンロードから、リンクの張り直しまで自前で用意する必要があるのかなぁと

やらなきゃいけない作業は
  • HTMLの構文解析して画像のリンクを見つける
  • リンク画像をwebからダウンロードする
  • ダウンロードした画像をファイルに保存する
  • 保存したファイルにHTMLのリンクを張りなおす
  • 過去に保存したけど今は必要が無くなったファイルを削除する
と結構たいへんそう....まぁ大変なのは予想してましたけど

HTMLの構文解析は既存のHTMLパーサがCompactFrameWorkにあれば楽チンだったけど、見つけることが出来ませんでした。自分で書かなきゃいけないけどナントカなりそう

リンク画像のダウンロードは HttpWebRequest を使ってとりあえず試験的には出来ました。実用的には非同期通信するように書き換える必要がありそう

リンクの張りなおしは構文解析が出来れば、出来たようなもんだと思う

必要の無い画像ファイルを削除する....考えがまとまりません....

2 件のコメント:

匿名 さんのコメント...

nouseです。
上の記事とかこの記事を読むと簡単にオフラインで読みたいという要望なんてだすものではないと反省しています。
しかし、期待しています。

おとーぽん さんのコメント...

nouseさん
反省なんてとんでもない、要望は大歓迎です。要望をもらえたりすると、なんと言うかヤルゾーって気になります。

オフライン機能は付けてみて良さを実感しました。パケット代は気にならないし、ネットワーク不調な時でも記事が読めますし