オフトゥン大好き。

惰眠系プログラマの作業ログで( ˘ω˘ ) スヤァ…

放映中のアニメリストを教えてくれるhubot-annictを作った

とあるエンジニア集団が集うSlackにhubotを飼うことになってアニメ関連のコマンドが欲しいというissueを立てた。hubotはcoffeeがデフォルトだけどjavascriptを使えるので去年作ったannict.jsで現在のクールに放映中のアニメリストを表示するためのhubot scriptを作った。

概要

以下のように動作する。

hubot> anime now
hubot> Shell: <a href="http://project-itoh.com/">虐殺器官</a>
<a href="http://konosuba.com/">この素晴らしい世界に祝福を!2</a>
<a href="http://www.kuzunohonkai.com/">クズの本懐</a>
<a href="http://demichan.com/">亜人ちゃんは語りたい</a>
<a href="http://masamune-tv.com/">政宗くんのリベンジ</a>
<a href="http://chaoschildanime.com/">CHAOS;CHILD</a>
<a href="http://tv.littlewitchacademia.jp/">リトルウィッチアカデミア</a>
<a href="http://www.tbs.co.jp/anime/urara/">うらら迷路帖</a>
<a href="http://youjo-senki.jp/">幼女戦記</a>
<a href="http://sao-movie.net/">劇場版 ソードアート・オンライン -オーディナル・スケール-</a>
<a href="http://www.tbs.co.jp/anime/seiren/">セイレン</a>
.
.
.

https://gyazo.com/0b6876326dbad1a5cffa38c68ebd4943

使い方

データは例のごとくAnnictから取得させていただくので、事前にAnnictの登録が必要。

Annict | アニクト - 見たアニメを記録して、共有しよう

Annictにデベロッパー登録する

Annictにはまだユーザがトークンを発行する機能が用意されていないので、デベロッパー登録を行って手動でトークンを吐き出させる。

Annictアプリケーション登録

https://gyazo.com/c5731b3ccae4da5e26a38ff6d4436ae9

登録したら[認可する]ボタンで認証コードを取得する。

Annict APIのアクセストークンを取得する

コマンドラインから以下のようにcurlでトークンを取得する。起動時に使用するのでaccess_tokenフィールドをメモっておく。

$ curl -F client_id=<アプリケーションID> \
-F client_secret=<シークレットキー> \
-F grant_type=authorization_code \
-F redirect_uri=urn:ietf:wg:oauth:2.0:oob \
-F code= <認証コード> \
-X POST https://api.annict.com/oauth/token

hubot-annictのセットアップ

hubotのルートディレクトリでインストールする。

$ yarn add hubot-annict

その後、external-scripts.json'hubot-annict'を追加。これでインストール完了。

hubot起動

環境変数HUBOT_ANNICT_TOKENに取得したAnnictトークンを設定して起動する。

$ HUBOT_ANNICT_TOKEN="<annict_access_token>" ./bin/hubot

終わりに

Annictの波、きます!

@shimbacoさん、最近海外のアニメ記録サイト大手Kitsuの中の人と仲良くなってて、ワールドワイドな協定が結ばれて欲しいと個人的な願望を抱いている。

参考

関連記事