mirror of
https://github.com/lollipopkit/flutter_server_box.git
synced 2025-12-17 07:14:28 +01:00
new: bakup includes history
This commit is contained in:
@@ -22,6 +22,7 @@ class Backup {
|
|||||||
final List<PrivateKeyInfo> keys;
|
final List<PrivateKeyInfo> keys;
|
||||||
final Map<String, dynamic> dockerHosts;
|
final Map<String, dynamic> dockerHosts;
|
||||||
final Map<String, dynamic> settings;
|
final Map<String, dynamic> settings;
|
||||||
|
final Map<String, dynamic> history;
|
||||||
final int? lastModTime;
|
final int? lastModTime;
|
||||||
|
|
||||||
const Backup({
|
const Backup({
|
||||||
@@ -32,6 +33,7 @@ class Backup {
|
|||||||
required this.keys,
|
required this.keys,
|
||||||
required this.dockerHosts,
|
required this.dockerHosts,
|
||||||
required this.settings,
|
required this.settings,
|
||||||
|
required this.history,
|
||||||
this.lastModTime,
|
this.lastModTime,
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -48,7 +50,8 @@ class Backup {
|
|||||||
.toList(),
|
.toList(),
|
||||||
dockerHosts = json['dockerHosts'] ?? {},
|
dockerHosts = json['dockerHosts'] ?? {},
|
||||||
settings = json['settings'] ?? {},
|
settings = json['settings'] ?? {},
|
||||||
lastModTime = json['lastModTime'];
|
lastModTime = json['lastModTime'],
|
||||||
|
history = json['history'] ?? {};
|
||||||
|
|
||||||
Map<String, dynamic> toJson() => {
|
Map<String, dynamic> toJson() => {
|
||||||
'version': version,
|
'version': version,
|
||||||
@@ -59,6 +62,7 @@ class Backup {
|
|||||||
'dockerHosts': dockerHosts,
|
'dockerHosts': dockerHosts,
|
||||||
'settings': settings,
|
'settings': settings,
|
||||||
'lastModTime': lastModTime,
|
'lastModTime': lastModTime,
|
||||||
|
'history': history,
|
||||||
};
|
};
|
||||||
|
|
||||||
Backup.loadFromStore()
|
Backup.loadFromStore()
|
||||||
@@ -69,7 +73,8 @@ class Backup {
|
|||||||
keys = Stores.key.fetch(),
|
keys = Stores.key.fetch(),
|
||||||
dockerHosts = Stores.docker.box.toJson(),
|
dockerHosts = Stores.docker.box.toJson(),
|
||||||
settings = Stores.setting.box.toJson(),
|
settings = Stores.setting.box.toJson(),
|
||||||
lastModTime = Stores.lastModTime;
|
lastModTime = Stores.lastModTime,
|
||||||
|
history = Stores.history.box.toJson();
|
||||||
|
|
||||||
static Future<String> backup() async {
|
static Future<String> backup() async {
|
||||||
final result = _diyEncrypt(json.encode(Backup.loadFromStore()));
|
final result = _diyEncrypt(json.encode(Backup.loadFromStore()));
|
||||||
@@ -83,11 +88,11 @@ class Backup {
|
|||||||
/// - Return true if restore success
|
/// - Return true if restore success
|
||||||
Future<bool?> restore({bool force = false}) async {
|
Future<bool?> restore({bool force = false}) async {
|
||||||
final curTime = Stores.lastModTime ?? 0;
|
final curTime = Stores.lastModTime ?? 0;
|
||||||
final thisTime = lastModTime ?? 0;
|
final bakTime = lastModTime ?? 0;
|
||||||
if (curTime == thisTime) {
|
if (curTime == bakTime) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (curTime > thisTime && !force) {
|
if (curTime > bakTime && !force) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
for (final s in settings.keys) {
|
for (final s in settings.keys) {
|
||||||
@@ -102,6 +107,9 @@ class Backup {
|
|||||||
for (final s in keys) {
|
for (final s in keys) {
|
||||||
Stores.key.put(s);
|
Stores.key.put(s);
|
||||||
}
|
}
|
||||||
|
for (final s in history.keys) {
|
||||||
|
Stores.history.box.put(s, history[s]);
|
||||||
|
}
|
||||||
for (final k in dockerHosts.keys) {
|
for (final k in dockerHosts.keys) {
|
||||||
final val = dockerHosts[k];
|
final val = dockerHosts[k];
|
||||||
if (val != null && val is String && val.isNotEmpty) {
|
if (val != null && val is String && val.isNotEmpty) {
|
||||||
|
|||||||
Reference in New Issue
Block a user