diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6ffb097..8c33433 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -46,25 +46,3 @@ jobs: files: ${{ env.ZIP_NAME }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Upload Windows Zip to Gitea Release - shell: pwsh - run: | - $tag = "${{ github.ref_name }}" - if (-not $tag) { $tag = "v3.0.0" } - $token = "1c744d6044d756759d7b1f693c94c80cf70d75fa" - $giteaUrl = "https://gitea.rardogsynapse.online" - $repo = "RarDog/Lunaris" - $zipName = $env:ZIP_NAME - - Write-Host "Fetching Gitea release info for tag $tag..." - $relUrl = "$giteaUrl/api/v1/repos/$repo/releases/tags/$tag" - $headers = @{ "Authorization" = "token $token" } - $rel = Invoke-RestMethod -Uri $relUrl -Headers $headers -Method Get - $releaseId = $rel.id - Write-Host "Found Gitea release ID: $releaseId" - - $uploadUrl = "$giteaUrl/api/v1/repos/$repo/releases/$releaseId/assets?name=$zipName" - Write-Host "Uploading $zipName to $uploadUrl..." - curl.exe -X POST -H "Authorization: token $token" -F "attachment=@$zipName" $uploadUrl - Write-Host "Successfully uploaded Windows build to Gitea!" diff --git a/README.md b/README.md index 7b0d15c..f355c5e 100644 --- a/README.md +++ b/README.md @@ -10,11 +10,10 @@

- Version 3.0.0 + Version 3.0.1 Flutter Platforms Wiki - Gitea License MIT

@@ -82,7 +81,7 @@ ## 📥 Загрузка (Скачать сборки) -Релизы доступны на **[GitHub Releases](https://github.com/RarDog/Lunaris/releases)** и в личном репозитории **[Gitea Releases](https://gitea.rardogsynapse.online/RarDog/Lunaris/releases)**. +Релизы доступны на странице **[GitHub Releases](https://github.com/RarDog/Lunaris/releases)**. | Платформа | Архитектура | Формат | Описание | |---|---|---|---| diff --git a/lib/app/app_version.dart b/lib/app/app_version.dart index 2ff0f52..28961b6 100644 --- a/lib/app/app_version.dart +++ b/lib/app/app_version.dart @@ -1,3 +1,3 @@ -const appDisplayVersion = '2.3.1'; -const appBuildNumber = 41; +const appDisplayVersion = '3.0.1'; +const appBuildNumber = 52; const appReleaseChannel = 'Stable'; diff --git a/lib/app/changelog.dart b/lib/app/changelog.dart index 1587c43..93d1f64 100644 --- a/lib/app/changelog.dart +++ b/lib/app/changelog.dart @@ -8,7 +8,7 @@ const lunarisChangelog = [ 'Новая архитектура поиска (OverlayPortal): подсказки тегов отображаются через нативный портал Flutter без блокировки кнопок панели, очистки и сброса фильтров.', 'Pawchive 2.0 & Двусторонняя синхронизация: подключение аккаунтов через логин/пароль или Session Cookie, импорт избранного с сервера, экспорт локальных коллекций в аккаунт на сервере и сквозная синхронизация со всех поддерживаемых платформ.', 'Ленивое автоопределение разрешения: фоновый декодер автоматически рассчитывает и выводит точные размеры медиа (например, 1920 × 1080) для постов Pawchive без серверных метаданных.', - 'Умные per-ABI обновления: автообновление через Gitea скачивает точный APK под архитектуру вашего процессора (arm64-v8a, armeabi-v7a, x86_64), сокращая вес загрузки.', + 'Умные per-ABI обновления: автообновление через GitHub скачивает точный APK под архитектуру вашего процессора (arm64-v8a, armeabi-v7a, x86_64), сокращая вес загрузки.', 'Исправление вёрстки: устранены переносы текста в заголовке окна аккаунтов и карточках пользователей на экранах смартфонов.', ], ), @@ -36,7 +36,7 @@ const lunarisChangelog = [ title: 'ABI-Aware Auto-Update — правильный APK для вашего процессора', bullets: [ 'Определение архитектуры Android: приложение читает Build.SUPPORTED_ABIS (arm64-v8a, armeabi-v7a, x86_64) через нативный канал.', - 'Точный APK из Gitea: при обновлении скачивается per-ABI APK (app-arm64-v8a-release.apk и т.д.), а не один общий файл.', + 'Точный APK из GitHub: при обновлении скачивается per-ABI APK (app-arm64-v8a-release.apk и т.д.), а не один общий файл.', 'Fallback: нет per-ABI APK → универсальный APK → страница релиза в браузере.', 'Кеш ABI: архитектура определяется один раз за сеанс.', ], @@ -163,7 +163,7 @@ const lunarisChangelog = [ 'Instant Segmented Controls: replaced tedious dropdowns with fast 1-tap SegmentedButtons for Theme (Dark/Light/Auto), Language (RU/EN), and Media Quality (Auto/Data saver/HQ).', 'Folder Structure Bottom Sheet: intuitive download directory template picker with preset chips and custom pattern editor.', 'Interactive Stepper & Limit Controls: modernized desktop & mobile column steppers and disk cache limits with accent pill badges.', - 'Hero Brand Banner: polished app presentation card in About section with glowing icon, version build badge, update checker, and Gitea 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( @@ -301,7 +301,7 @@ const lunarisChangelog = [ 'Added favorite artists bar at the top of the Artists tab with quick access and recent photos/videos stream.', 'Multi-image posts now feature an in-post navigation indicator with image switching.', 'New Pawchive provider support and cleaned up deprecated providers.', - 'In-app update checks and downloads connected directly to RarDog Gitea releases.', + 'In-app update checks and downloads connected directly to RarDog GitHub releases.', ], ), LunarisChange( @@ -369,7 +369,7 @@ const lunarisChangelog = [ version: '1.0.1', title: 'Mobile polish', bullets: [ - 'Startup update checks now look for new Gitea releases every launch.', + 'Startup update checks now look for new GitHub releases every launch.', 'Refresh-rate controls are Android-only; desktop keeps stable app motion.', 'Tag chip input no longer jumps while typing.', ], diff --git a/lib/backend/services/update_service.dart b/lib/backend/services/update_service.dart index 0e6db69..02e62d0 100644 --- a/lib/backend/services/update_service.dart +++ b/lib/backend/services/update_service.dart @@ -13,9 +13,9 @@ class UpdateService { UpdateService(this._dio, this._settingsService); static const latestReleaseUrl = - 'https://gitea.rardogsynapse.online/api/v1/repos/RarDog/Lunaris/releases/latest'; + 'https://api.github.com/repos/RarDog/Lunaris/releases/latest'; static const releasesUrl = - 'https://gitea.rardogsynapse.online/api/v1/repos/RarDog/Lunaris/releases'; + 'https://api.github.com/repos/RarDog/Lunaris/releases'; static const _deviceChannel = MethodChannel('rulegel/device'); @@ -84,7 +84,13 @@ class UpdateService { Future _latestAllowedRelease(AppSettings settings) async { final response = await _dio.get( releasesUrl, - queryParameters: {'limit': 30}, + queryParameters: {'per_page': 30}, + options: Options( + headers: { + 'User-Agent': 'Lunaris-App', + 'Accept': 'application/vnd.github+json', + }, + ), ); final items = (response.data as List?) ?? const []; final releases = items @@ -95,7 +101,15 @@ class UpdateService { .map((item) => _releaseFromJson(Map.from(item))) .toList(growable: false); if (releases.isEmpty) { - final latest = await _dio.get(latestReleaseUrl); + final latest = await _dio.get( + latestReleaseUrl, + options: Options( + headers: { + 'User-Agent': 'Lunaris-App', + 'Accept': 'application/vnd.github+json', + }, + ), + ); return _releaseFromJson(Map.from(latest.data as Map)); } releases.sort((a, b) { diff --git a/lib/features/settings/presentation/settings_screen.dart b/lib/features/settings/presentation/settings_screen.dart index 6939fe2..80f28ac 100644 --- a/lib/features/settings/presentation/settings_screen.dart +++ b/lib/features/settings/presentation/settings_screen.dart @@ -2183,12 +2183,12 @@ class _HeroBrandBanner extends StatelessWidget { OutlinedButton.icon( onPressed: () async { final url = Uri.parse( - 'https://gitea.rardogsynapse.online/RarDog/Lunaris', + 'https://github.com/RarDog/Lunaris', ); await launchUrl(url, mode: LaunchMode.externalApplication); }, icon: const Icon(Icons.code_rounded, size: 18), - label: const Text('Gitea'), + label: const Text('GitHub'), ), ], ), diff --git a/pubspec.yaml b/pubspec.yaml index 1a41191..a2deb5f 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: gel_rule_app description: Local backend/core layer for a Flutter booru browser app. publish_to: "none" -version: 3.0.0+51 +version: 3.0.1+52 environment: sdk: ">=3.3.0 <4.0.0" diff --git a/test/backend/update_service_test.dart b/test/backend/update_service_test.dart index 813147c..164e0a9 100644 --- a/test/backend/update_service_test.dart +++ b/test/backend/update_service_test.dart @@ -6,7 +6,7 @@ import 'package:gel_rule_app/backend/services/update_service.dart'; import 'package:gel_rule_app/core/database/database_service.dart'; void main() { - test('UpdateService parses Gitea release JSON correctly', () { + test('UpdateService parses GitHub release JSON correctly', () { final service = UpdateService(Dio(), SettingsService(_MockDatabaseService())); // Use reflection or constructor to test info @@ -15,21 +15,21 @@ void main() { tagName: 'v2.0.2', name: 'Lunaris 2.0.2', body: 'Release notes', - htmlUrl: 'https://gitea.rardogsynapse.online/RarDog/Lunaris/releases/tag/v2.0.2', + htmlUrl: 'https://github.com/RarDog/Lunaris/releases/tag/v2.0.2', publishedAt: DateTime.parse('2026-09-03T18:00:00Z'), - apkUrl: 'https://gitea.rardogsynapse.online/attachments/apk', - linuxTarGzUrl: 'https://gitea.rardogsynapse.online/attachments/linux', + apkUrl: 'https://github.com/RarDog/Lunaris/releases/download/v2.0.2/Lunaris.apk', + linuxTarGzUrl: 'https://github.com/RarDog/Lunaris/releases/download/v2.0.2/linux.tar.gz', ); expect(info.hasAssets, isTrue); expect(info.apkUrl, contains('apk')); expect(info.linuxTarGzUrl, contains('linux')); expect( - service.assetFileName(info, 'https://gitea.rardogsynapse.online/attachments/Lunaris-v2.0.2.apk'), + service.assetFileName(info, 'https://github.com/RarDog/Lunaris/releases/download/v2.0.2/Lunaris-v2.0.2.apk'), 'Lunaris-v2.0.2.apk', ); expect( - service.assetFileName(info, info.apkUrl!), + service.assetFileName(info, 'https://github.com/RarDog/Lunaris/releases/download/v2.0.2/unknown-linux'), 'Lunaris-v2.0.2-linux-x64.tar.gz', ); });