🎀

Annictの記録したアニメ数をGitHubのプロフィールに載せるサービスを作りました

2022/11/14に公開
2

はじめに

Githubプロフィール用のバッジを生成するサービスがあります。
例えば、
Qiitaのコントリビューション数や記事数をバッジにするサービス。

https://qiita.com/mikkame/items/f2c60d9caf8a8e38ec50

Zennの記事数をバッジにするサービス。

https://github.com/nikaera/zenn-badge

偉大な先人たちに感謝…!!
僕のREADMEに使わせていただくと、こんな感じになります。

僕も何かバッジ化するサービスを作りたい。

Annictとは

アニメ視聴を記録し感想を投稿できるサービスです。

https://annict.com

開発者にも優しい仕様になっていて、APIも公開されています。

https://developers.annict.com

アニメ好きには素晴らしいサービスですので、おすすめです。

成果物

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にするかもしれないです。

終わりに

ご活用いただけると幸いです。
「使ってみたよ」とコメントくれると、非常に嬉しいです。

…バグもありそうなので、何かあれば教えてください。

Discussion