2026-04-30 17:45:16 +03:00
upd
2026-04-30 17:45:16 +03:00
upd
2026-04-30 17:45:16 +03:00
2026-04-29 16:50:04 +03:00
2026-04-29 16:50:04 +03:00
upd
2026-04-30 17:45:16 +03:00
2026-04-29 01:53:16 +03:00
2026-04-29 01:53:16 +03:00
upd
2026-04-30 17:45:16 +03:00
2026-04-29 16:50:04 +03:00
upd
2026-04-30 17:45:16 +03:00
upd
2026-04-30 17:45:16 +03:00

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:

- AUTH_LOGIN=ваш_логин
- AUTH_PASSWORD=ваш_пароль

Если оба параметра заданы — интерфейс будет защищён формой входа. Сессия сохраняется в браузере на 30 дней, повторный вход не требуется.


Конфигурация (docker-compose.yml)

Переменная Default Описание
CHAPTER_CONCURRENCY 3 Глав загружается параллельно
UPDATE_SCHEDULE Расписание авто-проверки новых глав (cron-синтаксис). Если пусто — отключено
UPDATE_INTERVAL_HOURS Устаревший формат: число часов (конвертируется в cron автоматически)
AUTH_LOGIN / AUTH_PASSWORD Логин и пароль для веб-интерфейса

Примеры расписания (UPDATE_SCHEDULE)

0 */6 * * *   — каждые 6 часов
0 3 * * *     — каждый день в 03:00 UTC
0 3 * * MON   — каждый понедельник в 03:00
*/30 * * * *  — каждые 30 минут
              — (пусто) — планировщик отключён

Возобновление прерванной загрузки

Загрузка автоматически продолжается с места остановки — состояние хранится в БД. При перезапуске контейнера незавершённые задачи восстанавливаются в очередь.


Метаданные (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 отображает прогресс чтения серии.


Редактирование метаданных

Через веб-интерфейс можно изменить название серии, не перекачивая файлы:

  1. Кликните на строку манги → откроется окно деталей.
  2. Нажмите ✏️ Редактировать название.
  3. Измените «Название (ru)» и/или «Полное название».
  4. Нажмите Сохранить — метаданные обновятся автоматически во всех скачанных файлах.

Важно: папка на диске при этом не переименовывается. Чтобы переименовать папку — используйте отдельную функцию ниже.


Переименование папки

Через веб-интерфейс можно изменить имя папки, в которую сохраняются файлы манги:

  1. Кликните на строку манги → откроется окно деталей.
  2. Нажмите 📁 Переименовать папку.
  3. Введите новое имя (спецсимволы удалятся автоматически, пробелы заменятся на _).
  4. Нажмите Переименовать.

После переименования:

  • Физическая папка на диске будет переименована.
  • Пути ко всем уже скачанным файлам обновятся в БД.
  • Дозагрузка новых глав продолжится в переименованную папку.
Description
No description provided
Readme 1.4 MiB
Languages
Python 65.7%
HTML 34.1%
Dockerfile 0.2%