search
LoginSignup
0

More than 3 years have passed since last update.

posted at

updated at

アイカツ!のマイページから情報を取得するやつを作る その2

はじめに

この記事は、アイカツ! Advent Calendar 201814日目の記事です。内容としては、現在大好評稼働中のアーケードゲーム、データカードダス アイカツフレンズ!のマイページから情報を取得するツールを作成中で、その内容と進捗の紹介になります。

前日の記事はiyanayatudazeさんによるスギカツフレンズ!2018 レポ - ねむいでした。

ちなみに、これまでアイカツ! Advent Calendar 2018では以下のような技術系記事が投稿されています。

aikatsu-dcd-parser

kakakaya/aikatsu-dcd-parser: Fetch and parse Aikatsu! DCD mypage data.
取得及びパースをするライブラリ本体と、それを利用したCLIツールの2つが含まれており、いずれも dcdkatsu という名前でインポートや実行が可能です。

進捗

  • ユーザーごとの公開デジタルバインダーの取得
  • URLを指定したカードの取得

を実装し、v0.2.1としてリリースしました。

詳細はREADMEを参照してください。以下のようなデータが取得可能です。

デジタルバインダー

dcdkatsu binder <ユーザーID> <弾ID> みたいな感じでやることで次のような結果を得られます。なお、弾IDはデジタルバインダーのページの末尾に付く数字で、12がフレンズ1弾、13がフレンズ2弾、……16がフレンズ5弾に相当します。スターズのほうとのつながりがなく、謎です。

{
    "series_id":16,
    "series_name":"フレンズ5弾",
    "cards":[
        {"code":"","name":"","rarity":"","stars":"","type":"","category":"","brand":"","dress_appeal":"","appeal_point":0,"owner_id":"RX...3x","owned":false,"series_id":16,"url":"http://mypage.aikatsu.com/mypages/detail/NP10_H5_U_PR_Qt_001_T01/_00/16/RX...3x/","image_url":"http://mypage.aikatsu.com/images/cardlist/card/458005/f5-1bfr_00.png"},
        {"code":"","name":"","rarity":"","stars":"","type":"","category":"","brand":"","dress_appeal":"","appeal_point":0,"owner_id":"RX...3x","owned":false,"series_id":16,"url":"http://mypage.aikatsu.com/mypages/detail/NP10_H5_U_PR_Qt_001_B01/_00/16/RX...3x/","image_url":"http://mypage.aikatsu.com/images/cardlist/card/458005/f5-2bfr_00.png"},
        {"code":"","name":"","rarity":"","stars":"","type":"","category":"","brand":"","dress_appeal":"","appeal_point":0,"owner_id":"RX...3x","owned":false,"series_id":16,"url":"http://mypage.aikatsu.com/mypages/detail/NP10_H5_U_PR_Qt_001_S01/_00/16/RX...3x/","image_url":"http://mypage.aikatsu.com/images/cardlist/card/458005/f5-3bfr_00.png"},
        ...
    ],
    "owner_id":"RX...3x","url":"http://mypage.aikatsu.com/mypages/digital_binders/RX...3x/16","data_get_date":"2018-12-14T00:56:00+09:00"
}

カード

カードについては取得がユーザーのIDと紐付いていたり、一意に推測することが困難なため、URLを指定して取得する形になっています。上記バインダーのコマンドで取得したものを使ってもよいし、いい感じにやっても大丈夫です。

dcdkatsu card <カードURL>

{
  "code": "F5-5",
  "name": "アートレボリューショントップス",
  "rarity": "ベストフレンズレア",
  "stars": "★★★",
  "type": "キュート",
  "category": "トップス",
  "brand": "ピュアパレット",
  "dress_appeal": "ベストピュアパレットウィッシュ",
  "appeal_point": 900,
  "owner_id": "RX...3x",
  "owned": true,
  "series_id": 16,
  "url": "http://mypage.aikatsu.com/mypages/detail/NP10_H5_U_PR_Qt_002_T01/_00/16/RX...3x",
  "image_url": "http://mypage.aikatsu.com/images/cardlist/card/458005/f5-5bfr_00.png"
}

ユーザー

その1で書いてたように、v0.1.0で実装してたけどおもしろワンライナーの動画だけ書いてたけど出力を載せ忘れてたので。

dcdkatsu user <ユーザーID>

{
  "id": "RX...3x",
  "url": "http://mypage.aikatsu.com/mypages/index/RX...3x",
  "name": "@kakakaya",
  "avatar_url": "http://mypage.aikatsu.com/avatar/2_20-136_1-9_0_1_6-26_27_20-136_0_0.png",
  "last_play_location": "2018年12月05日・東京都",
  "cute_level": 56,
  "cool_level": 44,
  "sexy_level": 20,
  "pop_level": 16,
  "idol_rank": 43,
  "idol_rank_level": "いちにんまえのアイドル",
  "fan_count": 322722,
  "played_cards_count": 252,
  "data_get_date": "2018-12-14T01:09:00+09:00"
}

おわりに

火曜にも書いたし明日が忙しいしでてんやわんやです。ネタは無限にあるのでもしかしたら土曜か日曜にも差し込むかも。

なお、今後以下のような機能の実装を考えています。

  • 取得間隔の制限(サーバへの負荷を防ぐため)
  • 取得可能な機能の追加
    • ログインが必要な部分の取得
    • フレンズ
    • バッジ
    • ランキング実績
    • 大会実績
    • アーカイブ
      • アイカツスターズ!1弾〜5弾
      • アイカツスターズ!星のツバサ編
      • ↑色々違っていて面倒そうという気分
  • 取得結果の保存、差分表示
  • テストの作成、CI
    • やるだけ
    • ランキング周りが面倒そう
    • v0.2.0でアホなミスしたので早く入れたい
  • リリース方法のいい感じ化
    • .debを配布したい
    • AURに置きたい
  • 活用例
    • 持ってないカード一覧出力のサンプルとか

他にも欲しい機能やマサカリがあったら、この記事のコメントにお願いします。これは非公式なものであり、データカードダス アイカツフレンズ!公式や、バンダイナムコ、その他権利者の方に問い合わせないようお願いします。また、怒られたらすぐに消します。

明日はkakakayaさんの「kakakaya/aikatsu-dcd-parser 番外編その2」です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0