README.md

HGraber

Загрузчик манги.

Возможности

  1. Скачивать мангу с определенных сайтов
  2. Просматривать скачанную мангу
  3. Экспортировать мангу в формат для читалок

Связанные проекты

  • HGraber UI - пользовательский интерфейс написанный на flutter (поддерживает не 100% функционала)
  • HGraber tools - прикладные утилиты для проекта (в основном для реализации Server)

Запуск

Для запуска версии в RAM достаточно выполнить команду

make demo

Сравнение реализаций

Все реализации поддерживают одинаковый функционал, за отличиями описанным в таблице

Реализация Файловое хранилище БД Поддержка агента
Simple filesystem JDB ❌ - Отсутствует
InMemory InMemory JDB (memory) ✅ - Есть
Server fileserver PostgreSQL ✅ - Есть

Устройство

Всего полная система может состоять из нескольких сервисов:

  1. Внешнее файловое хранилище
    • Обязательно для сервера
    • Отсутствует в InMemory и простой версии
    • Предназначен для работы с удаленной внешней системой (грубо говоря MinIO на супер минималках)
  2. Сам HGraber
    • Обрабатывает мангу (если нет агента)
    • Позволяет просматривать мангу
    • Позволяет ее выгружать
  3. Агент
    • Опционален для сервера
    • Предназначен для обработки манги с конкретных сайтов
    • Основная цель для него это сделать возможность добавлять любые сайты без влияния на основной код HGraber
    • Дополнительно в рамках конкретных агентов можно поддержать различные особенности сайтов, например авторизацию

Схема сервера

TODO

  1. Улучшить конфигурацию агентов (размеры очередей, лимиты и т.п.)
  2. Улучшить вывод атрибутов в slog
  3. Добавить API для того чтобы получать актуальные данные для страницы (сейчас не будет обновляться рейтинг при переключении между страницами)

Планы на 5-ю версию

  1. Отказаться от поддержки всех реализаций кроме Server
  2. Удалить реализацию агента (кроме сервера для подключения) и парсеров
    • Пояснение - агент будет использоваться исключительно как внешняя сущность
    • Примечание - примитивная реализация агента будет представлена в отдельном репозитории
  3. Отказаться от пользовательского интерфейса в данном репозитории (оставить только API)
    • Пояснение - будет реализован внешний клиент или доработан существующий
  4. Добавить новый функционал:
    • Дедупликация данных - на основе прототипов из репозитория tools
      • Возможны варианты с удалением дублей
    • Создание перестроенных книг - на основании существующих
      • Книга будет в отдельной таблице
      • Данные страниц будут вида buildedBookID | buildedPageNumber | originBookID | originPageNumber
    • Полноценные фильтры и поиск
    • Расширение данных оценок
      • Полный отказ от текущей системы оценок (будет потеря данных рейтингов)
      • Добавление более детальных оценок для книги (как общий обзор на нее)
      • Добавление более простых оценок для страницы - не оценено, понравилось, идеально
        • Пояснение - при 5-ти бальной системе оценки как правило 3 и выше, а оценки 1 и 2 не ставятся и вместо них страница просто пропускается
    • Загрузка данных книг, без парсинга
      • Пояснение - сейчас в систему данные можно добавить только если они пройдут процесс парсинга
Описание

Опишите проект

Конвейеры
0 успешных
0 с ошибкой