5 месяцев назад
История
README.md
HGraber
Загрузчик манги.
Возможности
- Скачивать мангу с определенных сайтов
- Просматривать скачанную мангу
- Экспортировать мангу в формат для читалок
Связанные проекты
- HGraber UI - пользовательский интерфейс написанный на flutter (поддерживает не 100% функционала)
- HGraber tools - прикладные утилиты для проекта (в основном для реализации
Server
)
Запуск
Для запуска версии в RAM достаточно выполнить команду
make demo
Сравнение реализаций
Все реализации поддерживают одинаковый функционал, за отличиями описанным в таблице
Реализация | Файловое хранилище | БД | Поддержка агента |
---|---|---|---|
Simple | filesystem | JDB | ❌ - Отсутствует |
InMemory | InMemory | JDB (memory) | ✅ - Есть |
Server | fileserver | PostgreSQL | ✅ - Есть |
Устройство
Всего полная система может состоять из нескольких сервисов:
- Внешнее файловое хранилище
- Обязательно для сервера
- Отсутствует в InMemory и простой версии
- Предназначен для работы с удаленной внешней системой (грубо говоря MinIO на супер минималках)
- Сам HGraber
- Обрабатывает мангу (если нет агента)
- Позволяет просматривать мангу
- Позволяет ее выгружать
- Агент
- Опционален для сервера
- Предназначен для обработки манги с конкретных сайтов
- Основная цель для него это сделать возможность добавлять любые сайты без влияния на основной код HGraber
- Дополнительно в рамках конкретных агентов можно поддержать различные особенности сайтов, например авторизацию
TODO
- Улучшить конфигурацию агентов (размеры очередей, лимиты и т.п.)
- Улучшить вывод атрибутов в slog
- Добавить API для того чтобы получать актуальные данные для страницы (сейчас не будет обновляться рейтинг при переключении между страницами)
Планы на 5-ю версию
- Отказаться от поддержки всех реализаций кроме
Server
- Удалить реализацию агента (кроме сервера для подключения) и парсеров
- Пояснение - агент будет использоваться исключительно как внешняя сущность
- Примечание - примитивная реализация агента будет представлена в отдельном репозитории
- Отказаться от пользовательского интерфейса в данном репозитории (оставить только API)
- Пояснение - будет реализован внешний клиент или доработан существующий
- Добавить новый функционал:
- Дедупликация данных - на основе прототипов из репозитория tools
- Возможны варианты с удалением дублей
- Создание перестроенных книг - на основании существующих
- Книга будет в отдельной таблице
- Данные страниц будут вида
buildedBookID | buildedPageNumber | originBookID | originPageNumber
- Полноценные фильтры и поиск
- Расширение данных оценок
- Полный отказ от текущей системы оценок (будет потеря данных рейтингов)
- Добавление более детальных оценок для книги (как общий обзор на нее)
- Добавление более простых оценок для страницы - не оценено, понравилось, идеально
- Пояснение - при 5-ти бальной системе оценки как правило 3 и выше, а оценки 1 и 2 не ставятся и вместо них страница просто пропускается
- Загрузка данных книг, без парсинга
- Пояснение - сейчас в систему данные можно добавить только если они пройдут процесс парсинга
- Дедупликация данных - на основе прототипов из репозитория tools
Конвейеры
0 успешных
0 с ошибкой