Splatoonのフレンド状況をメニューバーに表示する
すごい今さら感があるけど、書こう書こうと思ってずっと書いてなかったので書いておく。
イカリングで友達入ってるのかとか、Twitterのスプラトゥーン ステージ情報botでこの後のステージなんなのかとか毎回調べるのめんどうですよねぇ。メニューバーに表示されてたら楽なのにって思って表示させるようにしました。
Bitbar
表示させるツールとしてはBitbarを使いました。Shellスクリプトでもいいし、好きな言語で標準出力に出せば表示できるのは便利です。 最初、Shellスクリプトで書いてたけどeachとかArray#joinとか使いたくなってRubyに書き換えました
Bitbarで実行するRubyのコード
#!/usr/bin/env /Users/yutaka/.rbenv/shims/ruby require 'splapi' require 'time' require 'httparty' puts 'Splanet' puts '---' client = SplAPI::Client.new def print_stage(h) puts "#{Time.parse(h['start']).strftime('%H:00')}~ #{h['rule']}: #{h['maps'].join(', ')} | color=blue href=https://splatoon.nintendo.net/schedule" end puts 'Stages & Rule | size=16' res = client.gachi_now.body print_stage(res['result'][0]) if res['result'][0] res = client.gachi_next_all.body res['result'].each { |h| print_stage h } if res['result'].any? puts '---' puts 'Friends | size=16' # ここはイカリングにログインして、Cookieに入っているwag_sessionをコピーしてください wag_session = 'K25YUzJVYUxXTGU2YzJaSjRpWUNuR3VzTlM4ZXZPclJvdEFjdWk0Q2RYVVZGRFNGYVdUQ1hVRkJJT0luY295UG5WUzJPLzMVINHhIVE5aREQ0ckNJU2JZMVVZa0NOdFFkbWFqa1MzODhFQTR5cHcvY1dMNmRCRTBZemQ0SS82bkpnQTkzK2RqSVM0dDc5anV1aVhHUHFEYjQ5RDZFMFA3eXpGNllrdFdoUlpQWU9ZdHNMNnhYbEtKN1dFN0J6QUF5VzRvbUNpSVRIaFlFQStuYWhqcko5V0ZHc1BPTjVRTUJjcEY1SFVGcDMzeURieHJoOXhQQzJSTWZyQ0xxY2U2cG1rNzBaYW9KZjZaMkJTemZYUnVONmRsTEY1RUlsdlkvTVJtVnpack5uanJEVm9HRG5BU1VYaXZIUUVtcjkyZXMyYUtjeUtjOCtkenNjTzIrQkx4NUpmMjc1NjRDSEJqcDZodWNmOFV5LS1vdHVVTHA1TkRoU2d5QnZOeDFhVUNRPT0%3D--7bd8f9569' res = HTTParty.get('https://splatoon.nintendo.net/friend_list/index.json', headers: { 'Cookie' => "_wag_session=#{wag_session}"} ) res.sort_by {|h| h['mode'] }.each do |h| puts "#{h['mii_name']}: #{h['mode']} | color=black href=https://splatoon.nintendo.net/profile/#{h['hashed_id']}" end
Rubyの実装
- rbenv使ってるので
#!/usr/bin/env /Users/yutaka/.rbenv/shims/ruby
とした - httparty, time, splapi gem を使う
- splapiでステージ情報を取得する
friend_list/index.json
でフレンド情報を取得する- session情報をcookieのwag_sessionという値を使ってるのでここだけは最初にブラウザでログインして、自分で取得する必要がある。
splapi gem
splapi - スプラトゥーンのステージ情報がとれるやつを作っている方がいたのでgemを作成させてもらいました。
ステージの情報はこちらから取得してます
まとめ
PCから簡単に友達がログインしてる状況を把握できるようになりました。便利。 イカ、よろしくー。