inohilog

/var/log/inohiro

はてなフォトライフに写真をアップロードするツールを作りました

久しぶりにC#で。はてなフォトライフは月で利用できるディスクスペースがリセットされてしまうので、7月が終わるまでに作りたかった(7月終わるまでに作ることができて、ブログのエントリを書くのが遅いので、いまさらです)。
誰得アプリ?と聞かれそうですが、私がほしかったアプリケーションです。はてなダイアリーで写真を扱うときは、はてなフォトライフを使うことが多いのですが(特に「ひろゆ記(id:hiroyuKi)」で)、たくさん写真をアップロードするときに結構時間がかかります。さらに必要な写真をブラウザ上でいちいちポチポチするのが面倒です。
ということで、ほしかった機能を実装してみました。

  • リサイズ
    • ブラウザからアップロードするときはFlashか何かがリサイズしてる? 重たくて仕方ない。。
  • ディレクトリ指定で、指定したディレクトリ以下のファイルを全部アップロード
    • とりあえずディレクトリを作って、実行時にPathを渡せばあとは全部アップロードしてくれたら素敵

ほかにも、API*1を見るといろいろ機能があったので、以下のものも実装した。

  • 画像の名称をつける(Title)
  • フォルダ指定

使い方

$ HatenaFotolifeClientMain.exe user_name password file [options]

  • options
    • -s 600: 長辺を600pxにする
    • -t title: タイトルをtitleにする
    • -d dir: ディレクトリdir以下のファイルをすべてアップロードする
    • -f name: フォルダname以下にアップロードする

ソースコードを公開しています

最近gitを使わないといけなくなりそうなので、githubを利用してみようと思いましたが、つまずいたりでエントリを書くのがどんどん遅れるわけで。。。
ということで、今回はソースコードをZipファイルで置いてみようと思います。

CodeplexでHatenaNetfxLibというプロジェクトを作っているので、そこにもマージしましたが、他のコードが腐っているのでURLを貼るのが恥ずかしいという。。。いろいろ試行錯誤しているせいもありますが)

実装の後半は、かなり駆け足なので例外チェックがなかったり、拡張子チェックがなかったりで、変なことをやるとたくさん例外が出ると思いますが、それらは今後なんとかやっていこうと思います。ひどい感じです。。。

使ってみた

夏休みということで、7月に沖縄に行ってきたのですが、これのエントリに使われている画像をこのツールでアップロードしました。

一番ほしかった、指定ディレクトリ以下全部アップロードとリサイズを利用した!

Visual Studio 2010 + .NET Framework 4

VS2010を使ってコンパイルしました。.NETは(無駄に)4.0のはず。
で、確か最近の機能で、コマンドライン引数を解析する便利なものが実装されたような、そうでないような気がするんですが、そんなのありましたっけ?今回は自前でやっていますが、なんというか超アドホックなので、悪意のある順番で渡されたりするとエラー(か例外)になるはずです。

この辺もまた勉強しないといけませんね。

Mono 対応

私が普段Mac OS Xを使っているので、Mac上でMonoを利用して動けばさらにうれしいのですが、Monoのコンパイラコンパイル+動作確認をまだ行っていません。特に外部のライブラリを使ったりしていないので、問題なくコンパイルできると思っています。
また進展があれば書きます。