Skip to content

Repository files navigation

ReUltimateCopyManager

Кроссплатформенный загрузчик книг с различных ресурсов.

Все действия происходят на устройстве, без отправки учетных данных на сторонние сервера.

GitHub Release Telegram License

[ Реинкарнация JS юзерскрипта Ultimate Copy Manager, созданного для Telegram-канала BooksFine ]

Основные функции

  • Загрузка бесплатных и купленных книг с запретом на скачивание.
  • Поддерживаемые форматы: fb2, fb2.zip, epub (на базе собственной библиотеки dart_book).
  • Настройка шаблона названия файла и пути сохранения.
  • Встроенный браузер для открытия книг и авторизации.
  • Быстрое открытие книги через системное меню «Поделиться» (Android).
  • Список недавних книг.
  • Подробный прогресс загрузки изображений.
  • OTA-обновления со списком изменений.
  • (В планах) CLI-версия для терминала и скриптов.

Поддерживаемые ресурсы

Платформы и требования

  • Android: 7.0 (API 24) и выше.
  • Windows: Windows 10 (1803) и выше, WebView2 (Microsoft Edge).
  • Linux: Ubuntu 20.04+ / Debian 11+ (WebKitGTK, GTK 3).
  • macOS: macOS 12.0 (Monterey) и выше.
  • iOS: iOS 15.6 и выше (Sideloading).

Установка

🍏 macOS — Инструкция по установке

При первом запуске неподписанного приложения на macOS Gatekeeper может заблокировать открытие.

  1. Кликните правой кнопкой мыши (или двумя пальцами по тачпаду) по ReUCM.app $\rightarrow$ выберите Открыть (Open) $\rightarrow$ нажмите Открыть в диалоговом окне.
  2. Либо перейдите в Системные настройки $\rightarrow$ Конфиденциальность и безопасность $\rightarrow$ прокрутите вниз до блока Безопасность $\rightarrow$ нажмите Всё равно открыть (Open Anyway).
  3. Также можно снять атрибут карантина через Терминал: xattr -cr /Applications/ReUCM.app
📱 iOS — Инструкция по установке

Файл .ipa поставляется для установки методом Sideloading (без подписи Apple Developer):

Разработка

Структура монорепозитория

  • re_ucm_core — pure-Dart ядро (интерфейсы Portal, схемы настроек, модели прогресса).
  • re_ucm_lib — pure-Dart библиотека бизнес-логики (хранилище Sembast, экспорт в изолятах, шаблонизатор путей).
  • portals/ — модули поддержки внешних ресурсов:
  • plugins/ — вспомогательные локальные плагины и стабы для платформ (zikzak_share_handler_windows, zikzak_share_handler_linux).
  • re_ucm_app — основное Flutter-приложение (Android, Windows, Linux, macOS, iOS).

Сборка и запуск

# Получение зависимостей во всем воркспейсе
flutter pub get

# Генерация кода (MobX, Freezed, Retrofit)
dart run build_runner build -d --workspace

# Запуск приложения
cd re_ucm_app
flutter run

Добавление нового ресурса

Все основные интерфейсы находятся в re_ucm_core/.

Для добавления модуля сервиса необходимо:

  1. Создать новый Dart-пакет в директории portals/ (например, portals/re_ucm_myportal).
  2. Добавить новый пакет в секцию workspace: в корневом pubspec.yaml и в зависимости re_ucm_app/pubspec.yaml.
  3. Реализовать интерфейсы Portal и PortalService из re_ucm_core, используя dart_book.
  4. Зарегистрировать портал в PortalFactory.registerAll([...]) в re_ucm_app/lib/core/di.dart.

About

Кроссплатформенный загрузчик книг с различных ресурсов (author.today, ficbook.net) в fb2 и epub.

Topics

Resources

Contributing

Stars

7 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages