1
0
Fork
You've already forked libannict
0
Annict API のクライアントライブラリ https://crates.io/crates/libannict
  • Rust 100%
2025年11月27日 05:48:36 +09:00
graphql chore: update GraphQL schema 2025年03月08日 14:35:40 +09:00
src test: add test to check that Error is Send + Sync 2025年11月27日 05:48:36 +09:00
.gitignore meta: ignote Cargo.lock for version control 2025年07月07日 03:54:49 +09:00
.woodpecker.yaml chore: increase MSRV to 1.75.0 for RPITIT 2025年02月03日 21:30:36 +09:00
build.rs chore: create graphql query/schema files 2025年01月15日 21:00:58 +09:00
Cargo.toml release: v0.3.2 2025年09月06日 13:22:22 +09:00
COPYING chore: create graphql query/schema files 2025年01月15日 21:00:58 +09:00
LICENSE-APACHE meta: add licenses 2025年01月14日 22:31:35 +09:00
LICENSE-MIT meta: add licenses 2025年01月14日 22:31:35 +09:00
README.md refactor: redesign Annict client 2025年03月01日 11:25:29 +09:00

libannict

Annict の Web API のクライアントライブラリ

本ライブラリの利用に必要な Rust の最低バージョン (MSRV): 1.75.0

コントリビューションを歓迎しております!プルリクエストを送る場合、先に issue を立てるようにお願いいたします 🙏

使用例

uselibannict::Annict;// クライアントを作成
letclient=Annict::new("access_token");

作品を検索する

// 作品を検索
letworks=client.works().filter_title("ゼロの使い魔".to_owned()).search(10).await?;// 作品の情報を利用
forworkinworks{println!("{}",work.title);}

エピソードを検索する

// エピソードを検索
letepisodes=client.episodes().filter_work_id(6077).search(20).await?;// エピソードの情報を利用
forepisodeinepisodes{println!("{:?}",episode.title);}

自分が視聴状況をつけた作品を検索する

uselibannict::{work::SortBy,Order};// 作品を検索
letworks=client.me().works().sort(SortBy::Season,Order::Desc).search(10).await?;// 作品の情報を利用
forworkinworks{println!("{}",work.title);}

特定のユーザーの活動を検索する

uselibannict::{Activity,ChangeStatus,Status};// 活動を検索
letactivities=client.user("naskya".to_owned()).activities().search(10).await?;// 活動の情報を利用
foractivityinactivities{ifletActivity::ChangeStatus(activity)=activity{letChangeStatus{status,work,..}=activity;matchstatus{Status::Watched=>println!("「{}」を観ました",work.title),_=>(),}}}

作品の視聴状況を変更する

uselibannict::Status;// ID が 860 の作品の視聴状況を「見た」に変更
let_=client.write_access().change_status(860,Status::Watched).await?;

GraphQL API によって返される ID を直接利用する

uselibannict::{AnnictObject,InternalId,Work};// アニメ「AIR」の GraphQL API における ID
letid=InternalId("V29yay0yNDE=".to_owned());// 作品の情報を取得
letwork=Work::from_internal_id(&client,id).await?;assert_eq!(work.title,"AIR");

ライセンス

graphql/schema.graphql を除く、本リポジトリの内容には

の 2 つのライセンスが適用されます。あなたの選択でどちらのライセンスの下でも利用できます。

詳しくは COPYING を参照してください。

プロジェクトへの貢献

明示的に宣言されない限り、本プロジェクトへのあなたの貢献は上記の通りにデュアルライセンスされます。