Skip to content

Модульный парсер манги и ранобэ с поддержкой множества источников контента.

License

Notifications You must be signed in to change notification settings

otaku-melons/Melon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Melon

Melon – это модульная система управления парсерами манги и ранобэ, способная получать информацию о тайтлах, сохранять её в формате JSON, запрашивать обновления и собирать контент в удобный для ознакомления формат.

Мы уважаем труд сотрудников сайтов, и потому не поставляем никаких решений, связанных с нелегальным получением доступа к платному контенту, а также для снижения нагрузки на эти ресурсы задаём небольшую задержку между запросами.

Проект приветствует добавление парсеров сторонними разработчиками. Для этого создана и постоянно актуализируется подробная документация:

Порядок установки и использования

Python скрипт

  1. Для установки необходимо наличие системы Git и Python версии 3.10 или новее на вашем устройстве.
git -v
python3 -V
  1. Клонируйте репозиторий Melon рекурсивно (для автоматического включения подмодулей) и перейдите в его каталог.
git clone https://github.com/Otaku-Melons/Melon --recursive
cd Melon
  1. Создайте вирутальное окружение Python, после чего активируйте его и установите зависимости.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
  1. Запустите модуль помощи по установке Melon.
python main.py install -all
deactivate
  1. После этого вы сможете использовать Melon внутри виртуального окружения, не захламляющего вашу систему пакетами. Для ознакомления с доступными командами выполните:
source .venv/bin/activate
melon help

Warning

Melon не проходит тестирование на Windows, поскольку эта ОС не является целевой платформой, но мы всегда рады обратной связи. Кроме того, на Windows требуется использовать .venv\Scripts\activate вместо source .venv/bin/activate.

Контейнер

Вместе с Melon поставляется Containerfile, благодаря OCI совместимый с Docker, Podman и некоторыми другими поддерживающими данный стандарт системами.

Для корректной работы требуется проброс изменяемых каталогов, что может потребовать написания Shell-скрипта для удобства или Compose-файла.

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

# Создание каталогов на хосте.
mkdir ~/Melon
cd ~/Melon
mkdir Configs Logs Output Temp
# Создание выходных каталогов парсера.
cd ~/Melon/Output
mkdir -p parsername/archives
mkdir parsername/images
mkdir parsername/titles
# Запуск команды Melon.
./run.sh parse title-slug --use parsername
run.sh
podman run --rm \
  -v ~/Melon/Output:/app/Output:Z \
  -v ~/Melon/Configs:/app/Configs:Z \
  -v ~/Melon/Logs:/app/Logs:Z \
  -v ~/Melon/Temp:/app/Temp:Z \
  melon "$@"

В данном файле melon является идентификатором образа.

Выше представлена лишь одна из множества реализаций, чья основная задача – наглядность потребностей Melon. Реальные сценарии использования могут значительно отличаться.

Настройки

Для каждого парсера поставляется файл settings.json. Melon ищет его сразу в директории Configs, а потом в каталоге самого модуля. Настоятельно рекомендуем редактировать этот файл только внутри Configs, это позволит избежать утраты данных при переустановке парсеров, а также поддерживает неизменяемое состояние модулей.

Структура файла настроек унифицирована, последний обязан содержать следующие разделы: common, filters, proxies, custom.

common

Данный раздел содержит обязательные базовые параметры парсера.


"archives_directory": ""

Указывает, куда сохранять построенный контент. При пустом значении будет создана директория Output/{PARSER_NAME}/archives в каталоге запуска Melon. Рекомендуется оформлять в соответствии с принципами путей в GNU/Linux.


"images_directory": ""

Указывает, куда сохранять связанные с контентом изображения: обложки тайтлов, иллюстрации, портреты персонажей. При пустом значении будет создана директория Output/{PARSER_NAME}/images в каталоге запуска Melon (для каждого тайтла создаётся дополнительный вложенный каталог с названием в виде используемого имени описательного файла). Рекомендуется оформлять в соответствии с принципами путей в GNU/Linux.


"titles_directory": ""

Указывает, куда сохранять описательные файлы. При пустом значении будет создана директория Output/{PARSER_NAME}/titles в каталоге запуска Melon. Рекомендуется оформлять в соответствии с принципами путей в GNU/Linux.


"bad_image_stub": ""

Указывает путь к изображению, которое будет заменять содержимое загружаемого слайда, по определённым критериям не являющегося валидным (битый файл, очень малый размер, неверный формат).


"pretty": false

Включает обработку контента для улучшения качества. Например, удаляет точки в конце названий глав манги или пустые абзацы из ранобэ.


"use_id_as_filename": false

Указывает способ именования описательных файлов и зависимых каталогов. При активации будет использоваться целочисленный идентификатор, по умолчанию – алиас.


"sizing_images": false

Указывает, следует ли пытаться найти данные о разрешении изображений и заносить их в описательный файл.


"retries": 1

Указывает количество повторов запроса при неудачном выполнении.


"delay": 1

Задаёт интервал в секундах, выжидаемый между последовательными запросами к серверу.

filters

Здесь указываются опциональные фильтры контента. Поддерживается два типа данных: текст и изображение (это отображается в названиях ключей). Сама секция является опциональной и может быть удалена из настроек.


"text_regexs": []

Список регулярных выражений для поиска удаляемых строк.


"text_strings": []

Список удаляемых строк.


"image_md5": []

Список MD5-хэшей игнорируемых изображений.


"image_min_height": null

Минимальная высота валидного изображения.


"image_min_width": null

Минимальная ширина валидного изображения.


"image_max_height": null

Максимальная высота валидного изображения.


"image_max_width": null

Максимальная ширина валидного изображения.

proxy

Данный раздел описывает данные прокси-сервера, использующегося для установки соединения с ресурсом.


"enable": false

Переключает использование прокси-сервера.


"host": ""

IP-адрес прокси-сервера.


"port": ""

Порт прокси-сервера.


"login": ""

Логин для авторизации на прокси-сервере. Необязательный параметр для публичных серверов.


"password": ""

Пароль для авторизации на прокси-сервере. Необязательный параметр для публичных серверов.

custom

Данный раздел содержит кастомные параметры отдельных парсеров, не поддающиеся унификации.

Copyright © DUB1401. 2024-2026.

About

Модульный парсер манги и ранобэ с поддержкой множества источников контента.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published