# dynasty
[![Crates.io version](https://img.shields.io/crates/v/dynasty?style=for-the-badge)](https://crates.io/crates/dynasty)
[![Crates.io recent downloads](https://img.shields.io/crates/dr/dynasty?style=for-the-badge)](https://crates.io/crates/dynasty)
[![GitHub Workflow Status (Release)](https://img.shields.io/github/workflow/status/Aynh/dynasty/Release?style=for-the-badge)](https://github.com/Aynh/dynasty/actions/workflows/release.yaml)
[![GitHub Workflow Status (API Check)](https://img.shields.io/github/workflow/status/Aynh/dynasty/API%20Check?label=API%20CHECK&style=for-the-badge)](https://github.com/Aynh/dynasty/actions/workflows/api-check.yaml)
[![GitHub last commit](https://img.shields.io/github/last-commit/Aynh/dynasty?style=for-the-badge)](https://github.com/Aynh/dynasty/commit/HEAD)
A [Dynasty Reader](dynasty-scans.com/)'s CLI downloader, written in Rust.
- [Installation](#installation)
- [Usage](#usage)
- [Examples](#examples)
- [License](#license)
- [Contribution](#contribution)
## Installation
1. [GitHub releases](https://github.com/Aynh/dynasty/releases)
You need to extract the archive in order to get the executable binary.
2. Cargo
[Rust toolchain](https://www.rust-lang.org/tools/install) is required.
```bash
cargo install dynasty
```
> 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
```
Dynasty Reader's CLI downloader
Usage: dynasty-cli [OPTIONS] [URL]...
Commands:
search Search for query on Dynasty Reader
help Print this message or the help of the given subcommand(s)
Arguments:
[URL]... Urls to download
Options:
-a, --archive Archive downloaded chapters as `` [possible values: cbz, pdf, zip]
-A, --keep-archived Whether to keep archived chapters
-d, --directory 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 The maximum number of concurrently running requests [default: 4]
-k, --max-retry 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.