feat: show extraction progress (#1217)

This commit is contained in:
Matteo Pietro Dazzi authored and GitHub committed 2025-12-31 09:25:21 +08:00
1 parent dbe37befa3
commit b0e133b554
27 files changed
+2591 -40

No files matched your search

+16
View File
@@ -8,6 +8,18 @@ enum Status { ready, running, pause, wait, error, done }
enum Protocol { http, bt }
// ExtractStatus enum matching Go backend
enum ExtractStatus {
@JsonValue('')
none,
@JsonValue('extracting')
extracting,
@JsonValue('done')
done,
@JsonValue('error')
error
}
@JsonSerializable(explicitToJson: true)
class Task {
String id;
@@ -43,6 +55,8 @@ class Progress {
int downloaded;
int uploadSpeed;
int uploaded;
ExtractStatus extractStatus;
int extractProgress;
Progress({
required this.used,
@@ -50,6 +64,8 @@ class Progress {
required this.downloaded,
required this.uploadSpeed,
required this.uploaded,
this.extractStatus = ExtractStatus.none,
this.extractProgress = 0,
});
factory Progress.fromJson(Map<String, dynamic> json) =>
+13
View File
@@ -53,12 +53,23 @@ const _$ProtocolEnumMap = {
Protocol.bt: 'bt',
};
const _$ExtractStatusEnumMap = {
ExtractStatus.none: '',
ExtractStatus.extracting: 'extracting',
ExtractStatus.done: 'done',
ExtractStatus.error: 'error',
};
Progress _$ProgressFromJson(Map<String, dynamic> json) => Progress(
used: (json['used'] as num).toInt(),
speed: (json['speed'] as num).toInt(),
downloaded: (json['downloaded'] as num).toInt(),
uploadSpeed: (json['uploadSpeed'] as num).toInt(),
uploaded: (json['uploaded'] as num).toInt(),
extractStatus: $enumDecodeNullable(
_$ExtractStatusEnumMap, json['extractStatus']) ??
ExtractStatus.none,
extractProgress: (json['extractProgress'] as num?)?.toInt() ?? 0,
);
Map<String, dynamic> _$ProgressToJson(Progress instance) => <String, dynamic>{
@@ -67,4 +78,6 @@ Map<String, dynamic> _$ProgressToJson(Progress instance) => <String, dynamic>{
'downloaded': instance.downloaded,
'uploadSpeed': instance.uploadSpeed,
'uploaded': instance.uploaded,
'extractStatus': _$ExtractStatusEnumMap[instance.extractStatus]!,
'extractProgress': instance.extractProgress,
};