fix: NAS disk amount

This commit is contained in:
lollipopkit
2024-03-16 10:55:12 +08:00
parent cf3a246520
commit f654557fae
2 changed files with 34 additions and 16 deletions

View File

@@ -41,7 +41,8 @@ class Disk {
} }
try { try {
final dev = vals[0]; final dev = vals[0];
if (!dev.startsWith('/dev')) continue; // Some NAS may have mounted path like this `//192.168.1.2/`
if (!_shouldCalc(dev)) continue;
list.add(Disk( list.add(Disk(
dev: dev, dev: dev,
mount: vals[5], mount: vals[5],
@@ -161,7 +162,7 @@ class DiskUsage {
var used = BigInt.zero; var used = BigInt.zero;
var size = BigInt.zero; var size = BigInt.zero;
for (var disk in disks) { for (var disk in disks) {
if (!disk.dev.startsWith('/dev')) continue; if (!_shouldCalc(disk.dev)) continue;
if (devs.contains(disk.dev)) continue; if (devs.contains(disk.dev)) continue;
devs.add(disk.dev); devs.add(disk.dev);
used += disk.used; used += disk.used;
@@ -170,3 +171,9 @@ class DiskUsage {
return DiskUsage(used: used, size: size); return DiskUsage(used: used, size: size);
} }
} }
bool _shouldCalc(String dev) {
if (dev.startsWith('/dev')) return true;
if (dev.startsWith('//')) return true;
return false;
}

View File

@@ -48,20 +48,31 @@ class ServerPrivateInfo {
this.jumpId, this.jumpId,
}) : id = '$user@$ip:$port'; }) : id = '$user@$ip:$port';
ServerPrivateInfo.fromJson(Map<String, dynamic> json) static ServerPrivateInfo fromJson(Map<String, dynamic> json) {
: ip = json["ip"].toString(), final ip = json["ip"] as String? ?? '';
port = json["port"] ?? 22, final port = json["port"] as int? ?? 22;
user = json["user"]?.toString() ?? 'root', final user = json["user"] as String? ?? 'root';
id = final name = json["name"] as String? ?? '';
'${json["user"]?.toString() ?? "root"}@${json["ip"].toString()}:${json["port"] ?? 22}', final pwd = json["authorization"] as String?;
name = json["name"]?.toString() ?? final keyId = json["pubKeyId"] as String?;
'${json["user"]?.toString() ?? 'root'}@${json["ip"].toString()}:${json["port"] ?? 22}', final tags = (json["tags"] as List?)?.cast<String>();
pwd = json["authorization"]?.toString(), final alterUrl = json["alterUrl"] as String?;
keyId = json["pubKeyId"]?.toString(), final autoConnect = json["autoConnect"] as bool?;
tags = json["tags"]?.cast<String>(), final jumpId = json["jumpId"] as String?;
alterUrl = json["alterUrl"]?.toString(),
autoConnect = json["autoConnect"], return ServerPrivateInfo(
jumpId = json["jumpId"]; name: name,
ip: ip,
port: port,
user: user,
pwd: pwd,
keyId: keyId,
tags: tags,
alterUrl: alterUrl,
autoConnect: autoConnect,
jumpId: jumpId,
);
}
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{}; final Map<String, dynamic> data = <String, dynamic>{};