mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-04 07:13:28 +01:00 
			
		
		
		
	Fix 'verify latest' option for GitHub (#1163)
This commit is contained in:
		@@ -234,7 +234,7 @@ class GitHub extends AppSource {
 | 
				
			|||||||
    bool verifyLatestTag = additionalSettings['verifyLatestTag'] == true;
 | 
					    bool verifyLatestTag = additionalSettings['verifyLatestTag'] == true;
 | 
				
			||||||
    bool dontSortReleasesList =
 | 
					    bool dontSortReleasesList =
 | 
				
			||||||
        additionalSettings['dontSortReleasesList'] == true;
 | 
					        additionalSettings['dontSortReleasesList'] == true;
 | 
				
			||||||
    String? latestTag;
 | 
					    dynamic latestRelease;
 | 
				
			||||||
    if (verifyLatestTag) {
 | 
					    if (verifyLatestTag) {
 | 
				
			||||||
      var temp = requestUrl.split('?');
 | 
					      var temp = requestUrl.split('?');
 | 
				
			||||||
      Response res = await sourceRequest(
 | 
					      Response res = await sourceRequest(
 | 
				
			||||||
@@ -245,12 +245,20 @@ class GitHub extends AppSource {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        throw getObtainiumHttpError(res);
 | 
					        throw getObtainiumHttpError(res);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      var jsres = jsonDecode(res.body);
 | 
					      latestRelease = jsonDecode(res.body);
 | 
				
			||||||
      latestTag = jsres['tag_name'] ?? jsres['name'];
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    Response res = await sourceRequest(requestUrl);
 | 
					    Response res = await sourceRequest(requestUrl);
 | 
				
			||||||
    if (res.statusCode == 200) {
 | 
					    if (res.statusCode == 200) {
 | 
				
			||||||
      var releases = jsonDecode(res.body) as List<dynamic>;
 | 
					      var releases = jsonDecode(res.body) as List<dynamic>;
 | 
				
			||||||
 | 
					      if (latestRelease != null) {
 | 
				
			||||||
 | 
					        var latestTag = latestRelease['tag_name'] ?? latestRelease['name'];
 | 
				
			||||||
 | 
					        if (releases
 | 
				
			||||||
 | 
					            .where((element) =>
 | 
				
			||||||
 | 
					                (element['tag_name'] ?? element['name']) == latestTag)
 | 
				
			||||||
 | 
					            .isEmpty) {
 | 
				
			||||||
 | 
					          releases = [latestRelease, ...releases];
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      List<MapEntry<String, String>> getReleaseAPKUrls(dynamic release) =>
 | 
					      List<MapEntry<String, String>> getReleaseAPKUrls(dynamic release) =>
 | 
				
			||||||
          (release['assets'] as List<dynamic>?)
 | 
					          (release['assets'] as List<dynamic>?)
 | 
				
			||||||
@@ -299,13 +307,13 @@ class GitHub extends AppSource {
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      if (latestTag != null &&
 | 
					      if (latestRelease != null &&
 | 
				
			||||||
          releases.isNotEmpty &&
 | 
					          releases.isNotEmpty &&
 | 
				
			||||||
          latestTag !=
 | 
					          latestRelease !=
 | 
				
			||||||
              (releases[releases.length - 1]['tag_name'] ??
 | 
					              (releases[releases.length - 1]['tag_name'] ??
 | 
				
			||||||
                  releases[0]['name'])) {
 | 
					                  releases[0]['name'])) {
 | 
				
			||||||
        var ind = releases.indexWhere(
 | 
					        var ind = releases.indexWhere((element) =>
 | 
				
			||||||
            (element) => latestTag == (element['tag_name'] ?? element['name']));
 | 
					            latestRelease == (element['tag_name'] ?? element['name']));
 | 
				
			||||||
        if (ind >= 0) {
 | 
					        if (ind >= 0) {
 | 
				
			||||||
          releases.add(releases.removeAt(ind));
 | 
					          releases.add(releases.removeAt(ind));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user