4.6 KiB
Manga Downloader
Загрузчик манги с readmanga.ru и совместимых сайтов. Использует Playwright + Chromium для обхода JS-защиты (DDoS-Guard, антибот).
Работает в двух режимах:
- Веб-интерфейс — браузерная панель управления с realtime-прогрессом через WebSocket
- CLI — консольные команды через
docker compose run
📖 Подробная архитектурная документация: ARCHITECTURE.md
Требования
- Docker + Docker Compose
Быстрый старт
1. Собрать образ
docker compose build
2. Запустить веб-интерфейс
docker compose up -d
Откройте http://localhost:8000 — вставьте URL манги, выберите формат, нажмите «Добавить».
CLI-команды
Скачать мангу
# 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
Скачать определённые главы
# Главы с 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
Анализировать мангу (список глав без скачивания)
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 /Info + XMP (Dublin Core) — название, описание, язык, источник |
Для завершённых серий (pub_status = completed) в ComicInfo.xml записывается поле <Count> — Komga отображает прогресс чтения серии.