Melon – это модульная система управления парсерами манги и ранобэ, способная получать информацию о тайтлах, сохранять её в формате JSON, запрашивать обновления и собирать контент в удобный для ознакомления формат.
Мы уважаем труд сотрудников сайтов, и потому не поставляем никаких решений, связанных с нелегальным получением доступа к платному контенту, а также для снижения нагрузки на эти ресурсы задаём небольшую задержку между запросами.
Проект приветствует добавление парсеров сторонними разработчиками. Для этого создана и постоянно актуализируется подробная документация:
git -v
python3 -V- Клонируйте репозиторий Melon рекурсивно (для автоматического включения подмодулей) и перейдите в его каталог.
git clone https://github.com/Otaku-Melons/Melon --recursive
cd Melon- Создайте вирутальное окружение Python, после чего активируйте его и установите зависимости.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- Запустите модуль помощи по установке Melon.
python main.py install -all
deactivate- После этого вы сможете использовать Melon внутри виртуального окружения, не захламляющего вашу систему пакетами. Для ознакомления с доступными командами выполните:
source .venv/bin/activate
melon helpWarning
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 parsernamepodman 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.
Данный раздел содержит обязательные базовые параметры парсера.
"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Задаёт интервал в секундах, выжидаемый между последовательными запросами к серверу.
Здесь указываются опциональные фильтры контента. Поддерживается два типа данных: текст и изображение (это отображается в названиях ключей). Сама секция является опциональной и может быть удалена из настроек.
"text_regexs": []Список регулярных выражений для поиска удаляемых строк.
"text_strings": []Список удаляемых строк.
"image_md5": []Список MD5-хэшей игнорируемых изображений.
"image_min_height": nullМинимальная высота валидного изображения.
"image_min_width": nullМинимальная ширина валидного изображения.
"image_max_height": nullМаксимальная высота валидного изображения.
"image_max_width": nullМаксимальная ширина валидного изображения.
Данный раздел описывает данные прокси-сервера, использующегося для установки соединения с ресурсом.
"enable": falseПереключает использование прокси-сервера.
"host": ""IP-адрес прокси-сервера.
"port": ""Порт прокси-сервера.
"login": ""Логин для авторизации на прокси-сервере. Необязательный параметр для публичных серверов.
"password": ""Пароль для авторизации на прокси-сервере. Необязательный параметр для публичных серверов.
Данный раздел содержит кастомные параметры отдельных парсеров, не поддающиеся унификации.
Copyright © DUB1401. 2024-2026.