イカリングのステージ情報をスクレーピング→MongoDBに保存→Web APIでステージ情報を取得できるようにしました。
スプラトゥーンのステージ情報がとれるやつ(非公式)
もともとは自分用に勝敗記録アプリを作ろうとしてて、ステージ情報も必要になるので、ステージ情報用の機能を別APIとして独立させようと思った次第です。Microserviceというやつですね(流行ってるから言ってみたかっただけ。)
ただし検索機能まで休日中に実装間に合いませんでした。平日がクソ忙しいので一体いつになったら実装できるのやらです。スプラトゥーンやる時間削って実装しました(本末転倒)。過去の情報にどのくらい価値が有るのかはわかりませんが、眺めてみたら面白いんじゃないかなーって思います。
今のところDBの内容を全部返却するようになっています。これ検索できないと意味無くなりそうなので早めに実装したいですね。
もう同様のサービス絶対ありそうだけど自分で作ることに意義があると思ってるので…(ふるえ
検索機能まで作り終わったらソースをgithubに公開します。
→(2015/10/12)公開しました。retrorocket/splapi
デスノートが始まっちゃうので今日はこのへんで。
2017/01/30
サービスの公開を停止しました。DNSのAレコードごとAPIを削除しました。
ご利用ありがとうございました。金輪際子供向けゲームのツールは公開したくありません。良いこと一つもなかったです。
代替APIとしてstat.inkの作者さまがAPIを公開してくださっているので、そちらのご利用をご検討いただければと思います。
splapi.fetus.jp
(2017/02/07) 諸事情によりサービス公開停止理由を記載した記事を削除しました。何かございましたらメールかコメント欄にお願いいたします。
2016/09/26
2015-12-24T15:00:00のレギュラーマッチのステージ情報が誤っていたため修正しました。(シオノメ→アロワナ)
メールでのご指摘ありがとうございました。
2016/09/12
httpsで接続できるようにしました。http/2に対応させています。証明書はLet’s Encryptで取得しています。
Let's Encrypt – Free SSL/TLS Certificates
2016/09/05
想定外のパスでAPIが実行できてしまう不具合を修正しました。(/regular/now.html等、任意の拡張子付きの形式で呼び出せる)
mojoliciousのformatsがデフォルトでONになってるの知りませんでした。
2016/04/19
/now, /next/, /next_all, /prev, /prev_all エンドポイントに全自分待望のstat.inkモードを追加しました。
stat_inkパラメータでonを指定すると、ステージ名とルール名がstat.inkのAPIに対応したもので返ってきます。
(origin_nameに日本語名、stat_ink_nameにstat.ink用の値が格納されます)
いちいちハッシュで変換かますのめんどくさかったので作ってよかったです。ちなみに実装のほうがメチャクソハードコーディングでブサイクなのですが、もうステージとルール追加ないだろうしいいやと思いました。
実行結果は例えばこんなかんじ。
ちなみにスクリプトにバグがあって、stat_inkフラグがずっとonになり続けてる状態が5分くらいありました。すみません。
2016/02/23
イカリングの情報を英語版で拾ってしまう問題と、DBの内容を日本語に修正しました。あと利用ルール守ってない人多すぎるのでほんと勘弁して下さい。
2016/01/27
利用者数も増えてきたようですので、API利用ルールを記載しました。問題が起こるとUAやIPで使用不可にしたりAPIキーを導入せざるを得なくなってしまうので、お手数ですが目を通していただけるとありがたいです。よっぽどのことがない限りはサーバ側でどうにかすべきだと思っているので、アクセスさばけないとかになりそうでもサーバ側でどうにかする予定です。
ちなみに今のところ210.172.144.35(ロリポップのどこか)からのアクセスはイエローカード気味です(UAもないしリファラもないしリンクされてる気配もないのでこっちでリンク元を調べられない&アクセス頻度的に個人利用じゃなさそうなので)
2016/01/06
2015/12/31-2016/01/01にかけて、日付に誤りのあるデータ(2015/12/31開始→2015/01/01終了等)が登録されていたためDB上の情報を修正しました。
スクリプトの修正自体は固定回線復旧後実施します。たぶん正月のnowとnext_allバグってたんじゃないかと思います。すみません。
#バグ報告ありがとうございました。助かりました。
#DBの修正とブログ記事の追記はテザリングでどうにかしました。月初めでよかったです。
2015/12/31
ブキがスクレイピングで取れるのをさっき知ったのでAPIで取得できるようにしました。
(更新用スクリプトが正常に動けば)新ブキ追加後の5分後にリストが更新されます。
たとえばこんなかんじ。
http://splapi.retrorocket.biz/weapons
2015/12/30
自分が必要になったので現在ゲーム上に存在するガチマッチのルールと、全マップのリストを返却するエンドポイントを作成しました。
(更新用スクリプトが正常に動けば)新ルール・マップ追加後の5分後にリストが更新されます。
たとえばこんなかんじ。
http://splapi.retrorocket.biz/maps
http://splapi.retrorocket.biz/gachi/rules
2015/11/18
(イカリングのデータ内容に誤りがあったことによる)11/13のデータの誤りを修正しました。
2015/10/15
map, ruleでOR検索ができるようにしました。カンマ(,)でパラメータを区切ってください。空白とかはいれないでください。
例えばこんな感じ。
splapi.retrorocket.biz/gachi?map=Bバスパーク,ヒラメが丘団地&rule=ガチヤグラ,ガチホコ
2015/09/13
cronのスクレーピングの実施時間見直しました。
2015/09/12
フェスのステージ情報を取得できるようにしました。ドキュメントにはまだ書いてません。
/next, /now, /next_allと組み合わせて使用できます。
?teamでチーム情報を絞り込めます。
たとえばこんなかんじ。
http://splapi.retrorocket.biz/fes?team=ボケ
検索に引っかからなかった場合、空の配列を返却します。
あと、書いてなかったけど、regularとgachiで、toパラメータで検索範囲を絞り込めます。
2015/09/03
特定時間を起点にするステージ情報を取得できるようにしました。
/next, /now, /next_allと組み合わせて使用できます。
たとえばこんなかんじ。
splapi.retrorocket.biz/regular/now?date=2015-09-01T14:00
splapi.retrorocket.biz/regular/next_all?date=2015-09-01T14:00
検索に引っかからなかった場合、空の配列を返却します。
2015/09/01
特定のマップ検索とガチマッチのルール検索ができるようにしました。
/, /next, /now, /next_allと組み合わせて使用できます。
たとえばこんなかんじ。
splapi.retrorocket.biz/regular?map=ネギトロ炭鉱
splapi.retrorocket.biz/gachi/next_all?rule=ガチヤグラ
検索に引っかからなかった場合、空の配列を返却します。
2015/08/31
とりあえず開催中のステージ情報と、次の1件と、次に開催されるすべてのステージ情報が取れるようにしました。
たとえば開催中はこんな感じ。
splapi.retrorocket.biz/regular/now
11/13ですが、イカリングのデータに誤りがあったらしく、キンメダイ美術館が登録されています。
正しいデータに修正願います。
2015/11/13 11:00~
【ナワバリ】
アロワナモール、ヒラメが丘団地
【ガチエリア】
ホッケふ頭、マサバ海峡大橋
2015/11/13 15:00~
【ナワバリ】
モズク農園、タチウオパーキング
【ガチホコ】
ハコフグ倉庫、ヒラメが丘団地
2015/11/13 19:00~
【ナワバリ】
デカライン高架下、ハコフグ倉庫
【ガチエリア】
アロワナモール、モズク農園
ご連絡ありがとうございます。コメント返せずすみません。昨年に修正済みです。
ちなみに私は山の幸派閥でした…。
某記事のコメント欄閉鎖されてしまったようなのでこちらに失礼致します。(2017/02/08:(管理人コメント)頂いたコメントを一部修正しました。すみません。)りゅー様に非はありません。元気だしてください。こう書くと味方を増やしてるって言われるのかもですが。
失礼します。
追記です。第三者から見てもりゅー様が攻撃している・いじめているとは見えなかったので本当に気にしない方がいいですよ。記事を削除されたのは残念ですが、正解だったと思います。お疲れ様でした。
コメントありがとうございます。もうせっかく頂いたコメントを非表示にしたくないので一部修正させていただきました。すみません。
しばらくコメント欄見ないで放置していた私も悪いのですが、記事を削除するのが最適解と判断しての処置を取りました。
しばらく別のものをつくって遊びたいです。公開はしばらくいいかなという気がしますね。
お気遣いありがとうございました。
サービスの閉鎖をされていることに先ほど気付きました。しばらく前から私用で本サービスのAPIを利用させていただきました。残念ではありますが、今まで便利なサービスを提供していただいて感謝しております、本当にありがとうございました。
私は削除された記事について何一つ知らないのですが、あなたのような方が活動を続けていただければとても嬉しく感じます。今後も頑張ってください!
APIのご利用誠にありがとうございました。サービス公開停止の運びとなってしまい本当に申し訳ありません。(2/7までサービスの公開停止のアナウンスと公開停止理由を別の記事に記載していたのですが、諸事情により削除しました。)
> あなたのような方が活動を続けていただければとても嬉しく感じます。
そう言っていただけると本当にうれしいです!またどこかでお役に立てるよう精進いたします。
splapi停止の記事が公開された時にメールを送った相手の知人です。記事削除されてしまったのですね。相手の性格を考えると削除させられたに近いと予想いたしますが・・・
匿名ユーザーさんも言うように、Twitterでのやりとりを全部見ても、終始失礼で言動の意味がわからなかったのは相手ですので、どうかお気に病まないでください。話しかける相手があまりに悪かったとしかいいようがありません・・・これ以上他の人に迷惑をかける前に周りがフォローすべきなのですが、私は匙を投げてしまいました
どうかこれにめげず、これからも素敵なツールを公開していただければ嬉しいです
お知り合いの方からは何人かメールを頂いているのでどなたかはわからないのですが、コメントありがとうございます。
記事とコメントの修正を要求されましたが、これ以上何かあっても嫌なので、記事を削除しました。
お知り合いの方は皆さん苦慮されているようでしたので、心中お察しします。無関係にもかかわらず私に謝罪してくださる方もいて本当に心苦しかったです。私のほうも、言葉の通じる一般常識を持った相手かどうか見てから質問すべきだったと後悔しています。
お気遣いありがとうございました。