mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
new: battery (#235)
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import 'package:dartssh2/dartssh2.dart';
|
||||
import 'package:toolbox/data/model/app/shell_func.dart';
|
||||
import 'package:toolbox/data/model/server/conn.dart';
|
||||
import 'package:toolbox/data/model/server/cpu.dart';
|
||||
import 'package:toolbox/data/model/server/disk.dart';
|
||||
@@ -47,8 +48,6 @@ class ServerStatus {
|
||||
Cpus cpu;
|
||||
Memory mem;
|
||||
Swap swap;
|
||||
String sysVer;
|
||||
String uptime;
|
||||
List<Disk> disk;
|
||||
Conn tcp;
|
||||
NetSpeed netSpeed;
|
||||
@@ -57,6 +56,7 @@ class ServerStatus {
|
||||
String? err;
|
||||
DiskIO diskIO;
|
||||
List<NvidiaSmiItem>? nvidia;
|
||||
final Map<StatusCmdType, String> more = {};
|
||||
|
||||
/// Whether is connectting, parsing and etc.
|
||||
bool _isBusy = false;
|
||||
@@ -64,8 +64,6 @@ class ServerStatus {
|
||||
ServerStatus({
|
||||
required this.cpu,
|
||||
required this.mem,
|
||||
required this.sysVer,
|
||||
required this.uptime,
|
||||
required this.disk,
|
||||
required this.tcp,
|
||||
required this.netSpeed,
|
||||
|
||||
@@ -49,10 +49,18 @@ Future<ServerStatus> _getLinuxStatus(ServerStatusUpdateReq req) async {
|
||||
try {
|
||||
final sys = _parseSysVer(
|
||||
StatusCmdType.sys.find(segments),
|
||||
StatusCmdType.host.find(segments),
|
||||
);
|
||||
if (sys != null) {
|
||||
req.ss.sysVer = sys;
|
||||
req.ss.more[StatusCmdType.sys] = sys;
|
||||
}
|
||||
} catch (e, s) {
|
||||
Loggers.parse.warning(e, s);
|
||||
}
|
||||
|
||||
try {
|
||||
final host = StatusCmdType.host.find(segments);
|
||||
if (host.isNotEmpty) {
|
||||
req.ss.more[StatusCmdType.host] = host;
|
||||
}
|
||||
} catch (e, s) {
|
||||
Loggers.parse.warning(e, s);
|
||||
@@ -93,7 +101,7 @@ Future<ServerStatus> _getLinuxStatus(ServerStatusUpdateReq req) async {
|
||||
try {
|
||||
final uptime = _parseUpTime(StatusCmdType.uptime.find(segments));
|
||||
if (uptime != null) {
|
||||
req.ss.uptime = uptime;
|
||||
req.ss.more[StatusCmdType.uptime] = uptime;
|
||||
}
|
||||
} catch (e, s) {
|
||||
Loggers.parse.warning(e, s);
|
||||
@@ -118,6 +126,16 @@ Future<ServerStatus> _getLinuxStatus(ServerStatusUpdateReq req) async {
|
||||
} catch (e, s) {
|
||||
Loggers.parse.warning(e, s);
|
||||
}
|
||||
|
||||
try {
|
||||
final battery = StatusCmdType.battery.find(segments);
|
||||
if (battery.isNotEmpty && !battery.contains('No such')) {
|
||||
req.ss.more[StatusCmdType.battery] = battery;
|
||||
}
|
||||
} catch (e, s) {
|
||||
Loggers.parse.warning(e, s);
|
||||
}
|
||||
|
||||
return req.ss;
|
||||
}
|
||||
|
||||
@@ -134,7 +152,7 @@ Future<ServerStatus> _getBsdStatus(ServerStatusUpdateReq req) async {
|
||||
}
|
||||
|
||||
try {
|
||||
req.ss.sysVer = BSDStatusCmdType.sys.find(segments);
|
||||
req.ss.more[StatusCmdType.sys] = BSDStatusCmdType.sys.find(segments);
|
||||
} catch (e, s) {
|
||||
Loggers.parse.warning(e, s);
|
||||
}
|
||||
@@ -154,7 +172,7 @@ Future<ServerStatus> _getBsdStatus(ServerStatusUpdateReq req) async {
|
||||
try {
|
||||
final uptime = _parseUpTime(BSDStatusCmdType.uptime.find(segments));
|
||||
if (uptime != null) {
|
||||
req.ss.uptime = uptime;
|
||||
req.ss.more[StatusCmdType.uptime] = uptime;
|
||||
}
|
||||
} catch (e, s) {
|
||||
Loggers.parse.warning(e, s);
|
||||
@@ -181,10 +199,10 @@ String? _parseUpTime(String raw) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String? _parseSysVer(String raw, String hostname) {
|
||||
String? _parseSysVer(String raw) {
|
||||
final s = raw.split('=');
|
||||
if (s.length == 2) {
|
||||
return s[1].replaceAll('"', '').replaceFirst('\n', '');
|
||||
}
|
||||
return hostname.isEmpty ? null : hostname;
|
||||
return null;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user