fix: cloud sync (#769)

This commit is contained in:
lollipopkit🏳️‍⚧️
2025-06-04 00:11:31 +08:00
committed by GitHub
parent 9547d92ac5
commit 0c1ada0067
70 changed files with 2348 additions and 1906 deletions

View File

@@ -0,0 +1,21 @@
import 'package:hive_ce/hive.dart';
import 'package:server_box/data/model/app/menu/server_func.dart';
import 'package:server_box/data/model/app/net_view.dart';
import 'package:server_box/data/model/server/custom.dart';
import 'package:server_box/data/model/server/private_key_info.dart';
import 'package:server_box/data/model/server/server_private_info.dart';
import 'package:server_box/data/model/server/snippet.dart';
import 'package:server_box/data/model/server/wol_cfg.dart';
import 'package:server_box/data/model/ssh/virtual_key.dart';
@GenerateAdapters([
AdapterSpec<PrivateKeyInfo>(),
AdapterSpec<Snippet>(),
AdapterSpec<Spi>(),
AdapterSpec<VirtKey>(),
AdapterSpec<NetViewType>(),
AdapterSpec<ServerFuncBtn>(),
AdapterSpec<ServerCustom>(),
AdapterSpec<WakeOnLanCfg>(),
])
part 'hive_adapters.g.dart';

View File

@@ -0,0 +1,555 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'hive_adapters.dart';
// **************************************************************************
// AdaptersGenerator
// **************************************************************************
class PrivateKeyInfoAdapter extends TypeAdapter<PrivateKeyInfo> {
@override
final typeId = 1;
@override
PrivateKeyInfo read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return PrivateKeyInfo(id: fields[0] as String, key: fields[1] as String);
}
@override
void write(BinaryWriter writer, PrivateKeyInfo obj) {
writer
..writeByte(2)
..writeByte(0)
..write(obj.id)
..writeByte(1)
..write(obj.key);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is PrivateKeyInfoAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class SnippetAdapter extends TypeAdapter<Snippet> {
@override
final typeId = 2;
@override
Snippet read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return Snippet(
name: fields[0] as String,
script: fields[1] as String,
tags: (fields[2] as List?)?.cast<String>(),
note: fields[3] as String?,
autoRunOn: (fields[4] as List?)?.cast<String>(),
);
}
@override
void write(BinaryWriter writer, Snippet obj) {
writer
..writeByte(5)
..writeByte(0)
..write(obj.name)
..writeByte(1)
..write(obj.script)
..writeByte(2)
..write(obj.tags)
..writeByte(3)
..write(obj.note)
..writeByte(4)
..write(obj.autoRunOn);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is SnippetAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class SpiAdapter extends TypeAdapter<Spi> {
@override
final typeId = 3;
@override
Spi read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return Spi(
name: fields[0] as String,
ip: fields[1] as String,
port: (fields[2] as num).toInt(),
user: fields[3] as String,
pwd: fields[4] as String?,
keyId: fields[5] as String?,
tags: (fields[6] as List?)?.cast<String>(),
alterUrl: fields[7] as String?,
autoConnect: fields[8] == null ? true : fields[8] as bool,
jumpId: fields[9] as String?,
custom: fields[10] as ServerCustom?,
wolCfg: fields[11] as WakeOnLanCfg?,
envs: (fields[12] as Map?)?.cast<String, String>(),
id: fields[13] == null ? '' : fields[13] as String,
);
}
@override
void write(BinaryWriter writer, Spi obj) {
writer
..writeByte(14)
..writeByte(0)
..write(obj.name)
..writeByte(1)
..write(obj.ip)
..writeByte(2)
..write(obj.port)
..writeByte(3)
..write(obj.user)
..writeByte(4)
..write(obj.pwd)
..writeByte(5)
..write(obj.keyId)
..writeByte(6)
..write(obj.tags)
..writeByte(7)
..write(obj.alterUrl)
..writeByte(8)
..write(obj.autoConnect)
..writeByte(9)
..write(obj.jumpId)
..writeByte(10)
..write(obj.custom)
..writeByte(11)
..write(obj.wolCfg)
..writeByte(12)
..write(obj.envs)
..writeByte(13)
..write(obj.id);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is SpiAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class VirtKeyAdapter extends TypeAdapter<VirtKey> {
@override
final typeId = 4;
@override
VirtKey read(BinaryReader reader) {
switch (reader.readByte()) {
case 0:
return VirtKey.esc;
case 1:
return VirtKey.alt;
case 2:
return VirtKey.home;
case 3:
return VirtKey.up;
case 4:
return VirtKey.end;
case 5:
return VirtKey.sftp;
case 6:
return VirtKey.snippet;
case 7:
return VirtKey.tab;
case 8:
return VirtKey.ctrl;
case 9:
return VirtKey.left;
case 10:
return VirtKey.down;
case 11:
return VirtKey.right;
case 12:
return VirtKey.clipboard;
case 13:
return VirtKey.ime;
case 14:
return VirtKey.pgup;
case 15:
return VirtKey.pgdn;
case 16:
return VirtKey.slash;
case 17:
return VirtKey.backSlash;
case 18:
return VirtKey.underscore;
case 19:
return VirtKey.plus;
case 20:
return VirtKey.equal;
case 21:
return VirtKey.minus;
case 22:
return VirtKey.parenLeft;
case 23:
return VirtKey.parenRight;
case 24:
return VirtKey.bracketLeft;
case 25:
return VirtKey.bracketRight;
case 26:
return VirtKey.braceLeft;
case 27:
return VirtKey.braceRight;
case 28:
return VirtKey.chevronLeft;
case 29:
return VirtKey.chevronRight;
case 30:
return VirtKey.colon;
case 31:
return VirtKey.semicolon;
case 32:
return VirtKey.f1;
case 33:
return VirtKey.f2;
case 34:
return VirtKey.f3;
case 35:
return VirtKey.f4;
case 36:
return VirtKey.f5;
case 37:
return VirtKey.f6;
case 38:
return VirtKey.f7;
case 39:
return VirtKey.f8;
case 40:
return VirtKey.f9;
case 41:
return VirtKey.f10;
case 42:
return VirtKey.f11;
case 43:
return VirtKey.f12;
default:
return VirtKey.esc;
}
}
@override
void write(BinaryWriter writer, VirtKey obj) {
switch (obj) {
case VirtKey.esc:
writer.writeByte(0);
case VirtKey.alt:
writer.writeByte(1);
case VirtKey.home:
writer.writeByte(2);
case VirtKey.up:
writer.writeByte(3);
case VirtKey.end:
writer.writeByte(4);
case VirtKey.sftp:
writer.writeByte(5);
case VirtKey.snippet:
writer.writeByte(6);
case VirtKey.tab:
writer.writeByte(7);
case VirtKey.ctrl:
writer.writeByte(8);
case VirtKey.left:
writer.writeByte(9);
case VirtKey.down:
writer.writeByte(10);
case VirtKey.right:
writer.writeByte(11);
case VirtKey.clipboard:
writer.writeByte(12);
case VirtKey.ime:
writer.writeByte(13);
case VirtKey.pgup:
writer.writeByte(14);
case VirtKey.pgdn:
writer.writeByte(15);
case VirtKey.slash:
writer.writeByte(16);
case VirtKey.backSlash:
writer.writeByte(17);
case VirtKey.underscore:
writer.writeByte(18);
case VirtKey.plus:
writer.writeByte(19);
case VirtKey.equal:
writer.writeByte(20);
case VirtKey.minus:
writer.writeByte(21);
case VirtKey.parenLeft:
writer.writeByte(22);
case VirtKey.parenRight:
writer.writeByte(23);
case VirtKey.bracketLeft:
writer.writeByte(24);
case VirtKey.bracketRight:
writer.writeByte(25);
case VirtKey.braceLeft:
writer.writeByte(26);
case VirtKey.braceRight:
writer.writeByte(27);
case VirtKey.chevronLeft:
writer.writeByte(28);
case VirtKey.chevronRight:
writer.writeByte(29);
case VirtKey.colon:
writer.writeByte(30);
case VirtKey.semicolon:
writer.writeByte(31);
case VirtKey.f1:
writer.writeByte(32);
case VirtKey.f2:
writer.writeByte(33);
case VirtKey.f3:
writer.writeByte(34);
case VirtKey.f4:
writer.writeByte(35);
case VirtKey.f5:
writer.writeByte(36);
case VirtKey.f6:
writer.writeByte(37);
case VirtKey.f7:
writer.writeByte(38);
case VirtKey.f8:
writer.writeByte(39);
case VirtKey.f9:
writer.writeByte(40);
case VirtKey.f10:
writer.writeByte(41);
case VirtKey.f11:
writer.writeByte(42);
case VirtKey.f12:
writer.writeByte(43);
}
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is VirtKeyAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class NetViewTypeAdapter extends TypeAdapter<NetViewType> {
@override
final typeId = 5;
@override
NetViewType read(BinaryReader reader) {
switch (reader.readByte()) {
case 0:
return NetViewType.conn;
case 1:
return NetViewType.speed;
case 2:
return NetViewType.traffic;
default:
return NetViewType.conn;
}
}
@override
void write(BinaryWriter writer, NetViewType obj) {
switch (obj) {
case NetViewType.conn:
writer.writeByte(0);
case NetViewType.speed:
writer.writeByte(1);
case NetViewType.traffic:
writer.writeByte(2);
}
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is NetViewTypeAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class ServerFuncBtnAdapter extends TypeAdapter<ServerFuncBtn> {
@override
final typeId = 6;
@override
ServerFuncBtn read(BinaryReader reader) {
switch (reader.readByte()) {
case 0:
return ServerFuncBtn.terminal;
case 1:
return ServerFuncBtn.sftp;
case 2:
return ServerFuncBtn.container;
case 3:
return ServerFuncBtn.process;
case 5:
return ServerFuncBtn.snippet;
case 6:
return ServerFuncBtn.iperf;
case 8:
return ServerFuncBtn.systemd;
default:
return ServerFuncBtn.terminal;
}
}
@override
void write(BinaryWriter writer, ServerFuncBtn obj) {
switch (obj) {
case ServerFuncBtn.terminal:
writer.writeByte(0);
case ServerFuncBtn.sftp:
writer.writeByte(1);
case ServerFuncBtn.container:
writer.writeByte(2);
case ServerFuncBtn.process:
writer.writeByte(3);
case ServerFuncBtn.snippet:
writer.writeByte(5);
case ServerFuncBtn.iperf:
writer.writeByte(6);
case ServerFuncBtn.systemd:
writer.writeByte(8);
}
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is ServerFuncBtnAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class ServerCustomAdapter extends TypeAdapter<ServerCustom> {
@override
final typeId = 7;
@override
ServerCustom read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return ServerCustom(
pveAddr: fields[1] as String?,
pveIgnoreCert: fields[2] == null ? false : fields[2] as bool,
cmds: (fields[3] as Map?)?.cast<String, String>(),
preferTempDev: fields[4] as String?,
logoUrl: fields[5] as String?,
netDev: fields[6] as String?,
scriptDir: fields[7] as String?,
);
}
@override
void write(BinaryWriter writer, ServerCustom obj) {
writer
..writeByte(7)
..writeByte(1)
..write(obj.pveAddr)
..writeByte(2)
..write(obj.pveIgnoreCert)
..writeByte(3)
..write(obj.cmds)
..writeByte(4)
..write(obj.preferTempDev)
..writeByte(5)
..write(obj.logoUrl)
..writeByte(6)
..write(obj.netDev)
..writeByte(7)
..write(obj.scriptDir);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is ServerCustomAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}
class WakeOnLanCfgAdapter extends TypeAdapter<WakeOnLanCfg> {
@override
final typeId = 8;
@override
WakeOnLanCfg read(BinaryReader reader) {
final numOfFields = reader.readByte();
final fields = <int, dynamic>{
for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
};
return WakeOnLanCfg(
mac: fields[0] as String,
ip: fields[1] as String,
pwd: fields[2] as String?,
);
}
@override
void write(BinaryWriter writer, WakeOnLanCfg obj) {
writer
..writeByte(3)
..writeByte(0)
..write(obj.mac)
..writeByte(1)
..write(obj.ip)
..writeByte(2)
..write(obj.pwd);
}
@override
int get hashCode => typeId.hashCode;
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is WakeOnLanCfgAdapter &&
runtimeType == other.runtimeType &&
typeId == other.typeId;
}

View File

@@ -0,0 +1,207 @@
# Generated by Hive CE
# Manual modifications may be necessary for certain migrations
# Check in to version control
nextTypeId: 9
types:
PrivateKeyInfo:
typeId: 1
nextIndex: 2
fields:
id:
index: 0
key:
index: 1
Snippet:
typeId: 2
nextIndex: 5
fields:
name:
index: 0
script:
index: 1
tags:
index: 2
note:
index: 3
autoRunOn:
index: 4
Spi:
typeId: 3
nextIndex: 14
fields:
name:
index: 0
ip:
index: 1
port:
index: 2
user:
index: 3
pwd:
index: 4
keyId:
index: 5
tags:
index: 6
alterUrl:
index: 7
autoConnect:
index: 8
jumpId:
index: 9
custom:
index: 10
wolCfg:
index: 11
envs:
index: 12
id:
index: 13
VirtKey:
typeId: 4
nextIndex: 44
fields:
esc:
index: 0
alt:
index: 1
home:
index: 2
up:
index: 3
end:
index: 4
sftp:
index: 5
snippet:
index: 6
tab:
index: 7
ctrl:
index: 8
left:
index: 9
down:
index: 10
right:
index: 11
clipboard:
index: 12
ime:
index: 13
pgup:
index: 14
pgdn:
index: 15
slash:
index: 16
backSlash:
index: 17
underscore:
index: 18
plus:
index: 19
equal:
index: 20
minus:
index: 21
parenLeft:
index: 22
parenRight:
index: 23
bracketLeft:
index: 24
bracketRight:
index: 25
braceLeft:
index: 26
braceRight:
index: 27
chevronLeft:
index: 28
chevronRight:
index: 29
colon:
index: 30
semicolon:
index: 31
f1:
index: 32
f2:
index: 33
f3:
index: 34
f4:
index: 35
f5:
index: 36
f6:
index: 37
f7:
index: 38
f8:
index: 39
f9:
index: 40
f10:
index: 41
f11:
index: 42
f12:
index: 43
NetViewType:
typeId: 5
nextIndex: 3
fields:
conn:
index: 0
speed:
index: 1
traffic:
index: 2
ServerFuncBtn:
typeId: 6
nextIndex: 9
fields:
terminal:
index: 0
sftp:
index: 1
container:
index: 2
process:
index: 3
snippet:
index: 5
iperf:
index: 6
systemd:
index: 8
ServerCustom:
typeId: 7
nextIndex: 8
fields:
pveAddr:
index: 1
pveIgnoreCert:
index: 2
cmds:
index: 3
preferTempDev:
index: 4
logoUrl:
index: 5
netDev:
index: 6
scriptDir:
index: 7
WakeOnLanCfg:
typeId: 8
nextIndex: 3
fields:
mac:
index: 0
ip:
index: 1
pwd:
index: 2

View File

@@ -0,0 +1,32 @@
// Generated by Hive CE
// Do not modify
// Check in to version control
import 'package:hive_ce/hive.dart';
import 'package:server_box/hive/hive_adapters.dart';
extension HiveRegistrar on HiveInterface {
void registerAdapters() {
registerAdapter(NetViewTypeAdapter());
registerAdapter(PrivateKeyInfoAdapter());
registerAdapter(ServerCustomAdapter());
registerAdapter(ServerFuncBtnAdapter());
registerAdapter(SnippetAdapter());
registerAdapter(SpiAdapter());
registerAdapter(VirtKeyAdapter());
registerAdapter(WakeOnLanCfgAdapter());
}
}
extension IsolatedHiveRegistrar on IsolatedHiveInterface {
void registerAdapters() {
registerAdapter(NetViewTypeAdapter());
registerAdapter(PrivateKeyInfoAdapter());
registerAdapter(ServerCustomAdapter());
registerAdapter(ServerFuncBtnAdapter());
registerAdapter(SnippetAdapter());
registerAdapter(SpiAdapter());
registerAdapter(VirtKeyAdapter());
registerAdapter(WakeOnLanCfgAdapter());
}
}