Skip to content

Парсер Remanga в формат JSON с активным менеджментом прокси-серверов.

License

Notifications You must be signed in to change notification settings

DUB1401/RemangaParser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Remanga Parser

Remanga Parser – это кроссплатформенный скрипт для получения данных с сайта Remanga в формате JSON. Он позволяет записать всю информацию о конкретной манге, а также её главах и содержании глав. В скрипт также встроен модуль сборки глав в виде ZIP-архивов.

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

  1. Скачать и распаковать последний релиз.
  2. Убедиться в доступности на вашем устройстве Python версии не старше 3.10.
  3. Открыть каталог со скриптом в терминале: можно воспользоваться командой cd или встроенными возможностями файлового менеджера.
  4. Создать виртуальное окружение Python.
python -m venv .venv
  1. Активировать вирутальное окружение.
# Для Windows.
.venv\Scripts\activate.bat

# Для Linux или MacOS.
source .venv/bin/activate
  1. Установить зависимости.
pip install -r requirements.txt
  1. Произвести настройку путём редактирования файлов Settings.json и Proxies.json.
  2. В вирутальном окружении указать для выполнения интерпретатором файл main.py, передать ему необходимые параметры и запустить.

Консольные команды

build [FILENAME*] [TARGET] [FLAGS] [KEYS]

Собирает из описательного файла архивы глав и помещает их в каталог Output внутри директории скрипта. Сборщик поддерживает следующие форматы: DMP-V1 и RN-V2.

Описание позиций:

  • FILENAME – описательный файл, использующийся для сборки. Обязательная позиция.
    • Аргумент – имя файла в директории тайтлов. Можно указывать как с расширением, так и без него.
  • TARGET – цель внутри описательного файла тайтла для сборки.
    • Флаги:
      • --branch – указывает, что необходимо выполнить сборку ветви с переданным ID;
      • --chapter – указывает, что необходимо выполнить сборку главы с переданным ID;
      • --volume – указывает, что необходимо выполнить сборку тома с переданным номером (автоматически выбирается ветвь с наибольшим количеством глав).

Список специфических флагов:

  • -cbz – указывает, что архивы на выходе должны иметь формат *.CBZ;
  • -no-delay – отключает интервал между последовательными запросами к серверу;
  • -no-filters – отключает фильтрацию слайдов размером менее 5 KB.

collect [FLAGS] [KEYS*]

Собирает коллекцию из алиасов тайтлов, соответствующих набору фильтров в каталоге Remanga. Собранные алиасы добавляются в файл Collection.txt в порядке убывания даты публикации.

Important

Такие фильтры, как page и ordering зарезервированы сборщиком и не могут быть использованы.

Список специфических флагов:

  • -f – удаляет содержимое файла коллекции перед записью.

Список специфических ключей:

  • --filters – задаёт набор фильтров из адресной строки, разделённых амперсантом & и заключённых в кавычки ".

convert [FILENAME*] [SOURCE_FORMAT*] [OUTPUT_FORMAT*]

Преобразует внутреннюю структуру JSON файлов определений тайтлов согласно одному из поддерживаемых форматов: DMP-V1, RN-V1, RN-V2.

Описание позиций:

  • FILENAME – цель для конвертирования. Обязательная позиция.
    • Аргумент – имя файла в директории тайтлов. Можно указывать как с расширением, так и без него.
    • Флаги:
      • -all – указывает, что необходимо конвертировать все локальные файлы JSON.
  • SOURCE_FORMAT – исходный формат. Обязательная позиция.
    • Аргумент – название формата из списка в любом регистре.
  • OUTPUT_FORMAT – целевой формат. Обязательная позиция.
    • Аргумент – название формата из списка в любом регистре.
    • Флаги:
      • -auto – берёт название формата из ключа format внутри описательного файла JSON.

get [URL*] [KEYS]

Загружает любое изображение с сайта Remanga.

Описание позиций:

  • URL – ссылка на загружаемое изображение. Обязательная позиция.
    • Аргумент – ссылка на изображение.

Список специфических ключей:

  • --dir – указывает директорию для сохранения файла;
  • --name – указывает новое название файла (не меняет расширение).

getcov [MANGA_SLUG*] [FLAGS]

Загружает обложки конкретного тайтла, алиас которого передан в качестве аргумента.

Список специфических флагов:

  • -f – включает перезапись уже загруженных обложек.

manage [FORMAT*] [RULE*]

Удаляет или перемещает файлы JSON, формат которых отличается от заданного.

Описание позиций:

  • FORMAT – целевой формат, которому должны принадлежать файлы, остающиеся в директории тайтлов.
    • Аргумент – название формата из списка в любом регистре.
  • RULE – правило обработки файлов, не соответствующих заданному формату.
    • Флаги:
      • -del – указывает, что файлы JSON, формат которых отличается от заданного, необходимо удалить.
    • Ключи:
      • --move – указывает, что файлы JSON, формат которых отличается от заданного, необходимо переместить в указанную директорию.

parse [TARGET*] [MODE] [FLAGS] [KEYS]

Проводит парсинг тайтла с указанным алиасом в JSON формат и загружает его обложки. В случае, если файл тайтла уже существует, дополнит его новыми данными.

Описание позиций:

  • TARGET – задаёт цель для парсинга. Обязательная позиция.
    • Аргумент – алиас тайтла для парсинга.
    • Флаги:
      • -collection – указывает, что список тайтлов для парсинга необходимо взять из файла Collection.txt;
      • -local – указывает для парсинга все локальные файлы.
  • MODE – указывает, какие данные необходимо парсить.
    • Флаги:
      • -onlydesc – будет произведено обновление только описательных данных тайтла, не затрагивающее ветви перевода и главы.

Список специфических флагов:

  • -f – включает перезапись уже загруженных обложек и существующих JSON файлов.

Список специфических ключей:

  • --from – указывает алиас тайтла, с момента обнаружения которого в коллекции тайтлов необходимо начать парсинг.

proxval [FLAGS]

Выполняет валидацию всех установленных прокси и выводит результат на экран.

Список специфических флагов:

  • -f – дополнительно производит сортировку прокси внутри файла определений согласно их статусам валидации.

repair [FILENAME*] [CHAPTER_ID*]

Обновляет и перезаписывает сведения о слайдах конкретной главы в локальном файле.

Описание позиций:

  • FILENAME – название локального файла, в котором необходимо исправить слайды. Обязательная позиция.
    • Аргумент – имя файла в директории тайтлов. Можно указывать как с расширением, так и без него.
  • CHAPTER_ID – ID главы в локальном файле, слайды которой необходимо заново получить с сервера. Обязательная позиция.
    • Ключи:
      • --chapter – указывает ID главы.

unstub

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


update [MODE] [FLAGS] [KEYS]

Проводит парсинг тайтлов, в которые за интервал времени, указанный в Settings.json, были добавлены новые главы.

Описание позиций:

  • MODE – указывает, какие данные необходимо обновлять. Может принимать следующие значения:
    • Флаги:
      • -onlydesc – будет произведено обновление только описательных данных тайтла, не затрагивающее ветви перевода и главы.

Список специфических флагов:

  • -f – включает перезапись уже загруженных обложек и существующих JSON файлов.

Список специфических ключей:

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

Неспецифические флаги

Данный тип флагов работает при добавлении к любой команде и выполняет отдельную от оной функцию.

  • -s – выключает компьютер после завершения работы скрипта.

Settings.json

"token": ""

Токен авторизации аккаунта Remanga для доступа к 18+ произведениям. Получить можно из одноимённого поля заголовка GET-запросов на страницах с контентом для взрослых.


"subscription": false

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


"format": "rn-v2"

Задаёт внутреннюю структуру описательных файлов тайтлов. Поддерживаются следующие форматы: DMP-V1, RN-V1, RN-V2.


"use-proxy": false

Указывает, следует ли использовать прокси-сервера.


"ru-links": true

Для региона РФ выделены отедльные сервера изображений. Если вы находитесь на территории данной страны или используете её прокси, рекомендуется включить данный параметр для преобразования базовых ссылок в русифицированные.


"check-updates-period": 60

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


"use-id-instead-slug": false

При включении данного параметра файлы JSON и директория обложек тайтла будут названы по ID произведения, а не по алиасу. При этом уже существующие данные можно автоматически обновить командой rp.py update -local.


"titles-directory": ""

Указывает, куда сохранять JSON-файлы тайтлов. При пустом значении будет создана папка Titles в исполняемой директории скрипта. Рекомендуется оформлять в соответствии с принципами путей в Linux, описанными здесь.


"covers-directory": ""

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


"filter-covers": true

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


"delay": 1

Задаёт интервал в секундах для паузы между GET-запросами к серверу.


"tries": 1

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

Proxies.json

"example": [
	{
		"https": "http://{USER_NAME}:{PASSWORD}@{IP}:{PORT}"
	},
	{
		"https": "{IP}:{PORT}"
	}
]

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

Warning

Несмотря на использование протокола HTTPS, в ключе прокси-сервера необходимо прописывать «http://». Это связано с особенностями обработки прокси в библиотеке requests.


"proxies": []

Задаёт указанные пользователем прокси-сервера для использования скриптом. При ошибках валидации, проводящейся перед каждым запросом, записи могут быть перемещены в нижеописанные разделы.


"forbidden-proxies": []

Сюда помещаются прокси, вызывающие ошибку 403 или срабатывание капчи CloudFlare при обращении к серверу Remanga.


"invalid-proxies": []

Сюда помещаются прокси, по той или иной причине не годящиеся для установления стабильной связи с сервером или отказавшие в доступе при валидации.

Copyright © DUB1401. 2022-2024.

About

Парсер Remanga в формат JSON с активным менеджментом прокси-серверов.

Topics

Resources

License

Stars

Watchers

Forks

Languages