# fb2-clean
Simple GUI/CLI utility to remove images from fb2 books.
[](
https://github.com/nujievik/fb2-clean/actions/workflows/tests.yml)

## Quick Start
### GUI version
1. [Download](https://github.com/nujievik/fb2-clean/releases) a
Fb2CleanGui-* archive for your system.
2. Unpack it.
3. Run the unpacked **Fb2CleanGui**.
4. Setup if needed.
5. Press **START** button to clean.

### CLI version
1. [Download](https://github.com/nujievik/fb2-clean/releases) a
fb2-clean-* archive for your system.
2. Unpack it.
3. Run the unpacked **fb2-clean** in a directory with fb2 files.

## Default Behaviour
- Saves cleaned files to the **cleaned** subdirectory.
- Cleans all **fb2** and **fb2.zip** in a CWD directory (for GUI in 16
its subdirectories too).
- Removes **binary**, **coverpage**, and **image** tags.
- Keeps input extension: saves **fb2** as **fb2** and **fb2.zip** as
**fb2.zip**.
## Recursive Search
In CLI use `fb2-clean -r16` to enable recursive search.
For GUI recursive search is enabled by default.
## Advanced Use 🤓
Run `fb2-clean -h` to display help.
| `-i, --input <path>` | Set directory with files OR file to clean |
| `-o, --output <dir>` | Save cleaned files to directory |
| `-r, --recursive <n>` | Clean files in subdirectories too (up to n level) |
| `-t, --tags <n[,m...]>` | Remove tags from file structure |
| `-z, --zip` | Save output files as fb2.zip |
| `-Z, --unzip` | Save output files as fb2 |
| `-w, --overwrite` | Overwrite input files |
| `-e, --exit-on-err` | Don't clean next files on error |
| `-j, --jobs <n>` | Set max parallel cleaning |
| `-l, --lang <lng>` | Set log language (eng OR rus) |
## Manual Build 🤓
1. Install [Rust](https://www.rust-lang.org/tools/install).
2. Clone the repo:
```
git clone https://github.com/nujievik/fb2-clean --depth 1
```
3. Enter the project directory:
```
cd fb2-clean
```
4. Build:
- GUI version:
```
cargo build --release --bin Fb2CleanGui --no-default-features --features gui
```
- CLI version:
```
cargo build --release
```
5. On success, the binary will be in **target/release/** directory.