Files
Prisma/README.md
T

9.5 KiB
Raw Blame History

Lunaris

Lunaris - локальное Flutter-приложение для просмотра booru/gelbooru/rule34-подобных источников в Pinterest-стиле.

Приложение не использует отдельный backend-сервер. Вся логика живет внутри Flutter: API-провайдеры, кэш metadata, избранное, коллекции, история просмотров, настройки, диагностика, фильтры и обновления.

Возможности

  • Masonry feed СЃ несколькими провайдерами Рё перемешанной выдачей All providers.
  • РџРѕРёСЃРє тегов через chip-input: ввел тег, нажал пробел или Enter, тег стал отдельным элементом.
  • Подсказки тегов РёР· API активных провайдеров.
  • Избранное, коллекции Рё отдельная вкладка Viewed.
  • Smart blacklist/whitelist РїРѕ тегам, группам тегов, рейтингу, провайдеру, типу файла Рё score.
  • Details viewer для фото, GIF, видео Рё SWF РЅР° Windows.
  • Видео-плеер СЃ fullscreen, repeat, mute, half-volume Рё сохранением выбранных настроек.
  • Отдельная вкладка Artists для Kemono/Coomer: РїРѕРёСЃРє авторов Рё просмотр РёС… работ без смешивания СЃ обычным booru feed.
  • Управление провайдерами, health-check Рё provider diagnostics.
  • Р­РєСЃРїРѕСЂС‚ Рё РёРјРїРѕСЂС‚ настроек JSON.
  • Автопроверка обновлений через Gitea Releases, скачивание Рё открытие APK/Windows installer РїСЂСЏРјРѕ РёР· приложения.

Скачать

Готовые сборки лежат в Gitea Releases:

Lunaris v1.1.2 Experimental

  • Lunaris-v1.1.2-experimental.apk - APK для Android.
  • LunarisSetup-v1.1.2-experimental.exe - установщик для Windows.
  • LunarisPortable-v1.1.2-experimental.zip - portable-версия для Windows.

Стек

  • Flutter, Dart, Riverpod, go_router
  • Dio, Isar, connectivity_plus
  • cached_network_image, flutter_staggered_grid_view
  • media_kit для видео
  • webview_windows + Ruffle fallback для SWF РЅР° Windows

Архитектура

Lunaris - Flutter-монолит. UI не дублирует backend-логику, а вызывает локальные сервисы через Riverpod.

  • lib/core - HTTP, база, РєСЌС€, ошибки, Result Рё утилиты.
  • lib/backend/models - доменные модели.
  • lib/backend/providers - API-провайдеры Рё ProviderManager.
  • lib/backend/repositories - доступ Рє локальному Isar-хранилищу.
  • lib/backend/services - Feed/Search/Favorites/Collections/Settings/Diagnostics/Downloads/Updates.
  • lib/backend/di - Riverpod providers для backend/core.
  • lib/app - приложение, роутер, тема Рё responsive helpers.
  • lib/shared/widgets - общие UI-компоненты.
  • lib/features - экраны Рё контроллеры фич.

Экраны

  • / - главный feed.
  • /search - РїРѕРёСЃРє Рё recent searches.
  • /post/:providerId/:postId - details viewer.
  • /favorites - избранное.
  • /viewed - история просмотренных постов.
  • /collections - коллекции.
  • /artists - РїРѕРёСЃРє авторов Kemono/Coomer.
  • /artists/:providerId/:service/:artistId - работы автора.
  • /providers - управление провайдерами.
  • /providers/check - диагностика провайдеров.
  • /settings - настройки.

Провайдеры по умолчанию

  • Gelbooru - https://gelbooru.com
  • Rule34 - https://api.rule34.xxx
  • Safebooru - https://safebooru.org
  • Konachan - https://konachan.com
  • Yande.re - https://yande.re
  • e621 - https://e621.net
  • e926 - https://e926.net
  • Xbooru - https://xbooru.com
  • CosBooru - https://cos.lycore.co
  • Kemono - https://kemono.su (только Artists)
  • Coomer - https://coomer.su (только Artists, выключен РїРѕ умолчанию)

Realbooru оставлен в списке, но выключен по умолчанию, потому что его публичный API сейчас нестабилен.

Поддерживаемые apiType: gelbooru, rule34, realbooru, danbooru, moebooru, e621, kemono, coomer.

Один упавший провайдер не ломает общий feed: ошибка сохраняется в diagnostics, остальные источники продолжают отдавать посты.

Как добавить провайдера

  1. Добавить mapper в lib/backend/mappers, если формат ответа отличается.
  2. Реализовать ContentProvider или artist-only ArtistProvider в lib/backend/providers.
  3. Зарегистрировать новый apiType в ProviderFactory.
  4. Добавить config через Providers UI или seed в ProviderRepository.

Запуск и сборка

flutter pub get
flutter analyze
flutter test
flutter run -d windows
flutter build windows
flutter build apk

Windows installer собирается через Inno Setup:

ISCC installer/Lunaris.iss

Безопасность

  • Feed работает СЃ preview/sample metadata Рё РЅРµ скачивает full files автоматически.
  • Скачивание фото/видео/SWF выполняется только РїРѕ СЏРІРЅРѕРјСѓ действию пользователя.
  • Приложение уважает rate limits Рё использует retry/backoff.
  • API keys/user data хранятся локально Рё попадают РІ export JSON только РїРѕ действию пользователя.