<div align="center">
# dynasty
[](https://crates.io/crates/dynasty)
[](https://crates.io/crates/dynasty)
[](https://github.com/Aynh/dynasty/actions/workflows/release.yaml)
[](https://github.com/Aynh/dynasty/actions/workflows/api-check.yaml)
[](https://github.com/Aynh/dynasty/commit/HEAD)
A [Dynasty Reader](dynasty-scans.com/)'s CLI downloader, written in Rust.
</div>
- [Installation](#installation)
- [Usage](#usage)
- [Examples](#examples)
- [License](#license)
- [Contribution](#contribution)
## Installation
1. Github releases
> You need to extract the binary from the downloaded release in order to run them.
There are currently 2 variation available on [GitHub releases](https://github.com/Aynh/dynasty/releases):
- dynasty-cli
The default, full-featured binary, just download this if you don't know which to pick.
- dynasty-cli-no-archive
The binary without archive functionality (means smaller size), this binary won't have `--archive` and `--keep-archived` command line flags.
2. Cargo
You need to have Rust toolchain [installed](https://www.rust-lang.org/tools/install) if you want to use Cargo installation method.
```bash
cargo install dynasty
```
Or if you don't need archive functionality.
```bash
cargo install dynasty --no-default-features
```
> Cargo will put the binary, `dynasty-cli` at your [installation root](https://doc.rust-lang.org/cargo/commands/cargo-install.html#description) (typically at `$HOME/.cargo/bin`).
## Usage
This is the `--help` for [`v1.3.0`](https://github.com/Aynh/dynasty/tree/v1.3.0).
```
Dynasty reader's CLI downloader
Usage: dynasty-cli [OPTIONS] [URL]...
Arguments:
[URL]... Urls to be downloaded
Options:
-a, --archive <ARCHIVE> Archive downloaded chapters as `<ARCHIVE>` [possible values: cbz, pdf, zip]
-A, --keep-archived Whether to keep archived chapters
-d, --directory <PATH> Sets the output directory
-f, --flatten-directory Whether to flatten output directory
-n, --no-cache Whether to not cache resolver results
-j, --max-concurrent-request <COUNT> The maximum number of concurrently running requests [default: 4]
-k, --max-retry <COUNT> The maximum number of request retries [default: 4]
-h, --help Print help information
-V, --version Print version information
```
### Examples
1. Download _Hino-san no Baka_ with 8 concurrent fetch.
```bash
dynasty-cli https://dynasty-scans.com/series/hino_san_no_baka -j 8
```
2. Download the chapters as pdf.
```bash
dynasty-cli https://dynasty-scans.com/series/a_scummy_gap_student_with_a_hard_life_calls_upon_a_lady_of_the_night --archive pdf
```
3. Using proxy (http, https, or socks) is possible through environment variable (see [reqwest proxies](https://docs.rs/reqwest/0.11.12/reqwest/index.html#proxies)).
```bash
HTTPS_PROXY=socks5://127.0.0.1:1080 dynasty-cli https://dynasty-scans.com/chapters/kitanai_kimi_ga_ichiban_kawaii_ch26
```
## License
Licensed under either of
- Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license
([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)
at your option.
## Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.