mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-07-16 22:56:44 +02:00
GitHub - do not use filtered asset release dates (#2012)
This commit is contained in:
@ -275,14 +275,15 @@ class GitHub extends AppSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
List<MapEntry<String, String>> getReleaseAssetUrls(dynamic release) =>
|
findReleaseAssetUrls(dynamic release) =>
|
||||||
(release['assets'] as List<dynamic>?)?.map((e) {
|
(release['assets'] as List<dynamic>?)?.map((e) {
|
||||||
var url = !e['name'].toString().toLowerCase().endsWith('.apk')
|
var url = !e['name'].toString().toLowerCase().endsWith('.apk')
|
||||||
? (e['browser_download_url'] ?? e['url'])
|
? (e['browser_download_url'] ?? e['url'])
|
||||||
: (e['url'] ?? e['browser_download_url']);
|
: (e['url'] ?? e['browser_download_url']);
|
||||||
return (e['name'] != null) && (url != null)
|
e['final_url'] = (e['name'] != null) && (url != null)
|
||||||
? MapEntry(e['name'] as String, url as String)
|
? MapEntry(e['name'] as String, url as String)
|
||||||
: const MapEntry('', '');
|
: const MapEntry('', '');
|
||||||
|
return e;
|
||||||
}).toList() ??
|
}).toList() ??
|
||||||
[];
|
[];
|
||||||
|
|
||||||
@ -293,7 +294,9 @@ class GitHub extends AppSource {
|
|||||||
? DateTime.parse(rel['commit']['created'])
|
? DateTime.parse(rel['commit']['created'])
|
||||||
: null;
|
: null;
|
||||||
DateTime? getNewestAssetDateFromRelease(dynamic rel) {
|
DateTime? getNewestAssetDateFromRelease(dynamic rel) {
|
||||||
var t = (rel['assets'] as List<dynamic>?)
|
var allAssets = rel['assets'] as List<dynamic>?;
|
||||||
|
var filteredAssets = rel['filteredAssets'] as List<dynamic>?;
|
||||||
|
var t = (filteredAssets ?? allAssets)
|
||||||
?.map((e) {
|
?.map((e) {
|
||||||
return e?['updated_at'] != null
|
return e?['updated_at'] != null
|
||||||
? DateTime.parse(e['updated_at'])
|
? DateTime.parse(e['updated_at'])
|
||||||
@ -387,18 +390,38 @@ class GitHub extends AppSource {
|
|||||||
.hasMatch(((releases[i]['body'] as String?) ?? '').trim())) {
|
.hasMatch(((releases[i]['body'] as String?) ?? '').trim())) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
var allAssetUrls = getReleaseAssetUrls(releases[i]);
|
var allAssetsWithUrls = findReleaseAssetUrls(releases[i]);
|
||||||
List<MapEntry<String, String>> apkUrls = allAssetUrls
|
List<MapEntry<String, String>> allAssetUrls = allAssetsWithUrls
|
||||||
.where((element) => element.key.toLowerCase().endsWith('.apk'))
|
.map((e) => e['final_url'] as MapEntry<String, String>)
|
||||||
|
.toList();
|
||||||
|
var apkAssetsWithUrls = allAssetsWithUrls
|
||||||
|
.where((element) =>
|
||||||
|
(element['final_url'] as MapEntry<String, String>)
|
||||||
|
.key
|
||||||
|
.toLowerCase()
|
||||||
|
.endsWith('.apk'))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
apkUrls = filterApks(apkUrls, additionalSettings['apkFilterRegEx'],
|
var filteredApkUrls = filterApks(
|
||||||
|
apkAssetsWithUrls
|
||||||
|
.map((e) => e['final_url'] as MapEntry<String, String>)
|
||||||
|
.toList(),
|
||||||
|
additionalSettings['apkFilterRegEx'],
|
||||||
additionalSettings['invertAPKFilter']);
|
additionalSettings['invertAPKFilter']);
|
||||||
if (apkUrls.isEmpty && additionalSettings['trackOnly'] != true) {
|
var filteredApks = apkAssetsWithUrls
|
||||||
|
.where((e) => filteredApkUrls
|
||||||
|
.where((e2) =>
|
||||||
|
e2.key == (e['final_url'] as MapEntry<String, String>).key)
|
||||||
|
.isNotEmpty)
|
||||||
|
.toList();
|
||||||
|
|
||||||
|
if (apkAssetsWithUrls.isEmpty &&
|
||||||
|
additionalSettings['trackOnly'] != true) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
targetRelease = releases[i];
|
targetRelease = releases[i];
|
||||||
targetRelease['apkUrls'] = apkUrls;
|
targetRelease['apkUrls'] = filteredApkUrls;
|
||||||
|
targetRelease['filteredAssets'] = filteredApks;
|
||||||
targetRelease['version'] =
|
targetRelease['version'] =
|
||||||
additionalSettings['releaseTitleAsVersion'] == true
|
additionalSettings['releaseTitleAsVersion'] == true
|
||||||
? nameToFilter
|
? nameToFilter
|
||||||
@ -420,6 +443,7 @@ class GitHub extends AppSource {
|
|||||||
throw NoReleasesError();
|
throw NoReleasesError();
|
||||||
}
|
}
|
||||||
String? version = targetRelease['version'];
|
String? version = targetRelease['version'];
|
||||||
|
|
||||||
DateTime? releaseDate = getReleaseDateFromRelease(
|
DateTime? releaseDate = getReleaseDateFromRelease(
|
||||||
targetRelease, useLatestAssetDateAsReleaseDate);
|
targetRelease, useLatestAssetDateAsReleaseDate);
|
||||||
if (version == null) {
|
if (version == null) {
|
||||||
|
Reference in New Issue
Block a user