Crates.io | libannict |
lib.rs | libannict |
version | 0.3.2 |
created_at | 2025-01-22 13:21:25.668703+00 |
updated_at | 2025-09-06 04:23:04.893991+00 |
description | Annict API のクライアントライブラリ |
homepage | |
repository | https://codeberg.org/naskya/libannict |
max_upload_size | |
id | 1526621 |
size | 295,205 |
Annict の Web API のクライアントライブラリ
本ライブラリの利用に必要な Rust の最低バージョン (MSRV): 1.75.0
コントリビューションを歓迎しております!プルリクエストを送る場合、先に issue を立てるようにお願いいたします 🙏
use libannict::Annict;
// クライアントを作成
let client = Annict::new("access_token");
// 作品を検索
let works = client
.works()
.filter_title("ゼロの使い魔".to_owned())
.search(10)
.await?;
// 作品の情報を利用
for work in works {
println!("{}", work.title);
}
// エピソードを検索
let episodes = client
.episodes()
.filter_work_id(6077)
.search(20)
.await?;
// エピソードの情報を利用
for episode in episodes {
println!("{:?}", episode.title);
}
use libannict::{work::SortBy, Order};
// 作品を検索
let works = client
.me()
.works()
.sort(SortBy::Season, Order::Desc)
.search(10)
.await?;
// 作品の情報を利用
for work in works {
println!("{}", work.title);
}
use libannict::{Activity, ChangeStatus, Status};
// 活動を検索
let activities = client
.user("naskya".to_owned())
.activities()
.search(10)
.await?;
// 活動の情報を利用
for activity in activities {
if let Activity::ChangeStatus(activity) = activity {
let ChangeStatus { status, work, .. } = activity;
match status {
Status::Watched => println!("「{}」を観ました", work.title),
_ => (),
}
}
}
use libannict::Status;
// ID が 860 の作品の視聴状況を「見た」に変更
let _ = client
.write_access()
.change_status(860, Status::Watched)
.await?;
ID
を直接利用するuse libannict::{AnnictObject, InternalId, Work};
// アニメ「AIR」の GraphQL API における ID
let id = InternalId("V29yay0yNDE=".to_owned());
// 作品の情報を取得
let work = Work::from_internal_id(&client, id).await?;
assert_eq!(work.title, "AIR");
graphql/schema.graphql を除く、本リポジトリの内容には
の 2 つのライセンスが適用されます。あなたの選択でどちらのライセンスの下でも利用できます。
詳しくは COPYING を参照してください。
明示的に宣言されない限り、本プロジェクトへのあなたの貢献は上記の通りにデュアルライセンスされます。