dynasty 1.3.1

Dynasty Reader's CLI downloader
Documentation
<div align="center">

# 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.

</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.