Base app
This commit is contained in:
113
README.md
113
README.md
@@ -1,11 +1,21 @@
|
||||
# Manga Downloader
|
||||
|
||||
Загрузчик манги с readmanga.ru. Использует Playwright + Chromium для обхода JS-защиты сайта.
|
||||
Загрузчик манги с readmanga.ru и совместимых сайтов. Использует Playwright + Chromium для обхода JS-защиты (DDoS-Guard, антибот).
|
||||
|
||||
Работает в двух режимах:
|
||||
- **Веб-интерфейс** — браузерная панель управления с realtime-прогрессом через WebSocket
|
||||
- **CLI** — консольные команды через `docker compose run`
|
||||
|
||||
📖 Подробная архитектурная документация: [ARCHITECTURE.md](ARCHITECTURE.md)
|
||||
|
||||
---
|
||||
|
||||
## Требования
|
||||
|
||||
- Docker + Docker Compose
|
||||
|
||||
---
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
### 1. Собрать образ
|
||||
@@ -14,49 +24,55 @@
|
||||
docker compose build
|
||||
```
|
||||
|
||||
### 2. Анализировать мангу (проверить доступность, список глав)
|
||||
### 2. Запустить веб-интерфейс
|
||||
|
||||
```bash
|
||||
docker compose run --rm manga analyze https://3.readmanga.ru/magicheskaia_bitva
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### 3. Скачать всю мангу
|
||||
Откройте **http://localhost:8000** — вставьте URL манги, выберите формат, нажмите «Добавить».
|
||||
|
||||
---
|
||||
|
||||
## CLI-команды
|
||||
|
||||
### Скачать мангу
|
||||
|
||||
```bash
|
||||
# CBZ (по умолчанию)
|
||||
docker compose run --rm manga download https://3.readmanga.ru/magicheskaia_bitva
|
||||
docker compose run --rm --entrypoint "" manga \
|
||||
python -m src.cli download https://3.readmanga.ru/magicheskaia_bitva
|
||||
|
||||
# PDF
|
||||
docker compose run --rm manga 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 pdf
|
||||
|
||||
# Все форматы сразу
|
||||
docker compose run --rm manga download https://3.readmanga.ru/magicheskaia_bitva --format all
|
||||
|
||||
# EPUB
|
||||
docker compose run --rm manga download https://3.readmanga.ru/magicheskaia_bitva --format epub
|
||||
docker compose run --rm --entrypoint "" manga \
|
||||
python -m src.cli download https://3.readmanga.ru/magicheskaia_bitva --format all
|
||||
```
|
||||
|
||||
### 4. Скачать определённые главы
|
||||
### Скачать определённые главы
|
||||
|
||||
```bash
|
||||
# Главы с 1 по 10
|
||||
docker compose run --rm manga download <URL> --chapters 1-10
|
||||
docker compose run --rm --entrypoint "" manga \
|
||||
python -m src.cli download <URL> --chapters 1-10
|
||||
|
||||
# Конкретные главы
|
||||
docker compose run --rm manga download <URL> --chapters 1,5,10
|
||||
|
||||
# Одна глава
|
||||
docker compose run --rm manga download <URL> --chapters 47
|
||||
docker compose run --rm --entrypoint "" manga \
|
||||
python -m src.cli download <URL> --chapters 1,5,10
|
||||
```
|
||||
|
||||
### 5. Продолжить прерванное скачивание
|
||||
|
||||
Скачивание автоматически продолжается с того места, где остановилось (флаг `--resume` включён по умолчанию).
|
||||
### Анализировать мангу (список глав без скачивания)
|
||||
|
||||
```bash
|
||||
docker compose run --rm manga download <URL> --resume
|
||||
docker compose run --rm --entrypoint "" manga \
|
||||
python -m src.cli analyze https://3.readmanga.ru/magicheskaia_bitva
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Выходные файлы
|
||||
|
||||
Файлы сохраняются в `./output/<название манги>/`:
|
||||
@@ -64,23 +80,54 @@ docker compose run --rm manga download <URL> --resume
|
||||
```
|
||||
output/
|
||||
Магическая_битва/
|
||||
v01_ch001.0.cbz
|
||||
v01_ch002.0.cbz
|
||||
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 отображает прогресс чтения серии.
|
||||
|
||||
```
|
||||
--format / -f cbz | pdf | epub | all (по умолчанию: cbz)
|
||||
--chapters / -c Диапазон или список глав
|
||||
--output / -o Папка для сохранения (по умолчанию: ./output)
|
||||
--resume Пропускать скачанные главы (по умолчанию: включено)
|
||||
--concurrency Параллельных загрузок (по умолчанию: 4)
|
||||
--verbose / -v Подробный вывод
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user