mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-10-20 17:53:46 +02:00
Compare commits
5 Commits
a37509c5a3
...
e8f9159571
Author | SHA1 | Date | |
---|---|---|---|
|
e8f9159571 | ||
|
d8cd17c858 | ||
|
01f423a741 | ||
|
77e764e76a | ||
|
9524148de7 |
@@ -36,13 +36,15 @@ class RuStore extends AppSource {
|
||||
return Uri.parse(standardUrl).pathSegments.last;
|
||||
}
|
||||
|
||||
Future<String> decodeString(String str) async {
|
||||
Future<dynamic> decodeJsonBody(Uint8List bytes) async {
|
||||
try {
|
||||
return (await CharsetDetector.autoDecode(
|
||||
Uint8List.fromList(str.codeUnits),
|
||||
)).string;
|
||||
return jsonDecode((await CharsetDetector.autoDecode(bytes)).string);
|
||||
} catch (e) {
|
||||
return str;
|
||||
try {
|
||||
return jsonDecode(utf8.decode(bytes));
|
||||
} catch (_) {
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -59,7 +61,7 @@ class RuStore extends AppSource {
|
||||
if (res0.statusCode != 200) {
|
||||
throw getObtainiumHttpError(res0);
|
||||
}
|
||||
var appDetails = jsonDecode(res0.body)['body'];
|
||||
var appDetails = (await decodeJsonBody(res0.bodyBytes))['body'];
|
||||
if (appDetails['appId'] == null) {
|
||||
throw NoReleasesError();
|
||||
}
|
||||
@@ -83,15 +85,11 @@ class RuStore extends AppSource {
|
||||
followRedirects: false,
|
||||
postBody: {"appId": appDetails['appId'], "firstInstall": true},
|
||||
);
|
||||
var downloadDetails = jsonDecode(res1.body)['body'];
|
||||
var downloadDetails = (await decodeJsonBody(res1.bodyBytes))['body'];
|
||||
if (res1.statusCode != 200 || downloadDetails['apkUrl'] == null) {
|
||||
throw NoAPKError();
|
||||
}
|
||||
|
||||
appName = await decodeString(appName);
|
||||
author = await decodeString(author);
|
||||
changeLog = changeLog != null ? await decodeString(changeLog) : null;
|
||||
|
||||
return APKDetails(
|
||||
version,
|
||||
getApkUrlsFromUrls([
|
||||
|
@@ -1084,7 +1084,8 @@ class AppsProvider with ChangeNotifier {
|
||||
var trackOnly = apps[id]!.app.additionalSettings['trackOnly'] == true;
|
||||
var refreshBeforeDownload =
|
||||
apps[id]!.app.additionalSettings['refreshBeforeDownload'] == true ||
|
||||
apps[id]!.app.apkUrls.first.value == 'placeholder';
|
||||
apps[id]!.app.apkUrls.isNotEmpty &&
|
||||
apps[id]!.app.apkUrls.first.value == 'placeholder';
|
||||
if (refreshBeforeDownload) {
|
||||
await checkUpdate(apps[id]!.app.id);
|
||||
}
|
||||
|
@@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||
# In Windows, build-name is used as the major, minor, and patch parts
|
||||
# of the product and file versions while build-number is used as the build suffix.
|
||||
version: 1.2.2+2318
|
||||
version: 1.2.3+2319
|
||||
|
||||
environment:
|
||||
sdk: ^3.8.1
|
||||
|
Reference in New Issue
Block a user