Files
Prisma/README.md
T

105 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Lunaris
Lunaris — локальное Flutter-приложение для просмотра booru, gelbooru, rule34-подобных источников и artist-архивов в Pinterest-стиле.
Приложение не использует отдельный backend-сервер. Вся логика живет внутри Flutter: API-провайдеры, локальный кеш metadata, избранное, коллекции, история просмотров, фильтры, диагностика, загрузки и обновления.
## Что умеет
- Masonry feed с несколькими провайдерами и естественно перемешанной выдачей.
- Поиск тегов через chip-input с подсказками из активных API.
- Избранное, история просмотров, коллекции и пакетное добавление в коллекции.
- Smart blacklist/whitelist по тегам, группам тегов, рейтингу, провайдеру, типу файла и score.
- Details viewer для фото, GIF, видео и SWF на Windows.
- Удобный видеоплеер с fullscreen, repeat, mute, half-volume и сохранением настроек.
- Mobile image zoom: pinch-to-zoom и double tap в details.
- Опциональное автоскачивание новых favorites с отдельным удалением локального файла без удаления из избранного.
- Отдельная вкладка Artists для Kemono/Coomer без смешивания с обычной booru-лентой.
- Управление провайдерами, health-check и provider diagnostics.
- Кастомизация интерфейса: тема, язык RU/EN, акцентный цвет, видимые вкладки, beta/experimental обновления.
- Экспорт и импорт настроек JSON.
- Проверка Gitea Releases и скачивание APK/Windows installer прямо из приложения.
## Скачать
Готовые сборки лежат в Gitea Releases:
[Lunaris 2.0.1](https://gitea.rardogsynapse.online/RarDog/RuleGelApp/releases/tag/v2.0.1)
- `Lunaris-v2.0.1.apk` — APK для Android.
- `LunarisSetup-v2.0.1.exe` — установщик для Windows.
- `LunarisPortable-v2.0.1.zip` — portable-версия для Windows.
## Провайдеры
Обычный feed:
- Gelbooru
- Rule34
- Safebooru
- Konachan
- Yande.re
- e621 / e926
- Xbooru
- CosBooru
- Realbooru отключен по умолчанию, если публичный API недоступен
Artists flow:
- Kemono
- Coomer
Kemono/Coomer остаются отдельным разделом Artists и не попадают в общий booru feed.
## Архитектура
- `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` — приложение, роутер, тема, локализация, motion и responsive helpers.
- `lib/shared/widgets` — общие UI-компоненты.
- `lib/features` — экраны и контроллеры фич.
## Запуск
```bash
flutter pub get
flutter run -d windows
flutter run -d android
```
## Сборка
```bash
flutter analyze
flutter test
flutter build apk
flutter build windows
```
Windows installer собирается через Inno Setup:
```powershell
ISCC.exe installer\Lunaris.iss
```
## Как добавить провайдера
1. Создать класс, реализующий `ContentProvider`.
2. Добавить mapper к единой модели `Post`.
3. Зарегистрировать `apiType` в `ProviderFactory`.
4. Добавить seed config в `ProviderRepository`, если провайдер нужен по умолчанию.
5. Добавить тесты parser/provider factory.
## Безопасность
- Feed работает только с metadata/preview и не скачивает original/full files автоматически.
- Загрузка файлов происходит только по явному действию пользователя или при включенной настройке auto-download favorites.
- Приложение уважает API и rate limits сайтов.
- NSFW/blur/blacklist настраиваются локально.
- API keys/custom headers хранятся локально и экспортируются только через явный export settings.
- Локальные пути скачанных файлов не попадают в JSON export/import.