« [iPod touch]iPod touch用新型Dock Connector内蔵型マイク | Main | [iPod touch]iPod touchのlaunchdでコマンド/スクリプトの定期実行 »

2008.04.07

[iPod touch]safaribm2stdoutとwgetでMobile Safariのブックマークを巡回してダウンロード

2008.04.10追記:元マカーさんがsafaribm2stdoutに関するエントリを上げてくださってます。「iPod touchでローカルWeb閲覧&巡回環境を構築してみる」、「iPod touchでローカルWeb閲覧&巡回環境を構築してみる(その2)

野良リポジトリにsafaribm2stdoutというコマンドラインアプリを登録しておきました。

「Network>safaribm2stdout (1.1.3)」です。

Mobile SafariのBookmarkの、「crawling」というFolderに登録されたBookmarkのURLを標準出力(stdout)に出力するものです。

そんなことができて何がうれしいのか?
DownloaderであるWgetと併用すると幸せになれます。

#!/bin/sh
cd /var/mobile/Media/Downloads
/var/root/bin/safaribm2stdout | wget -i - -N -k -r -l 1 -np

こんな感じのシェルスクリプトをShell Script ApplicationなどにしてHome Screen Iconとして登録しておきます。

巡回したいページをMobile Safariの「crawling」というBookmarkのFolderに登録します。
「crawling」なんてFolderは無い? 最初は「crawling」などというFolderは存在しませんので、自分で作ります。(最初はRで後がLです。スペルを間違えると動かないので注意)



作ったShell Script Applicationを起動すればダウンロードが完了します。

lighttpdやiSpit、ApacheなどのLocal Web Serverを起動しておき、/var/mobile/Media/DownloadsをMobile Safariで見にいけばOK!
ダウンロード先のFolderをBookmarkしておくと楽だと思います。

Wgetに付いているoptionは以下の意味となります。

-Nタイムスタンプを見てダウンロードをするかどうか判断
-kリンクを絶対リンクから相対リンクへ書き換え
-rリンク先を再帰的に取得
-l 1再帰的に取得するリンクのホップ数を1に設定
-np上の階層のファイルをダウンロードしない

ページからリンクされた画像なども一括ダウンロードされますので、オフラインでも画像まで見られるようになります。(そのはずですが、なんかダメですね)
Wgetにはたくさんのオプションがありますので、自分の使用形態に合わせて調整してみるといいかと思います。

海上さんのOS Xハッキングでタイムリーに「いま敢えて「Wget」をリスペクト」という記事が。Wgetの素晴らしさを知らない人は読んでみてください。

http://tech.bayashi.net/svr/doc/wget.html

http://members.at.infoseek.co.jp/futora/wget153/option.html

cronで定期巡回を組むPureなCydia環境ならこちらも)のも一興かと思います。

野良リポジトリには、safarihist2stdoutというコマンドラインアプリも登録してあります。
同様にして、

#!/bin/sh
cd /var/mobile/Media/Downloads
/var/root/bin/safarihist2stdout | head -1 | wget -i - -N -k -r -l 1 -np

といったような処理内容のシェルスクリプトアプリケーションを用意すれば、Mobile Safariで最後に訪れたページをリンクされた画像等ごとダウンロードできます。

Notes/注意事項

iPod touch/iPhone用にポートされたWgetには、名前解決できるものと、できないものがあります。
野良リポジトリにある「Wget (name resolvable)」とCydia PackagerからインストールできるWgetは名前解決できます。

Erica's Ported Utilitiesに収録されているWgetは名前解決できないと思います。

|

« [iPod touch]iPod touch用新型Dock Connector内蔵型マイク | Main | [iPod touch]iPod touchのlaunchdでコマンド/スクリプトの定期実行 »