feat: reuse fetcher (#71)

This commit is contained in:
Li Wei authored and GitHub committed 2023-02-06 20:58:13 +08:00
1 parent 17cb59c606
commit 1a3c8c026b
36 files changed
+475 -297

No files matched your search

+5 -3
View File
@@ -1,17 +1,19 @@
import 'package:json_annotation/json_annotation.dart';
import 'options.dart';
import 'resource.dart';
import 'request.dart';
part 'create_task.g.dart';
@JsonSerializable(explicitToJson: true)
class CreateTask {
Resource res;
String? rid;
Request? req;
Options? opts;
CreateTask({
required this.res,
this.rid,
this.req,
this.opts,
});
+7 -4
View File
@@ -7,16 +7,17 @@ part of 'create_task.dart';
// **************************************************************************
CreateTask _$CreateTaskFromJson(Map<String, dynamic> json) => CreateTask(
res: Resource.fromJson(json['res'] as Map<String, dynamic>),
rid: json['rid'] as String?,
req: json['req'] == null
? null
: Request.fromJson(json['req'] as Map<String, dynamic>),
opts: json['opts'] == null
? null
: Options.fromJson(json['opts'] as Map<String, dynamic>),
);
Map<String, dynamic> _$CreateTaskToJson(CreateTask instance) {
final val = <String, dynamic>{
'res': instance.res.toJson(),
};
final val = <String, dynamic>{};
void writeNotNull(String key, dynamic value) {
if (value != null) {
@@ -24,6 +25,8 @@ Map<String, dynamic> _$CreateTaskToJson(CreateTask instance) {
}
}
writeNotNull('rid', instance.rid);
writeNotNull('req', instance.req?.toJson());
writeNotNull('opts', instance.opts?.toJson());
return val;
}
@@ -22,8 +22,8 @@ class ProtocolConfig {
ProtocolConfig();
factory ProtocolConfig.fromJson(Map<String, dynamic> json) =>
_$ProtocolConfigFromJson(json);
factory ProtocolConfig.fromJson(Map<String, dynamic>? json) =>
json == null ? ProtocolConfig() : _$ProtocolConfigFromJson(json);
Map<String, dynamic> toJson() => _$ProtocolConfigToJson(this);
}
@@ -57,8 +57,8 @@ class ExtraConfig {
ExtraConfig();
factory ExtraConfig.fromJson(Map<String, dynamic> json) =>
_$ExtraConfigFromJson(json);
factory ExtraConfig.fromJson(Map<String, dynamic>? json) =>
json == null ? ExtraConfig() : _$ExtraConfigFromJson(json);
Map<String, dynamic> toJson() => _$ExtraConfigToJson(this);
}
@@ -10,8 +10,8 @@ DownloaderConfig _$DownloaderConfigFromJson(Map<String, dynamic> json) =>
DownloaderConfig()
..downloadDir = json['downloadDir'] as String
..protocolConfig = ProtocolConfig.fromJson(
json['protocolConfig'] as Map<String, dynamic>)
..extra = ExtraConfig.fromJson(json['extra'] as Map<String, dynamic>);
json['protocolConfig'] as Map<String, dynamic>?)
..extra = ExtraConfig.fromJson(json['extra'] as Map<String, dynamic>?);
Map<String, dynamic> _$DownloaderConfigToJson(DownloaderConfig instance) =>
<String, dynamic>{
+22
View File
@@ -0,0 +1,22 @@
import 'package:gopeed/api/model/options.dart';
import 'package:gopeed/api/model/request.dart';
import 'package:gopeed/api/model/resource.dart';
import 'package:json_annotation/json_annotation.dart';
part 'meta.g.dart';
@JsonSerializable(explicitToJson: true)
class Meta {
Request req;
Resource res;
Options opts;
Meta({
required this.req,
required this.res,
required this.opts,
});
factory Meta.fromJson(Map<String, dynamic> json) => _$MetaFromJson(json);
Map<String, dynamic> toJson() => _$MetaToJson(this);
}
+19
View File
@@ -0,0 +1,19 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'meta.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
Meta _$MetaFromJson(Map<String, dynamic> json) => Meta(
req: Request.fromJson(json['req'] as Map<String, dynamic>),
res: Resource.fromJson(json['res'] as Map<String, dynamic>),
opts: Options.fromJson(json['opts'] as Map<String, dynamic>),
);
Map<String, dynamic> _$MetaToJson(Meta instance) => <String, dynamic>{
'req': instance.req.toJson(),
'res': instance.res.toJson(),
'opts': instance.opts.toJson(),
};
+1 -1
View File
@@ -2,7 +2,7 @@ import 'package:json_annotation/json_annotation.dart';
part 'request.g.dart';
@JsonSerializable(explicitToJson: true, genericArgumentFactories: true)
@JsonSerializable(explicitToJson: true)
class Request {
String url;
Map<String, dynamic>? extra;
@@ -0,0 +1,19 @@
import 'package:gopeed/api/model/resource.dart';
import 'package:json_annotation/json_annotation.dart';
part 'resolve_result.g.dart';
@JsonSerializable(explicitToJson: true)
class ResolveResult {
String id;
Resource res;
ResolveResult({
required this.id,
required this.res,
});
factory ResolveResult.fromJson(Map<String, dynamic> json) =>
_$ResolveResultFromJson(json);
Map<String, dynamic> toJson() => _$ResolveResultToJson(this);
}
@@ -0,0 +1,19 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'resolve_result.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
ResolveResult _$ResolveResultFromJson(Map<String, dynamic> json) =>
ResolveResult(
id: json['id'] as String,
res: Resource.fromJson(json['res'] as Map<String, dynamic>),
);
Map<String, dynamic> _$ResolveResultToJson(ResolveResult instance) =>
<String, dynamic>{
'id': instance.id,
'res': instance.res.toJson(),
};
+1 -5
View File
@@ -1,12 +1,9 @@
import 'package:json_annotation/json_annotation.dart';
import 'request.dart';
part 'resource.g.dart';
@JsonSerializable(explicitToJson: true)
class Resource {
Request req;
String name;
int size;
bool range;
@@ -14,8 +11,7 @@ class Resource {
String hash;
Resource(
{required this.req,
required this.name,
{required this.name,
required this.size,
required this.range,
required this.files,
-2
View File
@@ -7,7 +7,6 @@ part of 'resource.dart';
// **************************************************************************
Resource _$ResourceFromJson(Map<String, dynamic> json) => Resource(
req: Request.fromJson(json['req'] as Map<String, dynamic>),
name: json['name'] as String,
size: json['size'] as int,
range: json['range'] as bool,
@@ -18,7 +17,6 @@ Resource _$ResourceFromJson(Map<String, dynamic> json) => Resource(
);
Map<String, dynamic> _$ResourceToJson(Resource instance) => <String, dynamic>{
'req': instance.req.toJson(),
'name': instance.name,
'size': instance.size,
'range': instance.range,
+3 -4
View File
@@ -1,5 +1,6 @@
import 'package:json_annotation/json_annotation.dart';
import 'meta.dart';
import 'options.dart';
import 'resource.dart';
@@ -10,8 +11,7 @@ enum Status { ready, running, pause, error, done }
@JsonSerializable(explicitToJson: true)
class Task {
String id;
Resource res;
Options opts;
Meta meta;
Status status;
Progress progress;
int size;
@@ -19,8 +19,7 @@ class Task {
Task({
required this.id,
required this.res,
required this.opts,
required this.meta,
required this.status,
required this.progress,
required this.size,
+2 -4
View File
@@ -8,8 +8,7 @@ part of 'task.dart';
Task _$TaskFromJson(Map<String, dynamic> json) => Task(
id: json['id'] as String,
res: Resource.fromJson(json['res'] as Map<String, dynamic>),
opts: Options.fromJson(json['opts'] as Map<String, dynamic>),
meta: Meta.fromJson(json['meta'] as Map<String, dynamic>),
status: $enumDecode(_$StatusEnumMap, json['status']),
progress: Progress.fromJson(json['progress'] as Map<String, dynamic>),
size: json['size'] as int,
@@ -18,8 +17,7 @@ Task _$TaskFromJson(Map<String, dynamic> json) => Task(
Map<String, dynamic> _$TaskToJson(Task instance) => <String, dynamic>{
'id': instance.id,
'res': instance.res.toJson(),
'opts': instance.opts.toJson(),
'meta': instance.meta.toJson(),
'status': _$StatusEnumMap[instance.status]!,
'progress': instance.progress.toJson(),
'size': instance.size,