Expand description
Annict の Web API のクライアントライブラリ
§使用例
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::{Annict, Status};
// ID が 860 の作品の視聴状況を「見た」に変更
let _ = client
.write_access()
.change_status(860, Status::Watched)
.await?;§GraphQL API によって返される ID を直接利用する
use libannict::{AnnictObject, Episode, Work};
// アニメ「AIR」の GraphQL API における ID
let id = "V29yay0yNDE=".to_owned();
// 作品の情報を取得
let work = Work::from_internal_id(&client, id).await?;
assert_eq!(work.title, "AIR");
assert_eq!(work.internal_id(), "V29yay0yNDE=");Re-exports§
pub use activity::Activity;pub use activity::ChangeStatus;pub use activity::MultipleRecords;pub use activity::Record;pub use activity::Review;pub use client::Annict;pub use common::Chapter;pub use common::Media;pub use common::Order;pub use common::Rating;pub use common::Season;pub use common::Status;pub use episode::Episode;pub use error::Error;pub use error::Result;pub use organization::Organization;pub use series::Series;pub use user::User;pub use work::Work;