From 2200ff98d70f2078d9918c2e055c22ebb00a2f14 Mon Sep 17 00:00:00 2001 From: lollipopkit Date: Tue, 12 Dec 2023 14:18:09 +0800 Subject: [PATCH] chore: `README` --- README.md | 2 +- README_zh.md | 2 +- ios/Runner.xcodeproj/project.pbxproj | 36 +++++++++---------- lib/data/model/server/nvdia.dart | 30 ++++++++-------- lib/data/model/server/server.dart | 2 +- .../server/server_status_update_req.dart | 2 +- lib/data/res/build_data.dart | 6 ++-- lib/view/page/server/detail.dart | 4 +-- lib/view/page/server/tab.dart | 2 +- lib/view/widget/input_field.dart | 6 ++-- test/{nvdia_test.dart => nvidia_test.dart} | 2 +- 11 files changed, 48 insertions(+), 46 deletions(-) rename test/{nvdia_test.dart => nvidia_test.dart} (99%) diff --git a/README.md b/README.md index 853b30d4..7fc8cd43 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,7 @@ Platform | Support | Sign - Due to Chinese government policy and the [BEIAN](https://github.com/lollipopkit/flutter_server_box/discussions/180) issue. iOS app is now free. Please download it from other regions of AppStore. - Security: - To prevent injection attacks and etc., please don't download from untrusted sources. - - Since `Linux / Windows` is signed with flutter default certificate, it is recommended to **build it yourself**. + - Since `Linux / Windows` is signed with flutter default certificate, it is recommended to [build it yourself](https://github.com/lollipopkit/flutter_server_box/wiki#compile-yourself). ## 🆘 Help diff --git a/README_zh.md b/README_zh.md index 35b25cef..8da43f9b 100644 --- a/README_zh.md +++ b/README_zh.md @@ -73,7 +73,7 @@ - 由于中国政策原因,且**目前**无法完成[备案](https://github.com/lollipopkit/flutter_server_box/discussions/180)。iOS 端现已转为免费,请移步 AppStore 其他区下载。 - 关于安全: - 为了防止注入攻击等因素,请勿从不可信来源下载。 - - 由于 `Linux / Windows` 使用了默认签名,因此建议**自行构建**。 + - 由于 `Linux / Windows` 使用了默认签名,因此建议[自行构建](https://github.com/lollipopkit/flutter_server_box/wiki/%E4%B8%BB%E9%A1%B5#%E8%87%AA%E7%BC%96%E8%AF%91)。 ## 🆘 帮助 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index 2b7f0c08..dc6aa1e5 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -586,7 +586,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 667; + CURRENT_PROJECT_VERSION = 672; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -596,7 +596,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.667; + MARKETING_VERSION = 1.0.672; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -720,7 +720,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 667; + CURRENT_PROJECT_VERSION = 672; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -730,7 +730,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.667; + MARKETING_VERSION = 1.0.672; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -748,7 +748,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements; - CURRENT_PROJECT_VERSION = 667; + CURRENT_PROJECT_VERSION = 672; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_BITCODE = NO; INFOPLIST_FILE = "Runner/Info-$(CONFIGURATION).plist"; @@ -758,7 +758,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.667; + MARKETING_VERSION = 1.0.672; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; @@ -779,7 +779,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 667; + CURRENT_PROJECT_VERSION = 672; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -792,7 +792,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.667; + MARKETING_VERSION = 1.0.672; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; @@ -818,7 +818,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 667; + CURRENT_PROJECT_VERSION = 672; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -831,7 +831,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.667; + MARKETING_VERSION = 1.0.672; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -854,7 +854,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 667; + CURRENT_PROJECT_VERSION = 672; DEVELOPMENT_TEAM = BA88US33G6; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -867,7 +867,7 @@ "@executable_path/Frameworks", "@executable_path/../../Frameworks", ); - MARKETING_VERSION = 1.0.667; + MARKETING_VERSION = 1.0.672; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.StatusWidget; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -890,7 +890,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 667; + CURRENT_PROJECT_VERSION = 672; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -902,7 +902,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.667; + MARKETING_VERSION = 1.0.672; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; @@ -931,7 +931,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 667; + CURRENT_PROJECT_VERSION = 672; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -943,7 +943,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.667; + MARKETING_VERSION = 1.0.672; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; @@ -969,7 +969,7 @@ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 667; + CURRENT_PROJECT_VERSION = 672; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = BA88US33G6; ENABLE_PREVIEWS = YES; @@ -981,7 +981,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.667; + MARKETING_VERSION = 1.0.672; MTL_FAST_MATH = YES; PRODUCT_BUNDLE_IDENTIFIER = com.lollipopkit.toolbox.WatchEnd; PRODUCT_NAME = ServerBox; diff --git a/lib/data/model/server/nvdia.dart b/lib/data/model/server/nvdia.dart index 58d4f4b4..55172b8b 100644 --- a/lib/data/model/server/nvdia.dart +++ b/lib/data/model/server/nvdia.dart @@ -21,11 +21,11 @@ import 'package:xml/xml.dart'; /// ] /// -class NvdiaSmi { - static List fromXml(String raw) { +class NvidiaSmi { + static List fromXml(String raw) { final xmlData = XmlDocument.parse(raw); final gpus = xmlData.findAllElements('gpu'); - final result = List.generate(gpus.length, (index) { + final result = List.generate(gpus.length, (index) { final gpu = gpus.elementAt(index); final name = gpu.findElements('product_name').firstOrNull?.innerText; final temp = gpu @@ -47,7 +47,7 @@ class NvdiaSmi { .firstOrNull ?.findElements('process_info'); final memoryProcesses = - List.generate(processes?.length ?? 0, (index) { + List.generate(processes?.length ?? 0, (index) { final process = processes?.elementAt(index); final pid = process?.findElements('pid').firstOrNull?.innerText; final name = @@ -55,7 +55,7 @@ class NvdiaSmi { final memory = process?.findElements('used_memory').firstOrNull?.innerText; if (pid != null && name != null && memory != null) { - return NvdiaSmiMemProcess( + return NvidiaSmiMemProcess( int.parse(pid), name, int.parse( @@ -78,13 +78,13 @@ class NvdiaSmi { powerDraw != null && powerLimit != null && memory != null) { - return NvdiaSmiItem( + return NvidiaSmiItem( name: name, uuid: gpu.findElements('uuid').firstOrNull?.innerText ?? '', temp: int.parse(temp.split(' ').firstOrNull ?? '0'), percent: int.parse(percent?.split(' ').firstOrNull ?? '0'), power: '$powerDraw / $powerLimit', - memory: NvdiaSmiMem( + memory: NvidiaSmiMem( int.parse(memoryTotal?.split(' ').firstOrNull ?? '0'), int.parse(memoryUsed?.split(' ').firstOrNull ?? '0'), 'MiB', @@ -100,16 +100,16 @@ class NvdiaSmi { } } -class NvdiaSmiItem { +class NvidiaSmiItem { final String uuid; final String name; final int temp; final String power; - final NvdiaSmiMem memory; + final NvidiaSmiMem memory; final int percent; final int fanSpeed; - const NvdiaSmiItem({ + const NvidiaSmiItem({ required this.uuid, required this.name, required this.temp, @@ -125,13 +125,13 @@ class NvdiaSmiItem { } } -class NvdiaSmiMem { +class NvidiaSmiMem { final int total; final int used; final String unit; - final List processes; + final List processes; - const NvdiaSmiMem(this.total, this.used, this.unit, this.processes); + const NvidiaSmiMem(this.total, this.used, this.unit, this.processes); @override String toString() { @@ -139,12 +139,12 @@ class NvdiaSmiMem { } } -class NvdiaSmiMemProcess { +class NvidiaSmiMemProcess { final int pid; final String name; final int memory; - const NvdiaSmiMemProcess(this.pid, this.name, this.memory); + const NvidiaSmiMemProcess(this.pid, this.name, this.memory); @override String toString() { diff --git a/lib/data/model/server/server.dart b/lib/data/model/server/server.dart index 312a29b5..6eab9fab 100644 --- a/lib/data/model/server/server.dart +++ b/lib/data/model/server/server.dart @@ -56,7 +56,7 @@ class ServerStatus { SystemType system; String? err; DiskIO diskIO; - List? nvdia; + List? nvdia; /// Whether is connectting, parsing and etc. bool _isBusy = false; diff --git a/lib/data/model/server/server_status_update_req.dart b/lib/data/model/server/server_status_update_req.dart index 242541ad..718507a5 100644 --- a/lib/data/model/server/server_status_update_req.dart +++ b/lib/data/model/server/server_status_update_req.dart @@ -113,7 +113,7 @@ Future _getLinuxStatus(ServerStatusUpdateReq req) async { } try { - final nvdia = NvdiaSmi.fromXml(StatusCmdType.nvdia.find(segments)); + final nvdia = NvidiaSmi.fromXml(StatusCmdType.nvdia.find(segments)); req.ss.nvdia = nvdia; } catch (e, s) { Loggers.parse.warning(e, s); diff --git a/lib/data/res/build_data.dart b/lib/data/res/build_data.dart index 77951b58..8f648c01 100644 --- a/lib/data/res/build_data.dart +++ b/lib/data/res/build_data.dart @@ -2,9 +2,9 @@ class BuildData { static const String name = "ServerBox"; - static const int build = 667; + static const int build = 672; static const String engine = "3.16.2"; - static const String buildAt = "2023-12-09 14:56:57"; - static const int modifications = 11; + static const String buildAt = "2023-12-11 11:40:12"; + static const int modifications = 3; static const int script = 31; } diff --git a/lib/view/page/server/detail.dart b/lib/view/page/server/detail.dart index 60c7d008..999797eb 100644 --- a/lib/view/page/server/detail.dart +++ b/lib/view/page/server/detail.dart @@ -318,7 +318,7 @@ class _ServerDetailPageState extends State ); } - Widget _buildGpuItem(NvdiaSmiItem item) { + Widget _buildGpuItem(NvidiaSmiItem item) { final mem = item.memory; final processes = mem.processes; final children = []; @@ -378,7 +378,7 @@ class _ServerDetailPageState extends State ); } - Widget _buildGpuProcessItem(NvdiaSmiMemProcess process) { + Widget _buildGpuProcessItem(NvidiaSmiMemProcess process) { return ListTile( title: Text( process.name, diff --git a/lib/view/page/server/tab.dart b/lib/view/page/server/tab.dart index 2e6c738d..72785433 100644 --- a/lib/view/page/server/tab.dart +++ b/lib/view/page/server/tab.dart @@ -91,7 +91,7 @@ class _ServerPageState extends State // Desktop doesn't support pull to refresh if (isDesktop) return child; - + return RefreshIndicator( key: ServerProvider.refreshKey, onRefresh: () async => await Pros.server.refreshData(onlyFailed: true), diff --git a/lib/view/widget/input_field.dart b/lib/view/widget/input_field.dart index 9f9d0861..3d15c144 100644 --- a/lib/view/widget/input_field.dart +++ b/lib/view/widget/input_field.dart @@ -41,7 +41,7 @@ class Input extends StatefulWidget { this.autoFocus = false, this.onViewPwdTap, }); - + @override State createState() => _InputState(); } @@ -74,7 +74,9 @@ class _InputState extends State { prefix: widget.prefix, suffixIcon: widget.obscureText ? IconButton( - icon: Icon(_obscureText ? Icons.visibility : Icons.visibility_off), + icon: Icon( + _obscureText ? Icons.visibility : Icons.visibility_off, + ), onPressed: () { setState(() { _obscureText = !_obscureText; diff --git a/test/nvdia_test.dart b/test/nvidia_test.dart similarity index 99% rename from test/nvdia_test.dart rename to test/nvidia_test.dart index 23e10096..edba4805 100644 --- a/test/nvdia_test.dart +++ b/test/nvidia_test.dart @@ -842,7 +842,7 @@ const _raw = ''' void main() { test('nvdia-smi', () { if (kDebugMode) { - print(NvdiaSmi.fromXml(_raw).firstOrNull?.memory.processes); + print(NvidiaSmi.fromXml(_raw).firstOrNull?.memory.processes); } }); }