2014年4月14日月曜日

裏サンデーの画像をダウンロードするツール

2014/06/02 config.xmlの例を現時点で公開されている漫画の情報にあわせて更新しました。 ツールのアーカイブの中身は変更してません。 使う方はconfig.xmlの例を元に適宜設定ファイルを書き換えてください。

2014/04/24 ちょっと修正。 バージョン管理するほどの物ではないのでバージョン番号とか付けてません。 ツールの中身は変わってます。


裏サンデーってレイアウトとか画像読み込みとかがアレで読みづらいですよね。 画像だけダウンロードして自分で用意したビューアを使って読んだ方がいい。 というわけで、ダウンロード用の簡単なツールを作ってみました。

リンク先のファイルメニューからダウンロードしてください。

コレを使うと、漫画をダウンロードしてzip圧縮するところまで自動でやってくれます。 あとは自分で用意したビューアに放り込んで読みましょう。 適当に作ったので多分バグ在中でエラー処理も手抜きですが、ダウンロードしかできないので誤動作しても大変なことにはならないでしょう。 当然ですが、裏サンデーのサーバで変化があったら使えなくなります。

連載中の漫画のみ対応。 連載される漫画が入れ替わったら各自設定ファイルを書き換えましょう。 企画で一時的に掲載される漫画とかは未対応です。 けどまぁURLテンプレート書けば落とせるかな?

エラー処理が手抜きなので、途中までダウンロードして以降ダメだったときとかのメッセージに不備があるかもしれません。 裏サンデーのサーバが混んでいる時間を避け、ダウンロードしたら早めに読んで中身を確認してください。


作った環境はこちら。

  • Windows7 64bit home
  • Visual Studio 2012 Express for Desktop
  • .NET Framework 4.5


使い方を説明します。

まずはアーカイブを適当なところに解凍してください。 2つのファイルが出てきます。

  • 本体 : GetUrasundayImage.exe
  • 設定ファイル : config.xml

インストールは不要です。 (消すときのアンインストールも不要。) そのままGetUrasundayImage.exeを実行してください。 こんなウィンドウが表示されます。

必要な項目を入力をしてダウンロードボタンを押すと、ダウンロードして圧縮ファイルを作ります。

ダウンロードを実行して失敗した場合でもディレクトリは残ります。 手動で削除してください。

入力項目の内容はこんな感じ。

・ダウンロードディレクトリ

初期値はマイドキュメントです。 設定ファイルで初期値の変更をできます。

・対象の漫画

コンボボックスからダウンロードしたい漫画を選択してください。 漫画のラインナップが変更された場合、設定ファイルを書き換えればここも変わります。

・URL template

漫画の画像を指すURLを作るためのテンプレートです。 普段は触る必要はありません。 裏サンデーのサーバでディレクトリ構造が変わったとき、ここを書き換えてください。 書き換えがうまくいったら設定ファイルの方に反映しましょう。 またしばらくは触らなくてよくなります。

URLは裏サンデーの漫画ページを見て当たりをつけます。 それっぽい画像のアドレスをブラウザ付属の開発ツールなどで見つけましょう。 U-2リーグの漫画は開発ツールで見れば全てのURLが確認できます。 レギュラー漫画は開発ツールでは最初の2ページくらいしかURLは分かりません。 でもそれだけ分かればテンプレートは書けるでしょう。

テンプレートの書き方について、{0:000}は話数、{1:000}は通し番号サブ、{2:00}はページ番号に置き換えられます。 コロンの後ろの000は数字の桁数です。 今連載中のどれかが将来すごく長寿の漫画になったら4桁目も必要になるかもしれません。 (そのときまでこのツールが使えるとは思えないけど...) そのときは{0:0000}のように書き換えます。 まぁ、一言で言えばC#のstring.Formatの第1引数です。 分かる人はそれで検索してみてください。

手抜きのため、一時的に書き換えたときのテンプレートは一切記憶されません。 対象の漫画を選び直したら書き換え前に戻ります。 書き換えることになったら、うまくいったときに即設定ファイルに反映してください。

・第何話

裏サンデーのサイトで現在公開されているものしかダウンロードできません。 そちらを見て第何話がダウンロードできるか確認してください。 現状ではレギュラー漫画は最初の数話と、最新の方から2話くらいだけが公開されています。 U-2リーグは全部公開されてます。

・通し番号サブ

例えば、世界鬼の最初の方は第7話が3つに分かれています。 その補助の番号を指定します。

話が分かれていない場合でも数字は必要です。 その場合は0と入れておいてください。 ここの数字は0でも1でもダウンロードする画像は同じです。 圧縮ファイルの名前だけが変化して、1のとき「世界鬼_第0007-1話」のようにサブ番号が付きます。

最新話とか、話が分かれているかどうかなんて分かりませんよね? 普通はサブ番号0で落として、続きがサブ番号2だったら前のファイルを手動でリネームしましょう。 ここに1を入れるのは公開済みの話をまとめてダウンロードするときだけかと。


ツールの入力項目のデフォルト値を変える場合やダウンロードする漫画を入れ替えたいときは設定ファイルを書き換えてください。 C:\Program Files などにファイルを置いたときは書き換えるときに管理者権限が必要なので注意。

設定ファイル config.xml の中身はこんな感じです。

ちなみに、この設定例には「ヒト喰イ」のおまけ?漫画「誰カノ記オク」は載せてません。 なんか、各話のURLが統一されてなかったんですよね。

本題に戻って、設定ファイルを書き換えたときは文字コードutf-8で保存してください。 設定項目はこんな感じです。

・download_dir要素
入力項目のダウンロードディレクトリの初期値です。 必ず1つ必要になります。 値はvalue属性に書いてください。 value属性を空にするとマイドキュメントを指定したことになります。 ただし、value属性自体は省略できません。
・comic要素
漫画1つごとに1つ書きます。 裏サンデーで公開される漫画が入れ替わったら自分で書き換えてください。 title、save_file_name、url_templateの各属性は必須です。
⋅ title
ツールの漫画選択コンボボックスで表示するタイトルです。
⋅ save_file_name
保存のときに使われる画像のディレクトリ名 / zipファイル名です。 [save_file_name]題?話 の形になります。
⋅ url_template要素
入力項目の URL template の初期値です。 説明は本体の記述を参照。

設定項目の属性には余分な空白は書かないようにしてください。 書き方の細かいルールとかはxmlの参考サイトを適当に検索して調べてください。


ソースコードを載せます。 「わけの分からんツールなど使えるかっ!!」って人は読んで自分でビルドしてください。 ボロボロだけど短いから読めますよね?

・Comic.cs

・ConfigLoader.cs

・MainWindow.xaml

・MainWindow.xaml.cs

あれ? usingまとめて書いてないな。 ...まぁいいや。