前回はjgitを使用して範囲内のCommit一覧を取得しました。今回は指定したCommit間の追加/修正/削除ファイル一覧を取得します。
流れとしては以下になります。
- Repositoryインスタンス作成
- RevWalkインスタンス作成
- DiffFormatterインスタンス生成とRepository設定
- 範囲となるRevCommit(始点、終点)インスタンス作成
- RevCommitからRevTreeインスタンス取得
- DiffFormatterでDiffEntry一覧を取得
前回はjgitを使用して範囲内のCommit一覧を取得しました。今回は指定したCommit間の追加/修正/削除ファイル一覧を取得します。
流れとしては以下になります。
前回の記事「git logのrange指定」で行ったことをJavaから行います。gitへのアクセスを一から書くと大変なので今回はjgitを使用します。
行うことの流れとしては以下の通り。
1つ前の記事でニコ動にAPIを発行するとかなんとかの記事を書いたけれど、ひとまず動画タイトルの名前でMovieファイルを保存するサンプルは作成完了。
Modelはだいたいこんな感じ。ここに書いている名前は適当。
Controllerを起点にして各種処理を行うイメージ。緑色は主にネットワークがらみの部分。apache HttpClient使って楽してます。
取得したデータがxmlのだった場合はマッピングする必要があるのだけれど、Digester使ってMovie情報をモデルに変換。
例外処理作りこんでないわ、Response Codeで判定してないわでやっつけ感がいっぱい。
LinkつけるとかPermanent Linkを修正するとかとかで記事はUpdateするけれど、だいたいこんな感じ。
Struts2+REST+Hibernateから少し離れて、ニコニコ動画から各種情報を取得するプログラムをカリカリ書いてます。
Struts2のもそうだけれど、最終的にやりたいのは素敵なチャートを描きたいなーっと、できれば自分の興味があるまたは自分に役立つのがよいなーっと思ってたわけで。ニコ動関連は試したい事は多々あるんだけれど、そのうちの2つをやってしまおうかと思っています。
1つはうp主の傾向や関連、勢力(?)みたいなものをインフォグラフィクス的に出すのと、もう1つは自分の好きな曲をDL→mp3→タグ付け→管理するアプリみたいなもの。
検索結果取得と動画情報取得のAPIは各々あるので1つ目のは特にネックになりそうなことはなし。2つ目の方はニコ動にログインする必要があるのだけれどこれも今日実装完了。ログインしていないと取得できない情報を取得できたのでとりあえず問題なさげ。SessionとかConnectionの管理がちょっとずさんなのでそこを手直しすれば個人使用には耐えれそう。
あとは…、あまりニコ動サーバに負荷をかけないようにスケジューリングとアクセス頻度を確保しますよ、っと。
こういうときってAgentとか細工した方がよいのかしら。「Mozilla/5.0 (Windows NT 6.3; WOW64) すいません、ちょっと通りますよ・・・」みたいな。