はじめに
Githubプロフィール用のバッジを生成するサービスがあります。
例えば、
Qiitaのコントリビューション数や記事数をバッジにするサービス。
Zennの記事数をバッジにするサービス。
偉大な先人たちに感謝…!!
僕のREADMEに使わせていただくと、こんな感じになります。
僕も何かバッジ化するサービスを作りたい。
Annictとは
アニメ視聴を記録し感想を投稿できるサービスです。
開発者にも優しい仕様になっていて、APIも公開されています。
アニメ好きには素晴らしいサービスですので、おすすめです。
成果物
Annictの見たアニメやフォロワー数をバッジにするサービスを作りました!!
使い方
ざっとURLフォーマットを説明
https://annict.penguincabinet.com/?user_id=<user_id>&type=<type>&style=<style>
user_idにはAnnictのユーザー名(@を除くURLに記述されているもの)を入れてください。
typeに取得するものを入れます(フォロワー数とか見たアニメ数等)。
styleはshields.ioのスタイルのことです。取得されるバッジのデザインに影響を及ぼします。お好みでどうぞ。
あなたのREADMEにAnnictバッジを追加してみよう
user_idをあなたのAnnict IDに書き換えて使って下さい(PenguinCabinetの部分)。
# My Annict watched animes(「見た」アニメ数)
[![My Annict watched animes](https://annict.penguincabinet.com/?user_id=PenguinCabinet&type=watched_count)](https://annict.com/@PenguinCabinet)
# My Annict create at(Annictアカウントを作った日付)
[![My Annict create at](https://annict.penguincabinet.com/?user_id=PenguinCabinet&type=created_at)](https://annict.com/@PenguinCabinet)
# My Annict followers(フォロワー数)
[![My Annict followers](https://annict.penguincabinet.com/?user_id=PenguinCabinet&type=followers_count)](https://annict.com/@PenguinCabinet)
これをあなたのGithubのREADMEに記述して完了です!
その他
typeクエリーを変えると他にも色々バッジにできます。
typeクエリー | バッジの内容 |
---|---|
followings_count | フォローしている数 |
followers_count | フォロワー数 |
records_count | 記録した全アニメ数 |
wanna_watch_count | 「見たい」アニメ数 |
watching_count | 「見ている」アニメ数 |
watched_count | 「見た」アニメ数 |
on_hold_count | 「一時中断した」アニメ数 |
stop_watching_count | 「視聴中止した」アニメ数 |
created_at | ユーザー作成日 |
技術的なお話
技術スタック
Google Cloud FunctionsとGoogle Cloud Runを使用しています。
言語はPythonです。
独自ドメインにする関係で、Google Cloud FunctionsからGoogle Cloud Runに変換しています。
実装方法
受け取ったクエリーをもとにAnnict APIでデータを取得します。
それをshields.ioに送り、バッジを取得しているといった感じです。
現在キャッシュは行っていないですが、トラフィックが増えると迷惑かかりそうなので、状況を見て対応します。
ソースコードについて
ソースコードを整理したら、OSSにするかもしれないです。
終わりに
ご活用いただけると幸いです。
コメントや「使ってみたよ」とコメントくれると、非常に嬉しいです。
…バグもありそうなので、何かあれば教えてください。