カード明細ページで参照できる画像を増やしました

プレミアムサイン付き画像、お仕事画像(クエスト画像)、透過画像をカード一覧のカード明細ページで見られるようになりました。

お仕事画像とは

お仕事画像は、マイページでアイドルの短冊をクリックすることにより、表示することのできるアイドル画像のことです。

マイページ表示例

または「新お仕事」を選択している場合に、画面遷移時にも表示されます。

カード明細ページでの表示

カード明細ページで、カード画像上部にあるタブを選択することで表示を切り替えることができます。

例:[すくx2あかりんご]辻野あかり+

なお、ほとんどの R は、お仕事画像が透過つき PNG 形式で提供されます。これはRの背景がCu/Co/Paそれぞれで共用であるためです。

例:辻野あかり+

イベントのパワー持ちカードを管理するようにしました

パワー持ちの特技を一覧で見られたらいいのになあー
フリトレ履歴も主にトレードするのはパワー持ちばかりだし、いちいち名前検索するの面倒だし勝手に絞り込みができたら楽だなあー

と自分で使っていて思いましたので、さっそく追加してみました。

できるようになったこと

上記ツイートにも記載のあります通り:

パワー持ちカードを取得可能なイベント

現在開催中の第42回ロワイヤルからです。

実装自体は前イベントの秋のぜいたくグランピングアイプロの時点で終わっていました。ですが、イベント終盤にリリースして変なバグを踏みたくないなーということで安全策を採り、アイプロの終了直後にリリースしたところ、なんとMobage側の仕様としてイベントの終了後はパワー持ち一覧のページを取得できなかった…(仕様不理解によるバグを踏んだ)

おかげでアイプロのパワー一覧を取得できず、しかも開発環境のDBを運悪く洗い替えてテスト時のパワー持ちカード一覧データも残っておらず…

それら都合により、パワー持ち一覧を取得できるのは、現在開催中の第42回拓海ロワイヤルからとなっています。

最近検知されたカード画像の変更

ご利用ありがとうございます。
「アイドルマスター シンデレラガールズ」運営事務局です。

9/8 15:00頃、アイドルの画像を一部変更いたしました。

アイドル画像の一部変更について(Mobage)

というお知らせがmobage版シンデレラガールズで通知されました。これに触発されましたので、ボーダーbotが最近検知した「カード画像の変更」について以下にまとめました。本件はボーダー観測に何一つ関係がないことから、この開発ノートに書いておきます。

ImageMagickの使い方把握ついでにアニメーションGifの比較も作りましたので添えておきます。各カード画像は、「修正前」「修正後」「比較アニメーションGif」の順に並んでいます。

なお、デレマスボーダーbotは、画像に差異がないかを定期的に確認しています。6,544カード全種類を一気にチェックするのはMobage側にかける負荷が高いため、「リーダーに設定されている数が多いカード」を優先してチェックするアルゴリズムになっています。

※注意:以下の変更内容は、今回のお知らせで修正対象となったもの以外も含まれていると思います。検知が最近になっただけで、かなり前に修正されたものも混じっているかもしれません。

[ゴーフォーヴィクトリー]仙崎恵磨

CardHash: 1a488f8bab8e0efae8f777f10b21dc6a

[センター・キャプテン]愛野渚

CardHash: 868c92e18aa41e24a61546b2100548b5

[センター・キャプテン]愛野渚+

CardHash: 701f66d34f5d7d58aa7d977ca3450565

[ブレイブステージ]緒方智絵里

CardHash: 17dfc3a665a0263e5b922f1c47a7667b

[碧眼の姫君]メアリー・コクラン

CardHash: 990199c5bd44be16361a787dda7e5ec2

[くのいち忍ドル]浜口あやめ+

CardHash: 159060b683d4e8bea49d2c90753f61c7

[貴婦人のたしなみ]和久井留美+

CardHash: ad621fe47393a5bcba98b5729077ac4e

喜多日菜子

CardHash: 35ed8cc4e33cec53aea016cb9e2f0f22

[大傾奇娘]丹羽仁美

CardHash: 26b2a0c90723a9b074e65e4ecb2c937e

[大傾奇娘]丹羽仁美は、人間の目だとほとんど差がわかりません。

[大傾奇娘]丹羽仁美+

CardHash: f04628745ca35b5896d03126fcdbed8d

[色づき紅葉・スマイル]佐々木千枝

CardHash: 7d617c6da4e598221715f638460b14b4

私見ですが、[色づき紅葉・スマイル]佐々木千枝は右に余白ができているので、運営がなにか間違えてている気がします。

Cinderella API v2 リリース

Cinderella API v2 (APIv2) をこの度リリースしました。これまで提供してきた、Cinderella API v1 (APIv1) の後継となります。

APIv2 の狙い

Cinderella API は地味な機能ですが、いまでは複数の Web サイト(道場リストなど)や、複数の Discord bot などで利用して頂いています。

デレマスボーダーbotのデータは、なるべく多くのプロデューサーの方々に、多様な形で利用していただきたいと思っています。CSV はそのひとつです。その中にあって、 API も、Web ポータルと同等に重要な機能として取り扱っています。

この度、APIv1 の利用状況を踏まえつつ、APIv1 では不十分・不親切だった点を改善してより利用しやすい形に設計し直したものが APIv2 です。

APIv2 の新機能

  • フリートレード履歴を取得できるようになりました。リアルタイムに準じたフリートレード履歴を提供します。期待される更新までのdelayはおよそ2分程度です。
  • ダブル特技の深化を踏まえ、カード API ではメイン特技・ダブル特技の詳細な効果を出力するようになりました。編成の組み合わせ検討などに利用することができます。

プロデューサー・プロダクションごとの時速も出力する計画はありますが、時速出力は場合によっては将来的になくなる可能性があるため、いまのところは実装していません。

APIv1 から改善された点

  • APIv1 では、検索パラメータの不足や誤りがある際に、400 Bad Request が返却されたり 404 NotFound が返却されたりと一貫性がなく、かつ NG である理由がわかりませんでした。
    → APIv2 では、パラメータ問題発生時のステータスコードは 400 に統一されるとともに、メッセージでNG事由が返却されるようになりました。
  • 利用状況を踏まえ、頻繁にアクセスされるAPIは積極的にキャッシュするようになりました。道場 API 、カード API などの利用率の高い API は、 APIv1 よりも高速に提供されます。
  • Key 名称が可変値になっている Hashmap(IDictionary) 形式の object は非常に扱いづらかったため、これらは全廃しました。これにより、 jq コマンド等での利便性が向上しました。(実はこれは製造時の誤りだったので、できればさっさと直したかったのですが、あまりにも破壊的な変更となるため運用後にはもう変えられませんでした)

APIv1 の取り扱いについて

  • deprecated (非推奨) になりました。
  • 引き続き利用することはできます。すぐに APIv1 が使えなくなるわけではありません。
  • 原則として、 APIv1 は不良があった場合でも今後は改善しません。また、将来的な他機能変更などに巻き込まれて利用不可能になった場合、対応するかどうかはわかりません。
    (APIv2 と APIv1 の両方をメンテナンスするのは大変なので…)
  • APIv1 を利用したアプリを作成・運用されている方々におかれましては、可能であれば、 APIv2 への切り替えをお願いできればと思います。出力内容は類似していますので、ほとんどの場合、大きな修正にはならないと想定しています。

利用にあたってのご意見、こういう API があったら便利なのに…というご要望などがありましたら、 Twitter: @imcgborder までお寄せください。

デレマスボーダーbotの機能追加・拡張は、(現時点においては)これが最後の予定です。しばらくは既存機能の改善と保守に努める予定です。

Cinderella API v1 の制限追加について

要約

Cinderella API v1 (以下APIv1)に、新たな2種類の利用制限を設けます。

  1. 以下の条件いずれかを満たした場合、HTTPステータスコード 429 [too many requests] が返却されます。この制約は APIv2 と共通です。
    • 高頻度でアクセスした場合。目安としてアクセス間インターバル5秒未満。
    • 応答サイズ(Content-Lengt)が数MBを超えるアクセスを連続して行った場合。
  2. 「プロデューサー検索」および「プロダクション検索」での検索時の最大応答件数を、2000 件に制限します。

これらの制約はすべて適用済です。

影響を受けるのは APIv1 利用ユーザのうち1%程度です。

経緯

かんたんに箇条書きで記載しておきます。

  • 昨今、Web ポータルを含めた pink-check.school 全体のアクセス数は伸び続けている。8月は昨年比で3倍近くの利用があった。
    (ゲームの状況的にも伸びる要素が思いつかないですし…理由はまったくわかりません)
  • そのため、最近は Web サーバのリソース使用率が比較的高い状態で推移していた。CPUが1コアのWebサーバは、Load average が常時 1.0 くらいに達している。通常、PMFやアニバーサリーアイプロの期間中は平時比でさらに3倍近いアクセスがあるため、現状のサーバリソースでは耐えられないかもしれない。
  • Web サーバを一段階スケールアップすれば問題は解決するが、これ以上、観測と直接関係ない部分を財布で殴るのは避けたい。毎月かかる固定費はこれ以上増やせない。
  • サーバへのアクセス数は Web ポータルと APIv1 でほぼ同じだが、使用されているリソース量を計測したところ、およそ 2:7 で APIv1 の方が負荷が高いと推測できる結果が取れた。
  • APIv1 の利用状況を調査したところ、極一部のクライアントが、高頻度で、しかも数十MBの応答が必要なアクセスをしていることがわかった。これら資源を過剰利用しているアクセスを分散させることができれば問題はほぼ解決すると想定した。(⇒利用制限 1. )
  • そもそも、プロデューサー(現在638,731件)やプロダクション(同44,314件)の全量を返却できてしまう APIv1 の実装が悪い。(⇒利用制限 2. )

API はなるべく多くの方に活用して頂けるよう門戸を開いていますが、限られたリソースで提供していることをご理解いただき、配慮したアクセスをお願い致します。

なお、全量取得のためには CSV を準備しています。こちらは静的処理ですので比較的低負荷です。1日1回の更新ですのでリアルタイム性はありませんが、カレントデータである必要がない大量データの取得には、ぜひこちらも活用してください。