LoginSignup
8
9

More than 5 years have passed since last update.

BitbarでSplatoonのフレンド状況をメニューバーに表示する

Last updated at Posted at 2016-06-22

元記事

すごい今さら感があるけど、書こう書こうと思ってずっと書いてなかったので書いておく。

splanet.png

イカリングで友達入ってるのかとか、Twitterのスプラトゥーン ステージ情報botでこの後のステージなんなのかとか毎回調べるのめんどうですよねぇ。
イカリング、描画のjsがGCしてないのかCPU使用率がめちゃくちゃ高くなってファンがファーーってなるしくそ
メニューバーに表示されてたら楽なのにって思って表示させるようにしました。

Bitbar

表示させるツールとしてはBitbarを使いました。Shellスクリプトでもいいし、好きな言語で標準出力に出せば表示できるのは便利です。
最初、Shellスクリプトで書いてたけどeachとかArray#joinとか使いたくなってRubyに書き換えました

Bitbar

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から簡単に友達がログインしてる状況を把握できるようになりました。便利。
イカ、よろしくー。

8
9
0

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
  3. You can use dark theme
What you can do with signing up
8
9