feat: полный ребрендинг интерфейса, User-Agent и системных служб в Prisma (v3.4.1)
Build and Release / Build Windows x64 (push) Has been cancelled
Build and Release / Build Windows x64 (push) Has been cancelled
This commit is contained in:
@@ -10,7 +10,7 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/RarDog/Prisma/releases"><img src="https://img.shields.io/badge/Version-3.4.0-8A2BE2?style=for-the-badge&logo=semver&logoColor=white" alt="Version 3.4.0" /></a>
|
<a href="https://github.com/RarDog/Prisma/releases"><img src="https://img.shields.io/badge/Version-3.4.1-8A2BE2?style=for-the-badge&logo=semver&logoColor=white" alt="Version 3.4.1" /></a>
|
||||||
<img src="https://img.shields.io/badge/Flutter-3.47+-02569B?style=for-the-badge&logo=flutter&logoColor=white" alt="Flutter" />
|
<img src="https://img.shields.io/badge/Flutter-3.47+-02569B?style=for-the-badge&logo=flutter&logoColor=white" alt="Flutter" />
|
||||||
<img src="https://img.shields.io/badge/Platform-Android%20%7C%20Linux%20%7C%20Windows-00C853?style=for-the-badge" alt="Platforms" />
|
<img src="https://img.shields.io/badge/Platform-Android%20%7C%20Linux%20%7C%20Windows-00C853?style=for-the-badge" alt="Platforms" />
|
||||||
<a href="https://github.com/RarDog/Prisma/wiki"><img src="https://img.shields.io/badge/Wiki-Documentation-FF6F00?style=for-the-badge&logo=gitbook&logoColor=white" alt="Wiki" /></a>
|
<a href="https://github.com/RarDog/Prisma/wiki"><img src="https://img.shields.io/badge/Wiki-Documentation-FF6F00?style=for-the-badge&logo=gitbook&logoColor=white" alt="Wiki" /></a>
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#define MyAppName "Lunaris"
|
#define MyAppName "Prisma"
|
||||||
#define MyAppVersion "2.0.1"
|
#define MyAppVersion "2.0.1"
|
||||||
#define MyAppPublisher "RarDog"
|
#define MyAppPublisher "RarDog"
|
||||||
#define MyAppExeName "gel_rule_app.exe"
|
#define MyAppExeName "gel_rule_app.exe"
|
||||||
@@ -13,7 +13,7 @@ DefaultGroupName={#MyAppName}
|
|||||||
DisableProgramGroupPage=yes
|
DisableProgramGroupPage=yes
|
||||||
PrivilegesRequired=lowest
|
PrivilegesRequired=lowest
|
||||||
OutputDir=..\dist
|
OutputDir=..\dist
|
||||||
OutputBaseFilename=LunarisSetup
|
OutputBaseFilename=PrismaSetup
|
||||||
SetupIconFile=..\windows\runner\resources\app_icon.ico
|
SetupIconFile=..\windows\runner\resources\app_icon.ico
|
||||||
Compression=lzma2
|
Compression=lzma2
|
||||||
SolidCompression=yes
|
SolidCompression=yes
|
||||||
+1
-1
@@ -97,7 +97,7 @@ class _AppOverlayState extends ConsumerState<_AppOverlay> {
|
|||||||
await showDialog<void>(
|
await showDialog<void>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) => AlertDialog(
|
builder: (context) => AlertDialog(
|
||||||
title: Text('${strings.appUpdateAvailable}: Lunaris ${info.version}'),
|
title: Text('${strings.appUpdateAvailable}: Prisma ${info.version}'),
|
||||||
content: ConstrainedBox(
|
content: ConstrainedBox(
|
||||||
constraints: const BoxConstraints(maxWidth: 520),
|
constraints: const BoxConstraints(maxWidth: 520),
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
const appDisplayVersion = '3.4.0';
|
const appDisplayVersion = '3.4.1';
|
||||||
const appBuildNumber = 74;
|
const appBuildNumber = 75;
|
||||||
const appReleaseChannel = 'Stable';
|
const appReleaseChannel = 'Stable';
|
||||||
|
|||||||
+71
-59
@@ -1,5 +1,14 @@
|
|||||||
const lunarisChangelog = [
|
const prismaChangelog = [
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
|
version: '3.4.1',
|
||||||
|
title: 'Полный ребрендинг интерфейса: заголовок ленты, окно «О приложении» и системные службы',
|
||||||
|
bullets: [
|
||||||
|
'Полное обновление названия в интерфейсе: заголовок в шапке ленты заменен на Prisma, обновлен логотип и карточка в диалоге «О приложении».',
|
||||||
|
'Окна обновлений и чейнджлогов: все диалоги проверки обновлений, чейнджлога и бета-версий теперь используют имя Prisma.',
|
||||||
|
'Системные службы и User-Agent: сетевой стек, экспорт резервных копий и кэш тегов переведены на Prisma с автоматической миграцией сохраненных данных.',
|
||||||
|
],
|
||||||
|
),
|
||||||
|
PrismaChange(
|
||||||
version: '3.4.0',
|
version: '3.4.0',
|
||||||
title: 'Ребрендинг в Prisma: новое имя, комфортная прокрутка анонсов и обновленные репозитории',
|
title: 'Ребрендинг в Prisma: новое имя, комфортная прокрутка анонсов и обновленные репозитории',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -8,7 +17,7 @@ const lunarisChangelog = [
|
|||||||
'Синхронизация репозиториев: репозитории на GitHub и Gitea переведены на Prisma, ссылки внутри приложения и служба автообновления переключены на новые адреса.',
|
'Синхронизация репозиториев: репозитории на GitHub и Gitea переведены на Prisma, ссылки внутри приложения и служба автообновления переключены на новые адреса.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.3.1',
|
version: '3.3.1',
|
||||||
title: 'Улучшенное разделение текстовых постов и облачных зеркал',
|
title: 'Улучшенное разделение текстовых постов и облачных зеркал',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -17,7 +26,7 @@ const lunarisChangelog = [
|
|||||||
'Чистый и нативный вид карточек: если у медиапоста есть только ссылки или только описание, отображается аккуратная монолитная секция с соответствующим заголовком и иконкой без лишних переключателей.',
|
'Чистый и нативный вид карточек: если у медиапоста есть только ссылки или только описание, отображается аккуратная монолитная секция с соответствующим заголовком и иконкой без лишних переключателей.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.3.0',
|
version: '3.3.0',
|
||||||
title: 'Редизайн личных сообщений и рассылок артиста, нативная поддержка текстовых публикаций',
|
title: 'Редизайн личных сообщений и рассылок артиста, нативная поддержка текстовых публикаций',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -28,7 +37,7 @@ const lunarisChangelog = [
|
|||||||
'Поддержка анонсов в Kemono и Coomer: API анонсов и персональных сообщений теперь полноценно работает для всех поддерживаемых провайдеров.',
|
'Поддержка анонсов в Kemono и Coomer: API анонсов и персональных сообщений теперь полноценно работает для всех поддерживаемых провайдеров.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.2.0',
|
version: '3.2.0',
|
||||||
title: 'Стабильный полноэкранный режим: сохранение воспроизведения, устранение вылетов плеера и чистый интерфейс',
|
title: 'Стабильный полноэкранный режим: сохранение воспроизведения, устранение вылетов плеера и чистый интерфейс',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -38,7 +47,7 @@ const lunarisChangelog = [
|
|||||||
'Быстрое скрытие и показ контролов: касание свободной области видео плавно переключает видимость панели управления, а при нажатии на кнопки таймер автоскрытия автоматически обновляется.',
|
'Быстрое скрытие и показ контролов: касание свободной области видео плавно переключает видимость панели управления, а при нажатии на кнопки таймер автоскрытия автоматически обновляется.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.1.9',
|
version: '3.1.9',
|
||||||
title: 'Полноэкранный плеер 2.0: мгновенный переход без задержек, жесты яркости и скраббинг с превью',
|
title: 'Полноэкранный плеер 2.0: мгновенный переход без задержек, жесты яркости и скраббинг с превью',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -48,7 +57,7 @@ const lunarisChangelog = [
|
|||||||
'Сброс яркости: при выходе из полноэкранного режима системный уровень яркости экрана аккуратно восстанавливается.',
|
'Сброс яркости: при выходе из полноэкранного режима системный уровень яркости экрана аккуратно восстанавливается.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.1.8',
|
version: '3.1.8',
|
||||||
title: 'Безупречный полноэкранный плеер: устранение остановки при развертывании и отзывчивые кнопки управления',
|
title: 'Безупречный полноэкранный плеер: устранение остановки при развертывании и отзывчивые кнопки управления',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -58,7 +67,7 @@ const lunarisChangelog = [
|
|||||||
'Синхронизация состояния при сворачивании: плеер точно запоминает состояние паузы/воспроизведения при выходе из полноэкранного режима обратно в пост.',
|
'Синхронизация состояния при сворачивании: плеер точно запоминает состояние паузы/воспроизведения при выходе из полноэкранного режима обратно в пост.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.1.7',
|
version: '3.1.7',
|
||||||
title: 'Устранение критического сбоя при открытии видеопоста (SIGSEGV в libmpv)',
|
title: 'Устранение критического сбоя при открытии видеопоста (SIGSEGV в libmpv)',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -67,7 +76,7 @@ const lunarisChangelog = [
|
|||||||
'Надежный фоллбэк при редких ошибках кодека: при несовместимости аппаратного декодера плеер бесшовно переключается на программный FFmpeg-декодер без риска краша.',
|
'Надежный фоллбэк при редких ошибках кодека: при несовместимости аппаратного декодера плеер бесшовно переключается на программный FFmpeg-декодер без риска краша.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.1.6',
|
version: '3.1.6',
|
||||||
title: 'Надежный полноэкранный плеер, сохранение провайдеров в поиске, громкость и устранение ошибки кодека',
|
title: 'Надежный полноэкранный плеер, сохранение провайдеров в поиске, громкость и устранение ошибки кодека',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -77,7 +86,7 @@ const lunarisChangelog = [
|
|||||||
'Автоматический fallback для ошибки Could not open codec: видеоплеер получил безопасные профили декодирования и автопереключение на программный лавк-декодер (FFmpeg software fallback) при редких сбоях аппаратного ускорения.',
|
'Автоматический fallback для ошибки Could not open codec: видеоплеер получил безопасные профили декодирования и автопереключение на программный лавк-декодер (FFmpeg software fallback) при редких сбоях аппаратного ускорения.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.1.5',
|
version: '3.1.5',
|
||||||
title: 'Сохранение громкости видео, исправление полноэкранного плеера, фильтрации и удобства комментариев',
|
title: 'Сохранение громкости видео, исправление полноэкранного плеера, фильтрации и удобства комментариев',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -88,7 +97,7 @@ const lunarisChangelog = [
|
|||||||
'Удобный доступ к комментариям в посте: увеличен отступ снизу в деталях поста и расширена зона клика блока комментариев, позволяя комфортно прокрутить их выше системных жестов навигации.',
|
'Удобный доступ к комментариям в посте: увеличен отступ снизу в деталях поста и расширена зона клика блока комментариев, позволяя комфортно прокрутить их выше системных жестов навигации.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.1.4',
|
version: '3.1.4',
|
||||||
title: 'Оптимизация видеоплеера — адаптивная высота и идеальное прилегание полосы воспроизведения',
|
title: 'Оптимизация видеоплеера — адаптивная высота и идеальное прилегание полосы воспроизведения',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -97,7 +106,7 @@ const lunarisChangelog = [
|
|||||||
'Компактные элементы управления: выровнены буферный трек и слайдер прокрутки, оптимизирован градиент затенения для максимальной видимости и удобства управления.',
|
'Компактные элементы управления: выровнены буферный трек и слайдер прокрутки, оптимизирован градиент затенения для максимальной видимости и удобства управления.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.1.3',
|
version: '3.1.3',
|
||||||
title: 'iPhone Liquid Glass — Источники, Проверка сети и Навигация назад по вкладкам',
|
title: 'iPhone Liquid Glass — Источники, Проверка сети и Навигация назад по вкладкам',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -107,7 +116,7 @@ const lunarisChangelog = [
|
|||||||
'Liquid Glass редизайн проверки состояния источников (Provider Check): карточка общих метрик сети (онлайн/офлайн, средний пинг), раскрывающиеся аккордеоны детальной диагностики, живые светодиодные LED-индикаторы статуса и кнопка одновременной проверки всех провайдеров.',
|
'Liquid Glass редизайн проверки состояния источников (Provider Check): карточка общих метрик сети (онлайн/офлайн, средний пинг), раскрывающиеся аккордеоны детальной диагностики, живые светодиодные LED-индикаторы статуса и кнопка одновременной проверки всех провайдеров.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.1.2',
|
version: '3.1.2',
|
||||||
title: 'Оптимизация производительности: устранение лагов при скролле к тегам',
|
title: 'Оптимизация производительности: устранение лагов при скролле к тегам',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -117,7 +126,7 @@ const lunarisChangelog = [
|
|||||||
'Интеллектуальный лимит начального отображения: оптимизировано первоначальное количество отображаемых тегов в огромных категориях с удобной кнопкой быстрого раскрытия.',
|
'Интеллектуальный лимит начального отображения: оптимизировано первоначальное количество отображаемых тегов в огромных категориях с удобной кнопкой быстрого раскрытия.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.1.1',
|
version: '3.1.1',
|
||||||
title: 'Деление тегов по стилю e621/Gelbooru/Rule34 и исправление поиска тегов со скобками',
|
title: 'Деление тегов по стилю e621/Gelbooru/Rule34 и исправление поиска тегов со скобками',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -129,7 +138,7 @@ const lunarisChangelog = [
|
|||||||
'Liquid Glass оформление блока тегов в детальном просмотре поста на мобильных и десктоп устройствах.',
|
'Liquid Glass оформление блока тегов в детальном просмотре поста на мобильных и десктоп устройствах.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.1.0',
|
version: '3.1.0',
|
||||||
title: 'iPhone Liquid Glass — Поиск, Избранное, История и исправление доступности',
|
title: 'iPhone Liquid Glass — Поиск, Избранное, История и исправление доступности',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -139,7 +148,7 @@ const lunarisChangelog = [
|
|||||||
'Тактильный отклик и стеклянные пилюли: быстрые операторы, категории, недавние запросы, фильтры медиа и переключатели разделов получили матовое оформление и вибрационный отклик Haptic Feedback.',
|
'Тактильный отклик и стеклянные пилюли: быстрые операторы, категории, недавние запросы, фильтры медиа и переключатели разделов получили матовое оформление и вибрационный отклик Haptic Feedback.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.0.9',
|
version: '3.0.9',
|
||||||
title: 'Коррекция позиции кнопки настроек и отображения кнопок JSON и бэкапа',
|
title: 'Коррекция позиции кнопки настроек и отображения кнопок JSON и бэкапа',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -148,7 +157,7 @@ const lunarisChangelog = [
|
|||||||
'Улучшенный дизайн и сетка кнопок экспорта/импорта: кнопки бэкапа и JSON организованы в симметричные аккуратные строки с яркими акцентными бейджами.',
|
'Улучшенный дизайн и сетка кнопок экспорта/импорта: кнопки бэкапа и JSON организованы в симметричные аккуратные строки с яркими акцентными бейджами.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.0.8',
|
version: '3.0.8',
|
||||||
title: 'iPhone Liquid Glass — раздел «Настройки» и парящая стеклянная кнопка',
|
title: 'iPhone Liquid Glass — раздел «Настройки» и парящая стеклянная кнопка',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -158,7 +167,7 @@ const lunarisChangelog = [
|
|||||||
'Стеклянная быстрая навигация по категориям: зафиксированная панель категорий с размытием фона и тактильным откликом при переключении разделов.',
|
'Стеклянная быстрая навигация по категориям: зафиксированная панель категорий с размытием фона и тактильным откликом при переключении разделов.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.0.7',
|
version: '3.0.7',
|
||||||
title: 'Liquid Glass Navigation Bar — парящая стеклянная панель и анимированная пилюля',
|
title: 'Liquid Glass Navigation Bar — парящая стеклянная панель и анимированная пилюля',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -168,7 +177,7 @@ const lunarisChangelog = [
|
|||||||
'Глубина контента: контент ленты, поиска и галереи плавно просвечивает и размывается под стеклянной панелью при прокрутке.',
|
'Глубина контента: контент ленты, поиска и галереи плавно просвечивает и размывается под стеклянной панелью при прокрутке.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.0.6',
|
version: '3.0.6',
|
||||||
title: 'Улучшение недавних запросов и отображения тегов',
|
title: 'Улучшение недавних запросов и отображения тегов',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -178,7 +187,7 @@ const lunarisChangelog = [
|
|||||||
'Удобное удаление: увеличенная область нажатия для кнопки удаления (крестика) предотвращает случайные нажатия на сам запрос.',
|
'Удобное удаление: увеличенная область нажатия для кнопки удаления (крестика) предотвращает случайные нажатия на сам запрос.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.0.5',
|
version: '3.0.5',
|
||||||
title: 'Интерактивные ссылки на соцсети и авторов в объявлениях и описаниях',
|
title: 'Интерактивные ссылки на соцсети и авторов в объявлениях и описаниях',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -187,7 +196,7 @@ const lunarisChangelog = [
|
|||||||
'Корректная очистка пунктуации: знаки препинания в конце URL (!, ?, :, ., ,, ;, >) больше не ломают ссылки.',
|
'Корректная очистка пунктуации: знаки препинания в конце URL (!, ?, :, ., ,, ;, >) больше не ломают ссылки.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '3.0.0',
|
version: '3.0.0',
|
||||||
title: 'Lunaris 3.0 — Глобальное обновление: Дизайн 2.0, Интеграция Pawchive и умная синхронизация',
|
title: 'Lunaris 3.0 — Глобальное обновление: Дизайн 2.0, Интеграция Pawchive и умная синхронизация',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -200,7 +209,7 @@ const lunarisChangelog = [
|
|||||||
'Исправление вёрстки: устранены переносы текста в заголовке окна аккаунтов и карточках пользователей на экранах смартфонов.',
|
'Исправление вёрстки: устранены переносы текста в заголовке окна аккаунтов и карточках пользователей на экранах смартфонов.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.10',
|
version: '2.3.10',
|
||||||
title: 'Выгрузка локального избранного в Pawchive и двусторонняя синхронизация',
|
title: 'Выгрузка локального избранного в Pawchive и двусторонняя синхронизация',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -210,7 +219,7 @@ const lunarisChangelog = [
|
|||||||
'Синхронизация в реальном времени с любых провайдеров: при добавлении автора в избранное в лентах Kemono, Coomer или Pawchive изменение мгновенно передаётся на сервер Pawchive.',
|
'Синхронизация в реальном времени с любых провайдеров: при добавлении автора в избранное в лентах Kemono, Coomer или Pawchive изменение мгновенно передаётся на сервер Pawchive.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.9',
|
version: '2.3.9',
|
||||||
title: 'Исправление входа и синхронизации аккаунтов Pawchive',
|
title: 'Исправление входа и синхронизации аккаунтов Pawchive',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -219,7 +228,7 @@ const lunarisChangelog = [
|
|||||||
'Информативные ошибки: понятные сообщения на русском при неверном пароле или сбое сети вместо сырых исключений Dio.',
|
'Информативные ошибки: понятные сообщения на русском при неверном пароле или сбое сети вместо сырых исключений Dio.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.8',
|
version: '2.3.8',
|
||||||
title: 'ABI-Aware Auto-Update — правильный APK для вашего процессора',
|
title: 'ABI-Aware Auto-Update — правильный APK для вашего процессора',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -229,7 +238,7 @@ const lunarisChangelog = [
|
|||||||
'Кеш ABI: архитектура определяется один раз за сеанс.',
|
'Кеш ABI: архитектура определяется один раз за сеанс.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.7',
|
version: '2.3.7',
|
||||||
title: 'Lazy Media Dimensions for Pawchive & Unknown-Size Providers',
|
title: 'Lazy Media Dimensions for Pawchive & Unknown-Size Providers',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -238,7 +247,7 @@ const lunarisChangelog = [
|
|||||||
'Session Cache: resolved image dimensions are cached in memory for the lifetime of the app so repeated visits to the same post do not trigger re-downloads.',
|
'Session Cache: resolved image dimensions are cached in memory for the lifetime of the app so repeated visits to the same post do not trigger re-downloads.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.6',
|
version: '2.3.6',
|
||||||
title: 'Pawchive Accounts Integration & Favorites Synchronization',
|
title: 'Pawchive Accounts Integration & Favorites Synchronization',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -249,7 +258,7 @@ const lunarisChangelog = [
|
|||||||
'Dedicated UI & Quick Access: manage connected accounts, view sync stats, and trigger synchronization from the Artists screen, Favorites modal, and Settings screen.',
|
'Dedicated UI & Quick Access: manage connected accounts, view sync stats, and trigger synchronization from the Artists screen, Favorites modal, and Settings screen.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.5',
|
version: '2.3.5',
|
||||||
title: 'Fullscreen Video Auto-Rotation & Orientation Controls',
|
title: 'Fullscreen Video Auto-Rotation & Orientation Controls',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -258,7 +267,7 @@ const lunarisChangelog = [
|
|||||||
'Clean Orientation Recovery: exiting fullscreen seamlessly restores system navigation bars (Edge-to-Edge) and restores unrestricted device sensor orientations.',
|
'Clean Orientation Recovery: exiting fullscreen seamlessly restores system navigation bars (Edge-to-Edge) and restores unrestricted device sensor orientations.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.4',
|
version: '2.3.4',
|
||||||
title: 'OverlayPortal Architecture & Search UI Unblocking',
|
title: 'OverlayPortal Architecture & Search UI Unblocking',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -269,7 +278,7 @@ const lunarisChangelog = [
|
|||||||
'Non-Blocking Outside Tap: tapping outside the suggestion dropdown smoothly dismisses suggestions while allowing the touch event to pass through directly to the underlying button or post.',
|
'Non-Blocking Outside Tap: tapping outside the suggestion dropdown smoothly dismisses suggestions while allowing the touch event to pass through directly to the underlying button or post.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.3',
|
version: '2.3.3',
|
||||||
title: 'Tag Suggestions Overlay Fix & Rule34 API Alignment',
|
title: 'Tag Suggestions Overlay Fix & Rule34 API Alignment',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -279,7 +288,7 @@ const lunarisChangelog = [
|
|||||||
'Rule34 Authentication & Outage Handling: added detection for "missing authentication", rate limits, and server overload/search down ("success": false) with informative guidance to enter API Key & User ID.',
|
'Rule34 Authentication & Outage Handling: added detection for "missing authentication", rate limits, and server overload/search down ("success": false) with informative guidance to enter API Key & User ID.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.2',
|
version: '2.3.2',
|
||||||
title: 'Gelbooru DAPI Compliance & Tag Query Optimization',
|
title: 'Gelbooru DAPI Compliance & Tag Query Optimization',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -289,7 +298,7 @@ const lunarisChangelog = [
|
|||||||
'Throttling & Auth Guidance: enhanced API credentials helper text and informative error messages with direct instructions to configure API Key & User ID from Gelbooru account options.',
|
'Throttling & Auth Guidance: enhanced API credentials helper text and informative error messages with direct instructions to configure API Key & User ID from Gelbooru account options.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.1',
|
version: '2.3.1',
|
||||||
title: 'Cloud Mirrors & Author Announcements Fixes',
|
title: 'Cloud Mirrors & Author Announcements Fixes',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -298,7 +307,7 @@ const lunarisChangelog = [
|
|||||||
'Author Announcements HTML Cleaning: stripped all raw <p style="">, <strong>, and formatting artifacts from artist announcements, rendering clean readable text and clickable service link chips.',
|
'Author Announcements HTML Cleaning: stripped all raw <p style="">, <strong>, and formatting artifacts from artist announcements, rendering clean readable text and clickable service link chips.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.3.0',
|
version: '2.3.0',
|
||||||
title: 'Artist Cloud Drives & External Video Mirrors',
|
title: 'Artist Cloud Drives & External Video Mirrors',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -310,7 +319,7 @@ const lunarisChangelog = [
|
|||||||
'Artist Commentary Card: formatted display of author notes, instructions, and text below post details.',
|
'Artist Commentary Card: formatted display of author notes, instructions, and text below post details.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.2.0',
|
version: '2.2.0',
|
||||||
title: 'Offline Mode Overhaul & Post Details Screen Redesign',
|
title: 'Offline Mode Overhaul & Post Details Screen Redesign',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -321,7 +330,7 @@ const lunarisChangelog = [
|
|||||||
'Unified Neighbor Strip & Tags Card: post neighbor thumbnail strip now available on both mobile and desktop, alongside modern rounded tag blocks and chat-bubble comments.',
|
'Unified Neighbor Strip & Tags Card: post neighbor thumbnail strip now available on both mobile and desktop, alongside modern rounded tag blocks and chat-bubble comments.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.1.0',
|
version: '2.1.0',
|
||||||
title: '4-Tab Major Redesign: Search, Favorites, History & Collections',
|
title: '4-Tab Major Redesign: Search, Favorites, History & Collections',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -331,7 +340,7 @@ const lunarisChangelog = [
|
|||||||
'Collections Tab Redesign: Pinterest-style collection cards with 2x2 thumbnail mosaic covers and glassmorphism post counters, modernized collection details screen with description banner, and elegant squircle creation dialog.',
|
'Collections Tab Redesign: Pinterest-style collection cards with 2x2 thumbnail mosaic covers and glassmorphism post counters, modernized collection details screen with description banner, and elegant squircle creation dialog.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.15',
|
version: '2.0.15',
|
||||||
title: 'Settings 2.0 Layout Fixes & Pinned Quick Navigation',
|
title: 'Settings 2.0 Layout Fixes & Pinned Quick Navigation',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -342,7 +351,7 @@ const lunarisChangelog = [
|
|||||||
'Header text overflow protections: wrapped title texts in Expanded across all settings cards.',
|
'Header text overflow protections: wrapped title texts in Expanded across all settings cards.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.14',
|
version: '2.0.14',
|
||||||
title: 'Settings 2.0: Modern Grouped Design & Quick Ergonomics',
|
title: 'Settings 2.0: Modern Grouped Design & Quick Ergonomics',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -354,7 +363,7 @@ const lunarisChangelog = [
|
|||||||
'Hero Brand Banner: polished app presentation card in About section with glowing icon, version build badge, update checker, and GitHub repository link.',
|
'Hero Brand Banner: polished app presentation card in About section with glowing icon, version build badge, update checker, and GitHub repository link.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.13',
|
version: '2.0.13',
|
||||||
title: 'Toolbar Section Dividers & Post Card Badge Stacking Fix',
|
title: 'Toolbar Section Dividers & Post Card Badge Stacking Fix',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -364,7 +373,7 @@ const lunarisChangelog = [
|
|||||||
'Expanded Bottom Gradient: increased bottom cinematic gradient height to 64dp for clean text and badge contrast.',
|
'Expanded Bottom Gradient: increased bottom cinematic gradient height to 64dp for clean text and badge contrast.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.12',
|
version: '2.0.12',
|
||||||
title: 'Feed 2.0: Pinterest Modern Redesign & Sleek Cards',
|
title: 'Feed 2.0: Pinterest Modern Redesign & Sleek Cards',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -377,7 +386,7 @@ const lunarisChangelog = [
|
|||||||
'Polished Search Presets: stylish bookmark capsules for quick access to saved search queries.',
|
'Polished Search Presets: stylish bookmark capsules for quick access to saved search queries.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.11',
|
version: '2.0.11',
|
||||||
title: 'Mobile Video Player Redesign & Format Recognition Fix',
|
title: 'Mobile Video Player Redesign & Format Recognition Fix',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -391,7 +400,7 @@ const lunarisChangelog = [
|
|||||||
'Sleek Neon Seekbar with live network buffer progress indicator.',
|
'Sleek Neon Seekbar with live network buffer progress indicator.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.10',
|
version: '2.0.10',
|
||||||
title: 'Fix "and" Tag Operator Retention, Suggestion Preceding Drafts & AND Chip Styling',
|
title: 'Fix "and" Tag Operator Retention, Suggestion Preceding Drafts & AND Chip Styling',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -401,7 +410,7 @@ const lunarisChangelog = [
|
|||||||
'Distinct visual styling for AND separator chips with secondary theme container and alt-route icon.',
|
'Distinct visual styling for AND separator chips with secondary theme container and alt-route icon.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.9',
|
version: '2.0.9',
|
||||||
title: 'Instant Tag Suggestions, Persistent Disk Cache, Expanded History & Match Highlighting',
|
title: 'Instant Tag Suggestions, Persistent Disk Cache, Expanded History & Match Highlighting',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -415,7 +424,7 @@ const lunarisChangelog = [
|
|||||||
'Dedicated Clear Tag Cache actions in Settings and Cache Manager.',
|
'Dedicated Clear Tag Cache actions in Settings and Cache Manager.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.8',
|
version: '2.0.8',
|
||||||
title: 'Shared Context Modifiers for Multi-Tag Search & Clean Tag Filtering',
|
title: 'Shared Context Modifiers for Multi-Tag Search & Clean Tag Filtering',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -424,7 +433,7 @@ const lunarisChangelog = [
|
|||||||
'Resolved "No posts yet" bug by adapting client post validation to multi-tag stream groups and stripping operator keywords from booru queries.',
|
'Resolved "No posts yet" bug by adapting client post validation to multi-tag stream groups and stripping operator keywords from booru queries.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.7',
|
version: '2.0.7',
|
||||||
title: 'Independent Multi-Tag Search Streams, Local "and" Connector, Pawchive in Main Feed & Reverts',
|
title: 'Independent Multi-Tag Search Streams, Local "and" Connector, Pawchive in Main Feed & Reverts',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -435,7 +444,7 @@ const lunarisChangelog = [
|
|||||||
'Removed external linked accounts bar from artist posts screen.',
|
'Removed external linked accounts bar from artist posts screen.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.6',
|
version: '2.0.6',
|
||||||
title: 'Pawchive Deep Integration: Global Posts Feed, Artist Tags, Announcements, Links & Server Media Filter',
|
title: 'Pawchive Deep Integration: Global Posts Feed, Artist Tags, Announcements, Links & Server Media Filter',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -446,7 +455,7 @@ const lunarisChangelog = [
|
|||||||
'Server-side media filtering (Photos, Videos, GIFs) querying the entire author archive through the API.',
|
'Server-side media filtering (Photos, Videos, GIFs) querying the entire author archive through the API.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.5',
|
version: '2.0.5',
|
||||||
title: '10 QoL Super-Update: AMOLED, Dynamic Colors, Grid switch, Share, Presets, Cache & Backup',
|
title: '10 QoL Super-Update: AMOLED, Dynamic Colors, Grid switch, Share, Presets, Cache & Backup',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -461,7 +470,7 @@ const lunarisChangelog = [
|
|||||||
'Full JSON backup export and import for seamless configuration sync.',
|
'Full JSON backup export and import for seamless configuration sync.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.4',
|
version: '2.0.4',
|
||||||
title: 'Platform service selection & media type filtering in artist posts',
|
title: 'Platform service selection & media type filtering in artist posts',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -470,7 +479,7 @@ const lunarisChangelog = [
|
|||||||
'Full-screen post pager respects active media type filters during swiping.',
|
'Full-screen post pager respects active media type filters during swiping.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.3',
|
version: '2.0.3',
|
||||||
title: 'Infinite artist pagination, favorite artists modal, and card layout polish',
|
title: 'Infinite artist pagination, favorite artists modal, and card layout polish',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -480,7 +489,7 @@ const lunarisChangelog = [
|
|||||||
'Removed mapping truncation in Pawchive provider to deliver all post attachments cleanly.',
|
'Removed mapping truncation in Pawchive provider to deliver all post attachments cleanly.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.2',
|
version: '2.0.2',
|
||||||
title: 'Swipeable media pager, favorite artists, performance and Pawchive',
|
title: 'Swipeable media pager, favorite artists, performance and Pawchive',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -492,7 +501,7 @@ const lunarisChangelog = [
|
|||||||
'In-app update checks and downloads connected directly to RarDog GitHub releases.',
|
'In-app update checks and downloads connected directly to RarDog GitHub releases.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.1',
|
version: '2.0.1',
|
||||||
title: 'Localization, zoom and favorite downloads',
|
title: 'Localization, zoom and favorite downloads',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -503,7 +512,7 @@ const lunarisChangelog = [
|
|||||||
'Favorites can optionally auto-download media in the background, with local files tracked separately from favorites.',
|
'Favorites can optionally auto-download media in the background, with local files tracked separately from favorites.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '2.0.0',
|
version: '2.0.0',
|
||||||
title: 'Customization and provider polish',
|
title: 'Customization and provider polish',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -514,7 +523,7 @@ const lunarisChangelog = [
|
|||||||
'Kemono and Coomer creator search uses the current mbahArip keyword endpoints with public API fallbacks.',
|
'Kemono and Coomer creator search uses the current mbahArip keyword endpoints with public API fallbacks.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '1.1.2',
|
version: '1.1.2',
|
||||||
title: 'Experimental tag and Artists update',
|
title: 'Experimental tag and Artists update',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -524,7 +533,7 @@ const lunarisChangelog = [
|
|||||||
'This is an experimental release for checking the new tag and Artists behavior.',
|
'This is an experimental release for checking the new tag and Artists behavior.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '1.1.1',
|
version: '1.1.1',
|
||||||
title: 'Artists and in-app updates',
|
title: 'Artists and in-app updates',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -534,7 +543,7 @@ const lunarisChangelog = [
|
|||||||
'Tag input keeps its scroll position steadier while typing and committing chips.',
|
'Tag input keeps its scroll position steadier while typing and committing chips.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '1.1.0',
|
version: '1.1.0',
|
||||||
title: 'Lunaris rebrand and providers',
|
title: 'Lunaris rebrand and providers',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -544,7 +553,7 @@ const lunarisChangelog = [
|
|||||||
'Video player UI preferences are saved across fullscreen, details and restarts.',
|
'Video player UI preferences are saved across fullscreen, details and restarts.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '1.0.2',
|
version: '1.0.2',
|
||||||
title: 'Provider safety fix',
|
title: 'Provider safety fix',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -553,7 +562,7 @@ const lunarisChangelog = [
|
|||||||
'Existing enabled legacy configs are disabled so the main feed is not polluted by known-offline APIs.',
|
'Existing enabled legacy configs are disabled so the main feed is not polluted by known-offline APIs.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '1.0.1',
|
version: '1.0.1',
|
||||||
title: 'Mobile polish',
|
title: 'Mobile polish',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -562,7 +571,7 @@ const lunarisChangelog = [
|
|||||||
'Tag chip input no longer jumps while typing.',
|
'Tag chip input no longer jumps while typing.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '1.0.0',
|
version: '1.0.0',
|
||||||
title: 'Stable 1.0',
|
title: 'Stable 1.0',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -572,7 +581,7 @@ const lunarisChangelog = [
|
|||||||
'Windows portable package is published alongside APK and installer.',
|
'Windows portable package is published alongside APK and installer.',
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
LunarisChange(
|
PrismaChange(
|
||||||
version: '0.4.3',
|
version: '0.4.3',
|
||||||
title: 'Bugfixes',
|
title: 'Bugfixes',
|
||||||
bullets: [
|
bullets: [
|
||||||
@@ -584,8 +593,8 @@ const lunarisChangelog = [
|
|||||||
),
|
),
|
||||||
];
|
];
|
||||||
|
|
||||||
class LunarisChange {
|
class PrismaChange {
|
||||||
const LunarisChange({
|
const PrismaChange({
|
||||||
required this.version,
|
required this.version,
|
||||||
required this.title,
|
required this.title,
|
||||||
required this.bullets,
|
required this.bullets,
|
||||||
@@ -595,3 +604,6 @@ class LunarisChange {
|
|||||||
final String title;
|
final String title;
|
||||||
final List<String> bullets;
|
final List<String> bullets;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const lunarisChangelog = prismaChangelog;
|
||||||
|
typedef LunarisChange = PrismaChange;
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ final updateServiceProvider = Provider<UpdateService>((ref) {
|
|||||||
connectTimeout: const Duration(seconds: 12),
|
connectTimeout: const Duration(seconds: 12),
|
||||||
receiveTimeout: const Duration(seconds: 12),
|
receiveTimeout: const Duration(seconds: 12),
|
||||||
headers: const {
|
headers: const {
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ class GelbooruProvider
|
|||||||
Map<String, String> mediaHeaders(Post post) {
|
Map<String, String> mediaHeaders(Post post) {
|
||||||
final host = Uri.tryParse(baseUrl)?.host;
|
final host = Uri.tryParse(baseUrl)?.host;
|
||||||
return {
|
return {
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
'Accept': '*/*',
|
'Accept': '*/*',
|
||||||
if (host != null && host.isNotEmpty) 'Referer': '$baseUrl/',
|
if (host != null && host.isNotEmpty) 'Referer': '$baseUrl/',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ class KemonoProvider
|
|||||||
receiveTimeout: const Duration(seconds: 20),
|
receiveTimeout: const Duration(seconds: 20),
|
||||||
headers: const {
|
headers: const {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -582,7 +582,7 @@ class KemonoProvider
|
|||||||
receiveTimeout: const Duration(seconds: 25),
|
receiveTimeout: const Duration(seconds: 25),
|
||||||
headers: const {
|
headers: const {
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -569,7 +569,7 @@ class ProviderManager {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
return const Success({
|
return const Success({
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
'Accept': '*/*',
|
'Accept': '*/*',
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ class Rule34Provider extends GelbooruProvider {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Map<String, String> mediaHeaders(Post post) => const {
|
Map<String, String> mediaHeaders(Post post) => const {
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
'Accept': '*/*',
|
'Accept': '*/*',
|
||||||
'Referer': 'https://rule34.xxx/',
|
'Referer': 'https://rule34.xxx/',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ class ProviderRepository {
|
|||||||
priority: 3,
|
priority: 3,
|
||||||
timeoutSeconds: 20,
|
timeoutSeconds: 20,
|
||||||
customHeaders: const {
|
customHeaders: const {
|
||||||
'User-Agent': 'Lunaris/2.0.2 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.2 Flutter local booru browser',
|
||||||
},
|
},
|
||||||
createdAt: now,
|
createdAt: now,
|
||||||
updatedAt: now,
|
updatedAt: now,
|
||||||
@@ -74,7 +74,7 @@ class ProviderRepository {
|
|||||||
priority: 4,
|
priority: 4,
|
||||||
timeoutSeconds: 20,
|
timeoutSeconds: 20,
|
||||||
customHeaders: const {
|
customHeaders: const {
|
||||||
'User-Agent': 'Lunaris/2.0.2 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.2 Flutter local booru browser',
|
||||||
},
|
},
|
||||||
createdAt: now,
|
createdAt: now,
|
||||||
updatedAt: now,
|
updatedAt: now,
|
||||||
|
|||||||
@@ -52,13 +52,13 @@ class BackupService {
|
|||||||
Future<bool> exportBackup() async {
|
Future<bool> exportBackup() async {
|
||||||
final json = await createBackupJson();
|
final json = await createBackupJson();
|
||||||
final fileName =
|
final fileName =
|
||||||
'lunaris_backup_${DateTime.now().millisecondsSinceEpoch}.json';
|
'prisma_backup_${DateTime.now().millisecondsSinceEpoch}.json';
|
||||||
|
|
||||||
if (Platform.isAndroid) {
|
if (Platform.isAndroid) {
|
||||||
final tempDir = await getTemporaryDirectory();
|
final tempDir = await getTemporaryDirectory();
|
||||||
final file = File('${tempDir.path}/$fileName');
|
final file = File('${tempDir.path}/$fileName');
|
||||||
await file.writeAsString(json);
|
await file.writeAsString(json);
|
||||||
await Share.shareXFiles([XFile(file.path)], text: 'Lunaris Backup');
|
await Share.shareXFiles([XFile(file.path)], text: 'Prisma Backup');
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ class DownloadService {
|
|||||||
return {
|
return {
|
||||||
'User-Agent': lower.contains('realbooru') || lower.contains('paheal')
|
'User-Agent': lower.contains('realbooru') || lower.contains('paheal')
|
||||||
? 'Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 Chrome/125 Mobile Safari/537.36'
|
? 'Mozilla/5.0 (Linux; Android 14) AppleWebKit/537.36 Chrome/125 Mobile Safari/537.36'
|
||||||
: 'Lunaris/2.0.1 Flutter local booru browser',
|
: 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
'Accept': lower.contains('realbooru') || lower.contains('paheal')
|
'Accept': lower.contains('realbooru') || lower.contains('paheal')
|
||||||
? 'video/webm,video/mp4,image/avif,image/webp,image/apng,image/*,*/*;q=0.8'
|
? 'video/webm,video/mp4,image/avif,image/webp,image/apng,image/*,*/*;q=0.8'
|
||||||
: '*/*',
|
: '*/*',
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ class PawchiveSyncService {
|
|||||||
followRedirects: false,
|
followRedirects: false,
|
||||||
validateStatus: (status) => status != null && status < 500,
|
validateStatus: (status) => status != null && status < 500,
|
||||||
headers: const {
|
headers: const {
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -231,7 +231,7 @@ class PawchiveSyncService {
|
|||||||
headers: {
|
headers: {
|
||||||
'Cookie': 'session=$cleanCookie',
|
'Cookie': 'session=$cleanCookie',
|
||||||
'Accept': 'application/json',
|
'Accept': 'application/json',
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
},
|
},
|
||||||
validateStatus: (status) => status != null && status < 500,
|
validateStatus: (status) => status != null && status < 500,
|
||||||
),
|
),
|
||||||
@@ -509,7 +509,7 @@ class PawchiveSyncService {
|
|||||||
final options = Options(
|
final options = Options(
|
||||||
headers: {
|
headers: {
|
||||||
'Cookie': 'session=$cleanCookie',
|
'Cookie': 'session=$cleanCookie',
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
},
|
},
|
||||||
validateStatus: (status) =>
|
validateStatus: (status) =>
|
||||||
status != null && (status == 200 || status == 201 || status == 204),
|
status != null && (status == 200 || status == 201 || status == 204),
|
||||||
|
|||||||
@@ -674,7 +674,7 @@ class SettingsService {
|
|||||||
return Success(
|
return Success(
|
||||||
const JsonEncoder.withIndent(' ').convert({
|
const JsonEncoder.withIndent(' ').convert({
|
||||||
'app': {
|
'app': {
|
||||||
'name': 'Lunaris',
|
'name': 'Prisma',
|
||||||
'version': appVersion,
|
'version': appVersion,
|
||||||
'build': buildNumber,
|
'build': buildNumber,
|
||||||
'generatedAt': DateTime.now().toIso8601String(),
|
'generatedAt': DateTime.now().toIso8601String(),
|
||||||
|
|||||||
@@ -25,7 +25,14 @@ class TagCacheService {
|
|||||||
return _resolvedPath!;
|
return _resolvedPath!;
|
||||||
}
|
}
|
||||||
final dir = await getApplicationDocumentsDirectory();
|
final dir = await getApplicationDocumentsDirectory();
|
||||||
_resolvedPath = '${dir.path}/lunaris_tag_cache.json';
|
final newFile = File('${dir.path}/prisma_tag_cache.json');
|
||||||
|
final oldFile = File('${dir.path}/lunaris_tag_cache.json');
|
||||||
|
if (!newFile.existsSync() && oldFile.existsSync()) {
|
||||||
|
try {
|
||||||
|
oldFile.copySync(newFile.path);
|
||||||
|
} catch (_) {}
|
||||||
|
}
|
||||||
|
_resolvedPath = newFile.path;
|
||||||
return _resolvedPath!;
|
return _resolvedPath!;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ class UpdateService {
|
|||||||
'Authorization': 'token 1c744d6044d756759d7b1f693c94c80cf70d75fa',
|
'Authorization': 'token 1c744d6044d756759d7b1f693c94c80cf70d75fa',
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
'User-Agent': 'Lunaris-App',
|
'User-Agent': 'Prisma-App',
|
||||||
'Accept': 'application/vnd.github+json',
|
'Accept': 'application/vnd.github+json',
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
@@ -239,10 +239,10 @@ class UpdateService {
|
|||||||
final fromUrl =
|
final fromUrl =
|
||||||
parsed?.pathSegments.isEmpty ?? true ? '' : parsed!.pathSegments.last;
|
parsed?.pathSegments.isEmpty ?? true ? '' : parsed!.pathSegments.last;
|
||||||
if (fromUrl.contains('.')) return fromUrl;
|
if (fromUrl.contains('.')) return fromUrl;
|
||||||
if (Platform.isAndroid) return 'Lunaris-v${info.version}.apk';
|
if (Platform.isAndroid) return 'Prisma-v${info.version}.apk';
|
||||||
if (Platform.isLinux) return 'Lunaris-v${info.version}-linux-x64.tar.gz';
|
if (Platform.isLinux) return 'Prisma-v${info.version}-linux-x64.tar.gz';
|
||||||
if (Platform.isWindows) return 'LunarisSetup-v${info.version}.exe';
|
if (Platform.isWindows) return 'PrismaSetup-v${info.version}.exe';
|
||||||
return 'LunarisPortable-v${info.version}.zip';
|
return 'PrismaPortable-v${info.version}.zip';
|
||||||
}
|
}
|
||||||
|
|
||||||
static String _versionFromTag(String tag) {
|
static String _versionFromTag(String tag) {
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class DioClient {
|
|||||||
receiveTimeout: timeout,
|
receiveTimeout: timeout,
|
||||||
sendTimeout: timeout,
|
sendTimeout: timeout,
|
||||||
headers: {
|
headers: {
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
'Accept': 'application/json, text/xml;q=0.9, */*;q=0.8',
|
'Accept': 'application/json, text/xml;q=0.9, */*;q=0.8',
|
||||||
...?headers,
|
...?headers,
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -653,7 +653,7 @@ class _FeedTitle extends StatelessWidget {
|
|||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
'Lunaris',
|
'Prisma',
|
||||||
style: theme.textTheme.titleLarge?.copyWith(
|
style: theme.textTheme.titleLarge?.copyWith(
|
||||||
fontWeight: FontWeight.w800,
|
fontWeight: FontWeight.w800,
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -1057,7 +1057,7 @@ class _MobilePostPagerState extends State<_MobilePostPager> {
|
|||||||
|
|
||||||
Map<String, String> _headersFor(Post post) {
|
Map<String, String> _headersFor(Post post) {
|
||||||
return const {
|
return const {
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
'Accept': '*/*',
|
'Accept': '*/*',
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -546,7 +546,7 @@ class _PostMediaViewerState extends State<PostMediaViewer>
|
|||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
'Accept': '*/*',
|
'Accept': '*/*',
|
||||||
if (defaultReferer != null) 'Referer': defaultReferer,
|
if (defaultReferer != null) 'Referer': defaultReferer,
|
||||||
...widget.mediaHeaders,
|
...widget.mediaHeaders,
|
||||||
|
|||||||
@@ -494,7 +494,7 @@ class _ProviderFormScreenState extends ConsumerState<ProviderFormScreen> {
|
|||||||
child: _GlassTextField(
|
child: _GlassTextField(
|
||||||
controller: _headers,
|
controller: _headers,
|
||||||
label: isRu ? 'Пользовательские заголовки' : 'Headers JSON',
|
label: isRu ? 'Пользовательские заголовки' : 'Headers JSON',
|
||||||
hint: '{"User-Agent": "Lunaris/3.0"}',
|
hint: '{"User-Agent": "Prisma/3.0"}',
|
||||||
icon: Icons.code_rounded,
|
icon: Icons.code_rounded,
|
||||||
minLines: 2,
|
minLines: 2,
|
||||||
maxLines: 5,
|
maxLines: 5,
|
||||||
|
|||||||
@@ -403,7 +403,7 @@ class _SettingsContentState extends ConsumerState<_SettingsContent> {
|
|||||||
? 'Beta и экспериментальные обновления'
|
? 'Beta и экспериментальные обновления'
|
||||||
: 'Receive beta & experimental updates',
|
: 'Receive beta & experimental updates',
|
||||||
subtitle: isRu
|
subtitle: isRu
|
||||||
? 'Проверка и уведомление о prerelease сборках Lunaris'
|
? 'Проверка и уведомление о prerelease сборках Prisma'
|
||||||
: 'Include prerelease builds when checking for updates',
|
: 'Include prerelease builds when checking for updates',
|
||||||
value: settings.allowExperimentalUpdates,
|
value: settings.allowExperimentalUpdates,
|
||||||
onChanged: (val) => _update(
|
onChanged: (val) => _update(
|
||||||
@@ -1278,7 +1278,7 @@ class _SettingsContentState extends ConsumerState<_SettingsContent> {
|
|||||||
messenger.showSnackBar(
|
messenger.showSnackBar(
|
||||||
SnackBar(
|
SnackBar(
|
||||||
content: Text(
|
content: Text(
|
||||||
isRu ? 'У вас установлена последняя версия Lunaris' : 'Lunaris is up to date',
|
isRu ? 'У вас установлена последняя версия Prisma' : 'Prisma is up to date',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -1295,7 +1295,7 @@ class _SettingsContentState extends ConsumerState<_SettingsContent> {
|
|||||||
await showDialog<void>(
|
await showDialog<void>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) => AlertDialog(
|
builder: (context) => AlertDialog(
|
||||||
title: Text('Lunaris ${info.version} is available'),
|
title: Text('Prisma ${info.version} is available'),
|
||||||
content: ConstrainedBox(
|
content: ConstrainedBox(
|
||||||
constraints: const BoxConstraints(maxWidth: 520),
|
constraints: const BoxConstraints(maxWidth: 520),
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
@@ -1356,7 +1356,7 @@ class _SettingsContentState extends ConsumerState<_SettingsContent> {
|
|||||||
return showDialog<void>(
|
return showDialog<void>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (context) => AlertDialog(
|
builder: (context) => AlertDialog(
|
||||||
title: const Text('Lunaris changelog'),
|
title: const Text('Prisma changelog'),
|
||||||
content: ConstrainedBox(
|
content: ConstrainedBox(
|
||||||
constraints: const BoxConstraints(maxWidth: 560),
|
constraints: const BoxConstraints(maxWidth: 560),
|
||||||
child: SingleChildScrollView(
|
child: SingleChildScrollView(
|
||||||
@@ -1364,7 +1364,7 @@ class _SettingsContentState extends ConsumerState<_SettingsContent> {
|
|||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
crossAxisAlignment: CrossAxisAlignment.start,
|
||||||
mainAxisSize: MainAxisSize.min,
|
mainAxisSize: MainAxisSize.min,
|
||||||
children: [
|
children: [
|
||||||
for (final change in lunarisChangelog) ...[
|
for (final change in prismaChangelog) ...[
|
||||||
Text(
|
Text(
|
||||||
'${change.version} - ${change.title}',
|
'${change.version} - ${change.title}',
|
||||||
style: Theme.of(context).textTheme.titleMedium,
|
style: Theme.of(context).textTheme.titleMedium,
|
||||||
@@ -2341,7 +2341,7 @@ class _ColorSwatches extends StatelessWidget {
|
|||||||
final ValueChanged<int> onChanged;
|
final ValueChanged<int> onChanged;
|
||||||
|
|
||||||
static const colors = <(int, String)>[
|
static const colors = <(int, String)>[
|
||||||
(0xFFE84D8A, 'Lunaris pink'),
|
(0xFFE84D8A, 'Prisma pink'),
|
||||||
(0xFF8B5CF6, 'Violet'),
|
(0xFF8B5CF6, 'Violet'),
|
||||||
(0xFF3B82F6, 'Azure'),
|
(0xFF3B82F6, 'Azure'),
|
||||||
(0xFF0EA5E9, 'Sky'),
|
(0xFF0EA5E9, 'Sky'),
|
||||||
@@ -2565,7 +2565,7 @@ class _HeroBrandBanner extends StatelessWidget {
|
|||||||
),
|
),
|
||||||
const SizedBox(height: 14),
|
const SizedBox(height: 14),
|
||||||
Text(
|
Text(
|
||||||
'Lunaris',
|
'Prisma',
|
||||||
style: theme.textTheme.headlineSmall?.copyWith(
|
style: theme.textTheme.headlineSmall?.copyWith(
|
||||||
fontWeight: FontWeight.w800,
|
fontWeight: FontWeight.w800,
|
||||||
letterSpacing: -0.5,
|
letterSpacing: -0.5,
|
||||||
@@ -2619,7 +2619,7 @@ class _HeroBrandBanner extends StatelessWidget {
|
|||||||
OutlinedButton.icon(
|
OutlinedButton.icon(
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
final url = Uri.parse(
|
final url = Uri.parse(
|
||||||
'https://github.com/RarDog/Lunaris',
|
'https://github.com/RarDog/Prisma',
|
||||||
);
|
);
|
||||||
await launchUrl(url, mode: LaunchMode.externalApplication);
|
await launchUrl(url, mode: LaunchMode.externalApplication);
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -478,7 +478,7 @@ class _PostCardState extends ConsumerState<PostCard>
|
|||||||
'${post.previewUrl} ${post.sampleUrl} ${post.fileUrl}'
|
'${post.previewUrl} ${post.sampleUrl} ${post.fileUrl}'
|
||||||
.toLowerCase();
|
.toLowerCase();
|
||||||
return {
|
return {
|
||||||
'User-Agent': 'Lunaris/2.0.1 Flutter local booru browser',
|
'User-Agent': 'Prisma/2.0.1 Flutter local booru browser',
|
||||||
'Accept': '*/*',
|
'Accept': '*/*',
|
||||||
if (lower.contains('gelbooru')) 'Referer': 'https://gelbooru.com/',
|
if (lower.contains('gelbooru')) 'Referer': 'https://gelbooru.com/',
|
||||||
if (lower.contains('realbooru'))
|
if (lower.contains('realbooru'))
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
name: gel_rule_app
|
name: gel_rule_app
|
||||||
description: Local backend/core layer for a Flutter booru browser app.
|
description: Local backend/core layer for a Flutter booru browser app.
|
||||||
publish_to: "none"
|
publish_to: "none"
|
||||||
version: 3.4.0+74
|
version: 3.4.1+75
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=3.3.0 <4.0.0"
|
sdk: ">=3.3.0 <4.0.0"
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ void main() {
|
|||||||
late TagCacheService cacheService;
|
late TagCacheService cacheService;
|
||||||
|
|
||||||
setUp(() async {
|
setUp(() async {
|
||||||
tempDir = await Directory.systemTemp.createTemp('lunaris_test_tag_cache');
|
tempDir = await Directory.systemTemp.createTemp('prisma_test_tag_cache');
|
||||||
cacheFilePath = '${tempDir.path}/test_tags.json';
|
cacheFilePath = '${tempDir.path}/test_tags.json';
|
||||||
cacheService = TagCacheService(customPath: cacheFilePath);
|
cacheService = TagCacheService(customPath: cacheFilePath);
|
||||||
await cacheService.init();
|
await cacheService.init();
|
||||||
|
|||||||
@@ -13,24 +13,24 @@ void main() {
|
|||||||
final info = AppUpdateInfo(
|
final info = AppUpdateInfo(
|
||||||
version: '2.0.2',
|
version: '2.0.2',
|
||||||
tagName: 'v2.0.2',
|
tagName: 'v2.0.2',
|
||||||
name: 'Lunaris 2.0.2',
|
name: 'Prisma 2.0.2',
|
||||||
body: 'Release notes',
|
body: 'Release notes',
|
||||||
htmlUrl: 'https://github.com/RarDog/Lunaris/releases/tag/v2.0.2',
|
htmlUrl: 'https://github.com/RarDog/Prisma/releases/tag/v2.0.2',
|
||||||
publishedAt: DateTime.parse('2026-09-03T18:00:00Z'),
|
publishedAt: DateTime.parse('2026-09-03T18:00:00Z'),
|
||||||
apkUrl: 'https://github.com/RarDog/Lunaris/releases/download/v2.0.2/Lunaris.apk',
|
apkUrl: 'https://github.com/RarDog/Prisma/releases/download/v2.0.2/Prisma.apk',
|
||||||
linuxTarGzUrl: 'https://github.com/RarDog/Lunaris/releases/download/v2.0.2/linux.tar.gz',
|
linuxTarGzUrl: 'https://github.com/RarDog/Prisma/releases/download/v2.0.2/linux.tar.gz',
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(info.hasAssets, isTrue);
|
expect(info.hasAssets, isTrue);
|
||||||
expect(info.apkUrl, contains('apk'));
|
expect(info.apkUrl, contains('apk'));
|
||||||
expect(info.linuxTarGzUrl, contains('linux'));
|
expect(info.linuxTarGzUrl, contains('linux'));
|
||||||
expect(
|
expect(
|
||||||
service.assetFileName(info, 'https://github.com/RarDog/Lunaris/releases/download/v2.0.2/Lunaris-v2.0.2.apk'),
|
service.assetFileName(info, 'https://github.com/RarDog/Prisma/releases/download/v2.0.2/Prisma-v2.0.2.apk'),
|
||||||
'Lunaris-v2.0.2.apk',
|
'Prisma-v2.0.2.apk',
|
||||||
);
|
);
|
||||||
expect(
|
expect(
|
||||||
service.assetFileName(info, 'https://github.com/RarDog/Lunaris/releases/download/v2.0.2/unknown-linux'),
|
service.assetFileName(info, 'https://github.com/RarDog/Prisma/releases/download/v2.0.2/unknown-linux'),
|
||||||
'Lunaris-v2.0.2-linux-x64.tar.gz',
|
'Prisma-v2.0.2-linux-x64.tar.gz',
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user