amagi 0.1.2

Rust SDK, CLI, and Web API service skeleton for multi-platform social web adapters.
Documentation
mod article;
mod auth;
mod content;
mod convert;
mod live;
mod social;
mod user;

use crate::client::AmagiClient;
use crate::config::BilibiliRunTask;
use crate::error::AppError;
use crate::output::Printer;

pub(super) async fn run_task(
    printer: &Printer,
    client: &AmagiClient,
    task: &BilibiliRunTask,
) -> Result<(), AppError> {
    match task {
        BilibiliRunTask::VideoInfo { .. }
        | BilibiliRunTask::VideoStream { .. }
        | BilibiliRunTask::VideoDanmaku { .. }
        | BilibiliRunTask::BangumiInfo { .. }
        | BilibiliRunTask::BangumiStream { .. } => content::run_task(printer, client, task).await,
        BilibiliRunTask::Comments { .. }
        | BilibiliRunTask::CommentReplies { .. }
        | BilibiliRunTask::DynamicDetail { .. }
        | BilibiliRunTask::DynamicCard { .. } => social::run_task(printer, client, task).await,
        BilibiliRunTask::UserCard { .. }
        | BilibiliRunTask::UserDynamicList { .. }
        | BilibiliRunTask::UserSpaceInfo { .. }
        | BilibiliRunTask::UploaderTotalViews { .. } => user::run_task(printer, client, task).await,
        BilibiliRunTask::LiveRoomInfo { .. } | BilibiliRunTask::LiveRoomInit { .. } => {
            live::run_task(printer, client, task).await
        }
        BilibiliRunTask::LoginStatus
        | BilibiliRunTask::LoginQrcode
        | BilibiliRunTask::QrcodeStatus { .. }
        | BilibiliRunTask::EmojiList
        | BilibiliRunTask::CaptchaFromVoucher { .. }
        | BilibiliRunTask::ValidateCaptcha { .. } => auth::run_task(printer, client, task).await,
        BilibiliRunTask::ArticleContent { .. }
        | BilibiliRunTask::ArticleCards { .. }
        | BilibiliRunTask::ArticleInfo { .. }
        | BilibiliRunTask::ArticleListInfo { .. } => article::run_task(printer, client, task).await,
        BilibiliRunTask::AvToBv { .. } | BilibiliRunTask::BvToAv { .. } => {
            convert::run_task(printer, client, task).await
        }
    }
}