alist_rs 0.0.3

A Rust client library for interacting with the Alist API.
Documentation
use alist_rs::client::fs::AddOfflineDownloadRequest;
use alist_rs::client::Client;

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    let mut client = Client::new("https://alist.example.com".to_string());
    client.login("username", "password").await?;

    let tasks = client
        .add_offline_download(AddOfflineDownloadRequest::new(
            "/".into(),
            vec!["url".into()],
        ))
        .await?;
    let task = tasks.first().unwrap();
    loop {
        let undone = client.offline_download_undone().await?;
        let task_status = undone
            .iter()
            .filter(|t| t.id == task.id)
            .collect::<Vec<_>>();
        if task_status.is_empty() {
            break;
        }
        tokio::time::sleep(tokio::time::Duration::from_secs(1)).await;
    }

    println!("download finished");
    Ok(())
}