mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-10-22 18:33:45 +02: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