アイドルマスターのキャラクター(以下、アイドル)をCNに用いているプレイヤーの一覧および、 使用回数を集計したもの。
タイトルのハイパーリンクにアクセスして利用する。
仕様や重要事項などは、上記ツールより、「はじめに、こちらのリンクをお読みください」を参照すること。
仕様にかかる記載は、説明・免責事項として、 views/readme.erb に記載する。
本ツールは、内部データとして、キャラクター名リスト、および、(必要に応じて)別名一覧を持つ。 表記ルールは schema.json を参照。
データの種類は、原則として、 アイマス公式ページ のアイドルを表示対象とする。 上記アイマス公式ページに未登録のアイドル、アイドル以外のアイマスキャラは、必要に応じて上記の各項目に追加する。(原則、新規の「データの種類」は作成はしない) 公式クリーチャーの取り扱いも上記に準ずる。シンデレラガールズ関連公式クリーチャーの名簿順は、アイドル→クリーチャーの順とし、クリーチャー内は可能な限りアイドルの名簿順に合わせる。 同人クリーチャーは取り扱わない。 声優を含む製作者は取り扱わない。
※未登録のアイドル、アイドル以外のアイマスキャラ、公式クリーチャーでのモバマス村プレイ記録があったら教えてください。
エイリアスについては、もとのキャラクター名が一意かつ明確である場合は対応する。(ほぼ後付対応にはる) アイマス公式の別名がある場合は、村の状況を確認せず一意かつ明確とみなす。 それ以外の場合はケースバイケースとする。
ruby言語のスクリプトにて、小規模なWebサービスを構築する。スクリプト・WebサービスはDocker CE にてコンテナを作成・提供する。 rubygems にて、sinatra, puma のモジュールを入れる。
ruby test/index.rb data/some_character_list.json output.csv
some_character_list.json output.csv は任意のファイル名。 output.csv は省略可能(本当に output.csv に出力される)。
以下のとおり実行する。
ruby test/triplist.rb
以下が順に出力される。
CNを直接指定して実行する場合、以下のとおり実行する。
ruby test/player_direct.rb "character-name" "character-name" ...
指定した character-name のキャラについて、 公開API をコールした応答の結果をJSON形式で出力する。
実行例)
ruby test/player_direct.rb "黒川千秋" "大石泉" > p.json
上記 queryByCn の実行結果を実行例どおりに p.json ファイルに落とし込んでいるとして、一次解析の確認には以下のとおり実行する。
ruby test/player_direct_parse.rb p.json
実行例)
ruby test/player_direct_parse.rb p.json "黒川千秋"
ruby test/player_direct_parse.rb p.json "大石泉"
ruby test/player_direct_parse.rb p.json "高垣楓"
実行方法なし。 queryByJson のサブメソッドなので、下記のとおり実行して結果を得る。
CN一覧のJSONに則って実行する場合、以下のとおり実行する。
ruby test/playerlist.rb data/any-csv-data.json
指定した any-csv-data.json のキャラ各々について、 公開API をコールした応答の結果全体をJSON形式で出力する。
※あらかじめ、上記 get_player_list.rb の実行として得られた結果を、ファイルに落としておく。たとえば以下。
ruby test/playerlist.rb data/shinycolors.json | jq -c . > test/data.json
同じ data/any-csv-data.json を用いて、以下のとおり実行する。
ruby test/summarize.rb data/triplist.json data/shinycolors.json test/data.json
テストスクリプト未定義。
ruby myapp.rb -p 80
docker build . -t shogosugano/mobamura-tool:latest
docker run --name mobamura-tool -p 80:80 shogosugano/mobamura-tool ; docker rm mobamura-tool
docker run -d --name mobamura-tool -p 127.0.0.1:80:80 --restart=always shogosugano/mobamura-tool
docker stop mobamura-tool && docker rm mobamura-tool
docker run --rm -it shogosugano/mobamura-tool bash
アプリのスリープを防ぐため、一定間隔ごとに Health Check Path を呼び出す。 手元で常時動作する Linux PC を準備し、以下の手順にて、水曜日以外5分ごとのアクセスを実装する。
$ crontab -e
$ crontab -l
*/5 * * * 0-2,4-6 curl 'https://mobamura-summarize-tool.azurewebsites.net/'
使わないと想定される水曜日をアクセス対象外の日とすることで、アプリをあえてスリープさせ、 Azure App Service 更新のための再起動タイミングを図る。