shirodl

Crates.io

ShiroDL is an Async Download Library for Massive Batch of Urls Downloading

Install

cargo install --example shirodl --git https://github.com/Oyami-Srk/shirodl

Usage

shirodl --help for usage helps.

Library

example

```rust use shirodl::Downloader; use std::path::PathBuf;

fn main() { let mut dler = Downloader::new(); dler.setdestination(PathBuf::from(".")); dler.sethashcheck(true); dler.appendtask( "https://avatars.githubusercontent.com/u/6939913?s=48&v=4".tostring(), PathBuf::from("."), None, ); let result = dler.download(|, _, _, _| {}); for r in result { println!("Failed: {}, due to {:?}", r.url, r.err); } } ```

Downloader::download will create Tokio runtime, so you can call it directly in normal sync code. Default Download parameters: rust folder: Default::default(), timeout: Some(Duration::from_secs(10)), headers: HeaderMap::new(), hash_check: false, only_binary: true, auto_rename: true,

Notice that currently auto-rename only determinates extensions simply by MIME via http header content-type and extracts subtype as extension. Manually check is required but at least it could give you a tip.

shirodl::Error::ignorable() is not always ignorable, present errors to users always and leave the decisions to end user.