exits

勉強記録

仕事の効率を下げずにNowPlayingする

はじめに

この記事は ドワンゴ Advent Calendar 2019 の6日目の記事です。

去年の第2のドワンゴ Advent Calendar 2018 や一昨年の第2のドワンゴ Advent Calendar 2017 でも同じ日に参加していました。

今年は"第2"ではなくメインのAdvent Calendarに進出してしまいましたが、変わらず雑な記事でハードルを下げていこうと思います💪

僕の部署は仕事の内容や関係のあることを書くのが難しく、個人の進捗があまりなかったので、仕事の効率を上げる(下げない)ためにやっていることについて書きます。

NowPlaying

私は仕事中に音楽を聴きたい派です。
集中しているときは曲を聴いていてもあまり耳に残らず、意識がそれることもありません。 しかし集中できていないときにうっかりいい曲を聴いてしまうと、SlackやTwitterで曲の良さなんかを語りだしたくなってしまいます。

その悩みを解決するため、僕はターミナルから #NowPlaying を呟けるようにしてあるので、今日はそれをご紹介します。
(大学院のころから使ってるのを今さらブログのネタにするわけですが、今回結構リファクタリングをしたので許してください🙏)

構成

Rhythmbox

職場で使っているメインPCはUbuntuなので、プレイヤーにはいつもRhythmBoxを使っています。
出勤したらPCから生えているWMポートのコネクタにWalkmanを挿し、RhythmBoxからWalkman内の曲を聴いています。
f:id:yue82:20191205171713j:plain:w400

RhythmBoxのすてきなところは rhythmbox-client コマンドを使って、プレイヤーの操作や曲の情報取得ができることです。

$ rhythmbox-client --print-playing
KZ - Breakthrough

$ rhythmbox-client --print-playing-format='%tpt\t%aa\t%at'
Breakthrough\tKZ\tBEATLESS ORIGINAL SOUND TRACK [Disc 1]

Google Custom Search

RhythmBoxではジャケット画像まで取得できません。
そこでGoogle Custom Searchを利用します。 1日100回まで無料で利用できるので、自分だけで使うなら無料枠で十分だと思います。

使い方についてはとても丁寧な記事を見つけたので割愛します。

クエリパラメータは公式ドキュメントを参照にしました。

$ curl 'https://www.googleapis.com/customsearch/v1?key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&cx=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&searchType=image&num=1&imgSize=large&q=Evan%20Call%20VIOLET%20EVERGARDEN%3A%20Automemories%20%5BDisc%201%5D'
{
 "kind": "customsearch#search",

  # 中略

 "items": [
  {
   "kind": "customsearch#result",
   "title": "CDJapan : \"Violet Evergarden (Anime)\" Original Soundtrack VIOLET ...",
   "htmlTitle": "CDJapan : "\u003cb\u003eViolet Evergarden\u003c/b\u003e (Anime)" Original Soundtrack \u003cb\u003eVIOLET\u003c/b\u003e ...",
   "link": "http://st.cdjapan.co.jp/pictures/l/03/35/LACA-9573.jpg",
   "displayLink": "www.cdjapan.co.jp",
   "snippet": "CDJapan : \"Violet Evergarden (Anime)\" Original Soundtrack VIOLET ...",
   "htmlSnippet": "CDJapan : "\u003cb\u003eViolet Evergarden\u003c/b\u003e (Anime)" Original Soundtrack \u003cb\u003eVIOLET\u003c/b\u003e ...",
   "mime": "image/jpeg",
   "image": {
    "contextLink": "http://www.cdjapan.co.jp/product/LACA-9573",
    "height": 495,
    "width": 500,
    "byteSize": 72201,
    "thumbnailLink": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRIxEtrnGb0bDbAnZ9Q_tdQSOcGtXaq3OgETKw7X-iFMPq9UywrNbXgVjhZ&s",
    "thumbnailHeight": 129,
    "thumbnailWidth": 130
   }
  }
 ]
}

画像は上記レスポンス内の 'link' のものを使っています。
場合によっては 'thumbnailLink' でもよさそうです。

投稿

最終的な#NowPlayingの投稿はTwitterとSlackの両方にできるように実装しています。

ジャケット画像は、Twitterでは普通に画像を投稿し、SlackではURLを貼って展開させるようになっています。
Twitterでも画像URLで展開されるようになったらそれも変更したいですね。

$ np
to [dw]:
Status code OK: 200

f:id:yue82:20191205171759p:plain:w400

$ np
to [dw]: tw
Ok

このようにして作業画面を離れず#NowPlayingできるようになったので、ついついTwitterやSlackに張り付いてしまうことも減りました。
参考までに、RescueTimeで記録した先週の勤務時間中のアクティビティグラフを置いておきます。
f:id:yue82:20191205171826j:plain:w400

🤔

余談

去年書いた第二種電気工事士は、実際に受験した結果(記事を書いた直後に1回落ち、その次の)上期で無事に合格しました🎉