mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-04 07:13:28 +01:00 
			
		
		
		
	Bugfixes: Don't make URLs lowercase, never auto-select Jenkins
This commit is contained in:
		@@ -10,9 +10,10 @@ class APKCombo extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+');
 | 
			
		||||
    var match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    var match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -32,9 +32,10 @@ class APKMirror extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/apk/[^/]+/[^/]+');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/apk/[^/]+/[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -27,15 +27,17 @@ class APKPure extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegExB =
 | 
			
		||||
        RegExp('^https?://m.${getSourceRegex(hosts)}/+[^/]+/+[^/]+(/+[^/]+)?');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegExB.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegExB = RegExp(
 | 
			
		||||
        '^https?://m.${getSourceRegex(hosts)}/+[^/]+/+[^/]+(/+[^/]+)?',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegExB.firstMatch(url);
 | 
			
		||||
    if (match != null) {
 | 
			
		||||
      url = 'https://${getSourceRegex(hosts)}${Uri.parse(url).path}';
 | 
			
		||||
    }
 | 
			
		||||
    RegExp standardUrlRegExA = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+(/+[^/]+)?');
 | 
			
		||||
    match = standardUrlRegExA.firstMatch(url.toLowerCase());
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+(/+[^/]+)?',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    match = standardUrlRegExA.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -14,9 +14,10 @@ class Aptoide extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx =
 | 
			
		||||
        RegExp('^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -16,9 +16,10 @@ class Codeberg extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -38,15 +38,17 @@ class FDroid extends AppSource {
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegExB = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+packages/+[^/]+');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegExB.firstMatch(url.toLowerCase());
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+packages/+[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegExB.firstMatch(url);
 | 
			
		||||
    if (match != null) {
 | 
			
		||||
      url =
 | 
			
		||||
          'https://${Uri.parse(match.group(0)!).host}/packages/${Uri.parse(url).pathSegments.last}';
 | 
			
		||||
    }
 | 
			
		||||
    RegExp standardUrlRegExA =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/+packages/+[^/]+');
 | 
			
		||||
    match = standardUrlRegExA.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegExA = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/+packages/+[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    match = standardUrlRegExA.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -150,9 +150,10 @@ class GitHub extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -52,9 +52,10 @@ class GitLab extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -13,9 +13,10 @@ class HuaweiAppGallery extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/app/[^/]+');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/app/[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -15,13 +15,15 @@ class IzzyOnDroid extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegExA =
 | 
			
		||||
        RegExp('^https?://android.${getSourceRegex(hosts)}/repo/apk/[^/]+');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegExA.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegExA = RegExp(
 | 
			
		||||
        '^https?://android.${getSourceRegex(hosts)}/repo/apk/[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegExA.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      RegExp standardUrlRegExB = RegExp(
 | 
			
		||||
          '^https?://apt.${getSourceRegex(hosts)}/fdroid/index/apk/[^/]+');
 | 
			
		||||
      match = standardUrlRegExB.firstMatch(url.toLowerCase());
 | 
			
		||||
          '^https?://apt.${getSourceRegex(hosts)}/fdroid/index/apk/[^/]+',
 | 
			
		||||
          caseSensitive: false);
 | 
			
		||||
      match = standardUrlRegExB.firstMatch(url);
 | 
			
		||||
    }
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ class Jenkins extends AppSource {
 | 
			
		||||
  Jenkins() {
 | 
			
		||||
    overrideVersionDetectionFormDefault('releaseDateAsVersion',
 | 
			
		||||
        disableStandard: true);
 | 
			
		||||
    neverAutoSelect = true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  String trimJobUrl(String url) {
 | 
			
		||||
 
 | 
			
		||||
@@ -11,9 +11,10 @@ class Mullvad extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -11,8 +11,9 @@ class NeutronCode extends AppSource {
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/downloads/file/[^/]+');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/downloads/file/[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -10,16 +10,18 @@ class SourceForge extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegExB =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/p/[^/]+');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegExB.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegExB = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/p/[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegExB.firstMatch(url);
 | 
			
		||||
    if (match != null) {
 | 
			
		||||
      url =
 | 
			
		||||
          'https://${Uri.parse(match.group(0)!).host}/projects/${url.substring(Uri.parse(match.group(0)!).host.length + '/projects/'.length + 1)}';
 | 
			
		||||
    }
 | 
			
		||||
    RegExp standardUrlRegExA =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/projects/[^/]+');
 | 
			
		||||
    match = standardUrlRegExA.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegExA = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/projects/[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    match = standardUrlRegExA.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -20,9 +20,10 @@ class SourceHut extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx =
 | 
			
		||||
        RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -13,9 +13,10 @@ class Uptodown extends AppSource {
 | 
			
		||||
 | 
			
		||||
  @override
 | 
			
		||||
  String sourceSpecificStandardizeURL(String url) {
 | 
			
		||||
    RegExp standardUrlRegEx =
 | 
			
		||||
        RegExp('^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}');
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
 | 
			
		||||
    RegExp standardUrlRegEx = RegExp(
 | 
			
		||||
        '^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}',
 | 
			
		||||
        caseSensitive: false);
 | 
			
		||||
    RegExpMatch? match = standardUrlRegEx.firstMatch(url);
 | 
			
		||||
    if (match == null) {
 | 
			
		||||
      throw InvalidURLError(name);
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user