feat: fully complete manager api.

This commit is contained in:
Aunali321 2022-08-02 13:36:35 +05:30
parent 729ad82f77
commit 5542e9b943

View File

@ -5,41 +5,53 @@ import 'package:revanced_manager_flutter/constants.dart';
import 'github_api.dart'; import 'github_api.dart';
// use path_provider to get the path of the storage directory // use path_provider to get the path of the storage directory
Dio dio = Dio();
GithubAPI githubAPI = GithubAPI();
Future<String?> getPath() async { class ManagerAPI {
final path = await p.getApplicationSupportDirectory(); Dio dio = Dio();
final workDir = Directory('${path.path}/revanced').createSync(); GithubAPI githubAPI = GithubAPI();
final workDirPath = "${path.path}/revanced";
return workDirPath;
}
Future<File?> downloadAssets(String repo) async { Future<String?> getPath() async {
try { final path = await p.getApplicationSupportDirectory();
final workDir = await getPath(); final workDir = Directory('${path.path}/revanced').createSync();
final dlUrl = await githubAPI.latestRelease(ghOrg, repo); final workDirPath = "${path.path}/revanced";
final name = return workDirPath;
dlUrl?.split('/').lastWhere((element) => element.contains('revanced')); }
print(name);
final assetFile = File('$workDir/$name'); Future<File?> downloadAssets(String repo) async {
final response = await dio.get( try {
dlUrl!, final workDir = await getPath();
options: Options( final dlUrl = await githubAPI.latestRelease(ghOrg, repo);
responseType: ResponseType.bytes, final name = dlUrl
followRedirects: true, ?.split('/')
receiveTimeout: 0, .lastWhere((element) => element.contains('revanced'));
), print(name);
onReceiveProgress: (count, total) { final assetFile = File('$workDir/$name');
print('$count/$total'); final response = await dio.get(
}, dlUrl!,
); options: Options(
final raf = assetFile.openSync(mode: FileMode.write); responseType: ResponseType.bytes,
raf.writeFromSync(response.data); followRedirects: true,
raf.closeSync(); receiveTimeout: 0,
return assetFile; ),
} catch (e) { onReceiveProgress: (count, total) {
print(e); print('$count/$total');
return null; },
);
final raf = assetFile.openSync(mode: FileMode.write);
raf.writeFromSync(response.data);
raf.closeSync();
return assetFile;
} catch (e) {
print(e);
return null;
}
}
Future<void> downloadPatches() async {
await downloadAssets(patchesRepo);
}
Future<void> downloadIntegrations() async {
await downloadAssets(integrationsRepo);
} }
} }