8 releases

new 0.0.8 Jan 27, 2025
0.0.7 Jan 27, 2025

#405 in Web programming

Download history 525/week @ 2025-01-19

525 downloads per month

MIT/Apache

160KB
4K SLoC

Rust 2K SLoC // 0.0% comments GraphQL 2K SLoC

libannict

Annict の Web API のクライアントライブラリ(制作中)

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

使用例

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, Status};

// 活動を検索
let activities = client
    .user("naskya".to_owned())
    .activities()
    .search(10)
    .await?;

// 活動の情報を利用
for activity in activities {
    if let Activity::ChangeStatus { status, work, .. } = activity {
        match status {
            Status::Watched => println!("{}」を観ました", work.title),
            _ => (),
        }
    }
}

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

use libannict::Status;

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

ライセンス

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

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

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

プロジェクトへの貢献

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

Dependencies

~6–18MB
~240K SLoC