ddp2ass 0.4.2

Dandanplay 的 json 转成 ass 文件
Documentation
use anyhow::Result;
use clap::Parser;
use ddp2ass::{Args, Cli, Commands};
use simplelog::*;

#[tokio::main]
async fn main() -> Result<()> {
    let config = ConfigBuilder::new()
        .set_time_offset_to_local()
        .unwrap()
        .build();
    CombinedLogger::init(vec![TermLogger::new(
        LevelFilter::Info,
        config,
        TerminalMode::Mixed,
        ColorChoice::Auto,
    )])?;

    let cli = Cli::parse();
    return match cli.command {
        Some(Commands::Download(args)) => download(args).await,
        Some(Commands::MatchParams(args)) => args.process(),
        Some(Commands::MatchResult(args)) => args.process().await,
        None => {
            let args = Args::parse();
            download(args).await
        }
    };
}

async fn download(mut args: Args) -> Result<()> {
    args.check()?;

    let pause = args.pause;

    let ret = args.process().await;
    if pause {
        if let Err(e) = ret.as_ref() {
            println!();
            eprintln!("发生错误:{:?}", e);
        }

        println!("按任意键继续");
        std::io::stdin().read_line(&mut String::new())?;
    }

    ret
}