new: useCDN option

This commit is contained in:
lollipopkit
2024-03-08 01:52:02 -06:00
parent 7b74d83c23
commit b9aa4ba124
17 changed files with 84 additions and 28 deletions

View File

@@ -632,7 +632,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -642,7 +642,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -768,7 +768,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -778,7 +778,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -796,7 +796,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist";
@@ -806,7 +806,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
@@ -827,7 +827,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
@@ -840,7 +840,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
@@ -866,7 +866,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
@@ -879,7 +879,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -902,7 +902,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_TEAM = BA88US33G6;
GCC_C_LANGUAGE_STANDARD = gnu11;
GENERATE_INFOPLIST_FILE = YES;
@@ -915,7 +915,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -938,7 +938,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES;
@@ -950,7 +950,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
@@ -979,7 +979,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES;
@@ -991,7 +991,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
PRODUCT_NAME = ServerBox;
@@ -1017,7 +1017,7 @@
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_ASSET_PATHS = "";
DEVELOPMENT_TEAM = BA88US33G6;
ENABLE_PREVIEWS = YES;
@@ -1029,7 +1029,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd;
PRODUCT_NAME = ServerBox;

View File

@@ -2,9 +2,9 @@
class BuildData {
static const String name = "ServerBox";
static const int build = 787;
static const int build = 793;
static const String engine = "3.19.2";
static const String buildAt = "2024-03-06 16:28:08";
static const int modifications = 3;
static const String buildAt = "2024-03-08 15:18:32";
static const int modifications = 2;
static const int script = 40;
}

View File

@@ -1,5 +1,6 @@
abstract final class Urls {
static const resBase = 'https://res.lolli.tech/serverbox';
static const cdnBase = 'https://cdn.lolli.tech/serverbox';
static const myGithub = 'https://github.com/lollipopkit';
static const appHelp = '$myGithub/flutter_server_box#-help';
static const appWiki = '$myGithub/flutter_server_box/wiki';

View File

@@ -1,11 +1,14 @@
import 'package:dio/dio.dart';
import 'package:toolbox/data/res/store.dart';
import '../model/app/update.dart';
import '../res/url.dart';
class AppService {
Future<AppUpdate> getUpdate() async {
final resp = await Dio().get('${Urls.resBase}/update.json');
final useCDN = Stores.setting.useCdn.fetch() == 1;
final resp =
await Dio().get('${useCDN ? Urls.cdnBase : Urls.resBase}/update.json');
return AppUpdate.fromJson(resp.data);
}
}

View File

@@ -250,6 +250,11 @@ class SettingStore extends PersistentStore {
/// when building traffic view on server tab
late final ignoreLocalNet = property('ignoreLocalNetIface', true);
/// Use cdn
/// It's recommended to use cdn for non-China users
/// 0: unset, 1: use, 2: not use
late final useCdn = property('useCdn', 0);
// Never show these settings for users
//
// ------BEGIN------

View File

@@ -267,6 +267,8 @@
"upsideDown": "Upside Down",
"uptime": "Betriebszeit",
"urlOrJson": "URL oder JSON",
"useCdn": "Verwenden von CDN",
"useCdnTip": "Nicht-chinesischen Benutzern wird die Verwendung eines CDN empfohlen. Möchten Sie es verwenden?",
"useNoPwd": "Es wird kein Passwort verwendet",
"usePodmanByDefault": "Standardmäßige Verwendung von Podman",
"used": "Gebraucht",

View File

@@ -267,6 +267,8 @@
"upsideDown": "Upside Down",
"uptime": "Uptime",
"urlOrJson": "URL or JSON",
"useCdn": "Using CDN",
"useCdnTip": "Non-Chinese users are recommended to use CDN. Would you like to use it?",
"useNoPwd": "No password will be used",
"usePodmanByDefault": "Defaulting to Podman",
"used": "Used",

View File

@@ -267,6 +267,8 @@
"upsideDown": "Invertir arriba por abajo",
"uptime": "Tiempo de actividad",
"urlOrJson": "URL o JSON",
"useCdn": "Usando CDN",
"useCdnTip": "Se recomienda a los usuarios no chinos utilizar CDN. ¿Le gustaría utilizarlo?",
"useNoPwd": "Se usará sin contraseña",
"usePodmanByDefault": "Usar Podman por defecto",
"used": "Usado",

View File

@@ -267,6 +267,8 @@
"upsideDown": "À l'envers",
"uptime": "Temps de disponibilité",
"urlOrJson": "URL ou JSON",
"useCdn": "Utilisation de CDN",
"useCdnTip": "Il est recommandé aux utilisateurs non chinois d'utiliser un CDN. Souhaitez-vous l'utiliser ?",
"useNoPwd": "Aucun mot de passe ne sera utilisé",
"usePodmanByDefault": "Utiliser Podman par défaut",
"used": "Utilisé",

View File

@@ -267,6 +267,8 @@
"upsideDown": "Terbalik",
"uptime": "Uptime",
"urlOrJson": "URL atau JSON",
"useCdn": "Menggunakan CDN",
"useCdnTip": "Pengguna non-Cina disarankan menggunakan CDN. Apakah Anda ingin menggunakannya?",
"useNoPwd": "Tidak ada kata sandi yang akan digunakan",
"usePodmanByDefault": "Menggunakan Podman sebagai bawaan",
"used": "Digunakan",

View File

@@ -267,6 +267,8 @@
"upsideDown": "上下逆転",
"uptime": "稼働時間",
"urlOrJson": "URLまたはJSON",
"useCdn": "CDNの使用",
"useCdnTip": "中国以外のユーザーにはCDNの使用が推奨されています。ご利用しますか",
"useNoPwd": "パスワードなしで使用します",
"usePodmanByDefault": "デフォルトでPodmanを使用",
"used": "使用済み",

View File

@@ -267,6 +267,8 @@
"upsideDown": "Inverter verticalmente",
"uptime": "Tempo de atividade",
"urlOrJson": "URL ou JSON",
"useCdn": "Utilizando CDN",
"useCdnTip": "Recomenda-se que usuários não chineses usem CDN. Gostaria de usá-lo?",
"useNoPwd": "Será usado sem senha",
"usePodmanByDefault": "Usar Podman por padrão",
"used": "Usado",

View File

@@ -267,6 +267,8 @@
"upsideDown": "перевернуть",
"uptime": "время работы",
"urlOrJson": "ссылка или JSON",
"useCdn": "Использование CDN",
"useCdnTip": "Не китайским пользователям рекомендуется использовать CDN. Хотели бы вы его использовать?",
"useNoPwd": "будет использоваться без пароля",
"usePodmanByDefault": "использовать Podman по умолчанию",
"used": "использовано",

View File

@@ -267,6 +267,8 @@
"upsideDown": "上下交换",
"uptime": "启动时长",
"urlOrJson": "链接或JSON",
"useCdn": "使用CDN",
"useCdnTip": "非中国大陆用户推荐使用CDN是否使用",
"useNoPwd": "将会使用无密码",
"usePodmanByDefault": "默认使用 Podman",
"used": "已用",

View File

@@ -267,6 +267,8 @@
"upsideDown": "上下交換",
"uptime": "啟動時長",
"urlOrJson": "鏈接或JSON",
"useCdn": "使用CDN",
"useCdnTip": "非中國大陆用戶建議使用CDN是否使用",
"useNoPwd": "将使用無密碼",
"usePodmanByDefault": "默認使用 Podman",
"used": "已用",

View File

@@ -7,6 +7,7 @@ import 'package:flutter_markdown/flutter_markdown.dart';
import 'package:get_it/get_it.dart';
import 'package:toolbox/core/channel/bg_run.dart';
import 'package:toolbox/core/channel/home_widget.dart';
import 'package:toolbox/core/extension/context/common.dart';
import 'package:toolbox/core/extension/context/dialog.dart';
import 'package:toolbox/core/extension/context/locale.dart';
import 'package:toolbox/core/persistant_store.dart';
@@ -325,6 +326,32 @@ ${GithubIds.participants.map((e) => '[$e](${e.url})').join(' ')}
await GetIt.I.allReady();
await Pros.server.load();
await Pros.server.refresh();
_notifyUseCDN();
}
Future<void> _notifyUseCDN() async {
final useCDN = Stores.setting.useCdn.fetch();
if (useCDN != 0) return;
final use = await context.showRoundDialog(
title: Text(l10n.useCdn),
child: Text(l10n.useCdnTip),
actions: [
TextButton(
onPressed: () => context.pop(true),
child: Text(l10n.ok),
),
TextButton(
onPressed: () => context.pop(false),
child: Text(l10n.cancel, style: UIs.textRed),
),
],
);
if (use == true) {
Stores.setting.useCdn.put(1);
} else if (use == false) {
Stores.setting.useCdn.put(2);
}
}
Future<void> _onLongPressSetting() async {

View File

@@ -467,7 +467,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_TEAM = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Server Box";
@@ -477,7 +477,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "Server Box";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -604,7 +604,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_TEAM = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist;
INFOPLIST_KEY_CFBundleDisplayName = "Server Box";
@@ -614,7 +614,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "Server Box";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -634,7 +634,7 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 787;
CURRENT_PROJECT_VERSION = 793;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = BA88US33G6;
INFOPLIST_FILE = Runner/Info.plist;
@@ -645,7 +645,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.15;
MARKETING_VERSION = 1.0.787;
MARKETING_VERSION = 1.0.793;
PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox;
PRODUCT_NAME = "Server Box";
PROVISIONING_PROFILE_SPECIFIER = "";