Add wordarr: request & import manager for ebooks, comics and audiobooks
FastAPI + SQLite backend with vanilla-JS web UI. Requests via Open Library / Audible / AniList metadata search (or manual entry) with per-request target library selection. Manual import flow: scan the download dir, fuzzy-match files against missing requests, review, then move+rename into the library per configurable naming templates. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
3789ad0a37
commit
508ae5f26e
@@ -1,2 +1,40 @@
|
||||
# wordarr
|
||||
|
||||
Sonarr/Radarr-Style Request- & Import-Manager für **Ebooks**, **Comics/Mangas** und **Audiobooks**.
|
||||
|
||||
## Funktionsweise
|
||||
|
||||
1. **Anfragen**: Im Web-UI per Titel/Autor/ISBN suchen (Ebooks: Open Library · Audiobooks: Audible · Manga: AniList) oder manuell anlegen. Beim Request wählst du die **Ziel-Library** (z.B. deine 8 Bookorbit-Libraries oder die 3 Audiobookshelf-Libraries english/adult/kids). Der Titel erscheint als **Missing**.
|
||||
2. **Download-Ordner**: wordarr überwacht keinen Downloader aktiv — du legst Dateien selbst in den Download-Ordner (`/mnt/downloads`).
|
||||
3. **Import missing**: Im Tab *Import* den Ordner scannen. wordarr schlägt per Fuzzy-Matching Datei→Request-Zuordnungen vor; du bestätigst oder korrigierst. Beim Import wird die Datei nach dem Namensschema der Library **umbenannt und verschoben**. Ordner mit mehreren Audio-Dateien werden als ein Audiobook behandelt (`Titel - Part 01.mp3`, …).
|
||||
|
||||
## Setup (Docker)
|
||||
|
||||
```bash
|
||||
docker compose up -d --build
|
||||
# Web-UI: http://localhost:8787
|
||||
```
|
||||
|
||||
`docker-compose.yml` anpassen: `/mnt/downloads` und die Library-Roots so mounten, dass die in wordarr konfigurierten `root_path`-Werte im Container existieren. Download-Ordner und Libraries sollten auf demselben Mount liegen, sonst wird das Verschieben zum Kopieren+Löschen (funktioniert, dauert nur länger).
|
||||
|
||||
| Env | Default | Beschreibung |
|
||||
|---|---|---|
|
||||
| `WORDARR_DOWNLOAD_DIR` | `/mnt/downloads` | Gescannter Download-Ordner |
|
||||
| `WORDARR_CONFIG_DIR` | `/config` | Ablage der SQLite-DB |
|
||||
|
||||
## Namensschemata
|
||||
|
||||
Pro Library konfigurierbar (Tab *Libraries*), Platzhalter: `{Author}` `{Authors}` `{Title}` `{Year}` `{Series}` `{Volume}`.
|
||||
|
||||
Defaults:
|
||||
- Ebook: `{Author}/{Title} ({Year})` / `{Author} - {Title}`
|
||||
- Audiobook: `{Author}/{Title}` / `{Title}`
|
||||
- Comic: `{Series}` / `{Series} - Band {Volume}`
|
||||
|
||||
## Entwicklung
|
||||
|
||||
```bash
|
||||
python3 -m venv .venv && .venv/bin/pip install -e '.[dev]'
|
||||
.venv/bin/pytest
|
||||
WORDARR_CONFIG_DIR=./config WORDARR_DOWNLOAD_DIR=/mnt/downloads .venv/bin/uvicorn wordarr.main:app --port 8787
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user