読者です 読者をやめる 読者になる 読者になる

同人誌&漫画タグ付け支援ソフトを作りたい (1)

前回のエントリーでいうところの案2になるわけだが、Doujinshi&Manga Lexiconの情報を取ってきてComicrack互換のメタデータファイルをアーカイブ内に埋め込むというソフトを作り始めた。

前回のE-HentaiダウンローダーはCUIでテストしつつロジック部分から作り始めて、とりあえずダウンロードができるようになってからGUIを作り始めるという開発プロセスだったけど、今度は逆にGUIから作り始めてあとでロジックを作るようにした。
というわけで、Lexiconからの情報取得はまだ全く手を付けていない。
どっちから手を付けたほうが効率がいいのか、そういうのを実感したいな~と。

今回やったのは、メタデータを埋め込みたいアーカイブファイルを開くところまで。

まず思いつくのは、ファイルを開くダイアログを作ってそこから開く方式。これはそう難しくなさそう。
参考:wxPythonでGUIアプリを作る イベント処理
まさしく作ったやつで開いたダイアログ
でも、いちいち選択するのはめんどくさい。そこで、ウィンドウに開きたいファイルをドラッグアンドドロップすればいいってやつになれば嬉しい。
そんなことをするための仕組みもwxPythonに用意してあった。ああ、Python素晴らしい…。
参考:画面上にファイルをドラッグ&ドロップすると、ファイル名が表示されるようなアプリケーションの実装
 
というわけで作ったのが以下のコード。


動かすとこんな窓がでる。
Info URLはなんの意味もない。
下の巨大な空白にはタグエディタをつけるよてい。

このウィンドウのどこでもいいので適当なファイルをドラッグアンドドロップすると、Archive Pathのところがそのファイルのパスになっただろう。(これってOS関係ないのかな?)
また、隣の...ボタンを押すと出てくるファイル選択ダイアログからファイルを選んでも同様。
すでにアーカイブ中のComicInfo.xmlから情報を抽出するスクリプトは作ったので、表示もすぐできるだろう。編集はどうかな。

ドラッグアンドドロップでだと、複数のファイルを投げ込まれる可能性があるのでそこを処理。一度に2つ以上のファイルを投げるとエラーが出ます。
とりあえず、次のステップではすでにComicInfo.xmlが埋め込まれているアーカイブメタデータを編集する機能まで実装したい。


ちなみに、卒論のプログラムなんかは全部Javaで書いていたんだけど、今後はPythonで書くと思う。networkXという複雑ネットワークを扱うすばらしいライブラリーをみっけてしまった。