Files
manga/README.md
2026-04-29 16:50:04 +03:00

134 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Manga Downloader
Загрузчик манги с readmanga.ru и совместимых сайтов. Использует Playwright + Chromium для обхода JS-защиты (DDoS-Guard, антибот).
Работает в двух режимах:
- **Веб-интерфейс** — браузерная панель управления с realtime-прогрессом через WebSocket
- **CLI** — консольные команды через `docker compose run`
📖 Подробная архитектурная документация: [ARCHITECTURE.md](ARCHITECTURE.md)
---
## Требования
- Docker + Docker Compose
---
## Быстрый старт
### 1. Собрать образ
```bash
docker compose build
```
### 2. Запустить веб-интерфейс
```bash
docker compose up -d
```
Откройте **http://localhost:8000** — вставьте URL манги, выберите формат, нажмите «Добавить».
---
## CLI-команды
### Скачать мангу
```bash
# CBZ (по умолчанию)
docker compose run --rm --entrypoint "" manga \
python -m src.cli download https://3.readmanga.ru/magicheskaia_bitva
# PDF
docker compose run --rm --entrypoint "" manga \
python -m src.cli download https://3.readmanga.ru/magicheskaia_bitva --format pdf
# Все форматы сразу
docker compose run --rm --entrypoint "" manga \
python -m src.cli download https://3.readmanga.ru/magicheskaia_bitva --format all
```
### Скачать определённые главы
```bash
# Главы с 1 по 10
docker compose run --rm --entrypoint "" manga \
python -m src.cli download <URL> --chapters 1-10
# Конкретные главы
docker compose run --rm --entrypoint "" manga \
python -m src.cli download <URL> --chapters 1,5,10
```
### Анализировать мангу (список глав без скачивания)
```bash
docker compose run --rm --entrypoint "" manga \
python -m src.cli analyze https://3.readmanga.ru/magicheskaia_bitva
```
---
## Выходные файлы
Файлы сохраняются в `./output/<название манги>/`:
```
output/
Магическая_битва/
v01_ch0001.0.cbz
v01_ch0002.0.cbz
...
```
Состояние хранится в `./state/progress.db` (SQLite). Логи — в `./state/manga.log`.
---
## Параметры CLI
| Флаг | Default | Описание |
|------|---------|---------|
| `--format / -f` | `cbz` | `cbz` \| `pdf` \| `epub` \| `all` |
| `--chapters / -c` | — | Диапазон: `1-10`, `5`, `1,3,7` |
| `--output / -o` | `./output` | Папка для сохранения |
| `--resume` | включён | Пропускать уже скачанные главы |
| `--force / -F` | — | Игнорировать БД, скачать заново |
| `--concurrency` | `4` | Параллельных загрузок |
| `--verbose / -v` | — | Подробный вывод (DEBUG) |
---
## Конфигурация (docker-compose.yml)
| Переменная | Default | Описание |
|------------|---------|---------|
| `CHAPTER_CONCURRENCY` | `3` | Глав загружается параллельно |
| `UPDATE_INTERVAL_HOURS` | `6` | Интервал авто-проверки новых глав (часы) |
---
## Возобновление прерванной загрузки
Загрузка автоматически продолжается с места остановки — состояние хранится в БД. При перезапуске контейнера незавершённые задачи восстанавливаются в очередь.
---
## Метаданные (Komga и другие читалки)
Каждый скачанный файл содержит полные метаданные серии и главы:
| Формат | Метаданные |
|--------|-----------|
| **CBZ** | `ComicInfo.xml` (Anansi v2.1) — серия, номер, том, описание, жанры, язык, ориентация (право→лево), ссылка на источник |
| **EPUB** | Dublin Core + `calibre:series` + EPUB3 `belongs-to-collection` — серия, описание, порядок глав |
| **PDF** | PDF `/Info` + XMP (Dublin Core) — название, описание, язык, источник |
Для завершённых серий (`pub_status = completed`) в `ComicInfo.xml` записывается поле `<Count>` — Komga отображает прогресс чтения серии.