スプラトゥーン面白いよ楽しいね。ゲームはもちろんだけど、Miiverseのネタ絵も面白くて最高だよ。 そんな訳で、新着投稿と1日ごとの人気投稿をDLするソフトを作りました。 fushihara/MiiverseImageGetter 制限はこんな感じ
- 全ての通信は同時に1リクエストまで。1リクエストごとに1秒以上の間隔が開いています
- 新着画像は前回の通信時に取得した所まで、人気投稿は新しい日付が追加された時しか取得しません
- Miiverseは投稿に返信が出来ますが、返信はウェブスクレイピングの対象外
- ユーザー名は保存しない。個別のURLに含まれる投稿IDのみで区別する
特徴はこんな感じ
- 収集するデーモンはjava。service化するとかで立ち上げっぱなしにして下さい。1時間に1度の取得時以外はThread.sleepしてます
- スマホ対応の閲覧機能はphpと.htaccess。apache標準のindex ofをちょこっと改造した程度だから特に大したことはしてない
- 設定はpropertiesファイルにて。jarでやる時はリソースを差し替える必要あり
通勤時にMiiverseの画像を見るのがとても楽しみになりました。 スマホ対応の閲覧機能はこんな感じ。最低限これでいいんです。 設定ファイルの中身はこんな感じ。リクエストヘッダのAccept-Languageで言語切り替えてるみたいなので、jpの指定も必要。
#miiverseのアカウント情報。新着を取らないなら不要 miiverse.account.id=xxxxx miiverse.account.password=xxxxxxx #取得対象のスレッドを指定。miiverse.target.で前方一致してるだけなので、適当に重複しない文字を付けて下さい miiverse.target.0=14866558073673172576/14866558073673172583,スプラトゥーン miiverse.target.1=14866558073650090735/14866558073650090748,ゼノクロ #DL先のディレクトリを指定。このディレクトリの下にゲームタイトル/hot/2015-01-01/xxxxx.png とファイルを作る miiverse.saveDirectory=./../../ダウンロード/ #リクエストに使うUA http.header.useragent=xxxxx #リクエスト時に追加する任意のヘッダ。http.header.any.で前方一致してるだけなので重複しないように適当に。 #name:value 形式で、:で2限界の分割してるだけです http.header.any.1=Accept-Language:ja,en;q=0.8,en-US;q=0.6
DBとか使ってお気に入りとかタグ付けとかする機能も欲しいけど、jarファイルだけで動くようにしたかったので。sqlite使うのもアリだったか。
以上。