downloadFiles method
Future<Response>
downloadFiles(
- List<
DownloadItem> urls, - String output,
- int threads,
- Map<
String, dynamic> headers, - Map<
String, dynamic> options, { - required dynamic onProgress(),
- required dynamic onDownload(),
override
Implementation
@override
Future<Response> downloadFiles(
List<DownloadItem> urls,
String output,
int threads,
Map<String, dynamic> headers,
Map<String, dynamic> options, {
required Function(ProgressDownload) onProgress,
required Function(SingleDownload) onDownload,
}) async {
String idCallback = Utils.generarIDUnico();
options["files"] = urls.map((e) => e.toMap()).toList();
options["url"] = "";
options["headers"] = headers;
options["threads"] = threads;
options["dest"] = output;
options["processId"] = idCallback;
listeners.add(CallBackListener(idCallback, onProgress, onDownload));
final res = await call("DOWNLOAD_FILES", options);
int statusCode = res["statusCode"];
String body = res["data"];
String status = res["status"];
Map<String, dynamic> info = Map<String, dynamic>.from(res["info"]);
Map<String, dynamic> network = Map<String, dynamic>.from(info["net"]);
ResponseInfoDetail infoDetail = ResponseInfoDetail(
timestamp: info["timestamp"],
size: info["size"],
);
ResponseNetworkDetail networkDetail = ResponseNetworkDetail(
type: network["type"],
typeName: network["typeName"],
state: network["state"],
extra: network["extra"],
);
ResponseDetail responseDetail = ResponseDetail(
network: networkDetail,
detail: infoDetail,
);
Future.delayed(const Duration(milliseconds: 200), () {
_removeCallBack(idCallback);
});
return Response(statusCode, {"data": body}, status, responseDetail);
}