Bugfixes: Don't make URLs lowercase, never auto-select Jenkins

This commit is contained in:
Imran Remtulla
2024-01-11 21:28:15 -05:00
parent 05372924a0
commit ec6683a198
16 changed files with 73 additions and 53 deletions

View File

@@ -10,9 +10,10 @@ class APKCombo extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp standardUrlRegEx = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+',
var match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
var match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -32,9 +32,10 @@ class APKMirror extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp standardUrlRegEx = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/apk/[^/]+/[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/apk/[^/]+/[^/]+',
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -27,15 +27,17 @@ class APKPure extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegExB = RegExp standardUrlRegExB = RegExp(
RegExp('^https?://m.${getSourceRegex(hosts)}/+[^/]+/+[^/]+(/+[^/]+)?'); '^https?://m.${getSourceRegex(hosts)}/+[^/]+/+[^/]+(/+[^/]+)?',
RegExpMatch? match = standardUrlRegExB.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegExB.firstMatch(url);
if (match != null) { if (match != null) {
url = 'https://${getSourceRegex(hosts)}${Uri.parse(url).path}'; url = 'https://${getSourceRegex(hosts)}${Uri.parse(url).path}';
} }
RegExp standardUrlRegExA = RegExp( RegExp standardUrlRegExA = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+(/+[^/]+)?'); '^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+(/+[^/]+)?',
match = standardUrlRegExA.firstMatch(url.toLowerCase()); caseSensitive: false);
match = standardUrlRegExA.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -14,9 +14,10 @@ class Aptoide extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp standardUrlRegEx = RegExp(
RegExp('^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}'); '^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}',
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -16,9 +16,10 @@ class Codeberg extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp standardUrlRegEx = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -38,15 +38,17 @@ class FDroid extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegExB = RegExp( RegExp standardUrlRegExB = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+packages/+[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+packages/+[^/]+',
RegExpMatch? match = standardUrlRegExB.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegExB.firstMatch(url);
if (match != null) { if (match != null) {
url = url =
'https://${Uri.parse(match.group(0)!).host}/packages/${Uri.parse(url).pathSegments.last}'; 'https://${Uri.parse(match.group(0)!).host}/packages/${Uri.parse(url).pathSegments.last}';
} }
RegExp standardUrlRegExA = RegExp standardUrlRegExA = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/+packages/+[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/+packages/+[^/]+',
match = standardUrlRegExA.firstMatch(url.toLowerCase()); caseSensitive: false);
match = standardUrlRegExA.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -150,9 +150,10 @@ class GitHub extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp standardUrlRegEx = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -52,9 +52,10 @@ class GitLab extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp standardUrlRegEx = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -13,9 +13,10 @@ class HuaweiAppGallery extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp standardUrlRegEx = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/app/[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/app/[^/]+',
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -15,13 +15,15 @@ class IzzyOnDroid extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegExA = RegExp standardUrlRegExA = RegExp(
RegExp('^https?://android.${getSourceRegex(hosts)}/repo/apk/[^/]+'); '^https?://android.${getSourceRegex(hosts)}/repo/apk/[^/]+',
RegExpMatch? match = standardUrlRegExA.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegExA.firstMatch(url);
if (match == null) { if (match == null) {
RegExp standardUrlRegExB = RegExp( RegExp standardUrlRegExB = RegExp(
'^https?://apt.${getSourceRegex(hosts)}/fdroid/index/apk/[^/]+'); '^https?://apt.${getSourceRegex(hosts)}/fdroid/index/apk/[^/]+',
match = standardUrlRegExB.firstMatch(url.toLowerCase()); caseSensitive: false);
match = standardUrlRegExB.firstMatch(url);
} }
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);

View File

@@ -8,6 +8,7 @@ class Jenkins extends AppSource {
Jenkins() { Jenkins() {
overrideVersionDetectionFormDefault('releaseDateAsVersion', overrideVersionDetectionFormDefault('releaseDateAsVersion',
disableStandard: true); disableStandard: true);
neverAutoSelect = true;
} }
String trimJobUrl(String url) { String trimJobUrl(String url) {

View File

@@ -11,9 +11,10 @@ class Mullvad extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp standardUrlRegEx = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}'); '^https?://(www\\.)?${getSourceRegex(hosts)}',
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -11,8 +11,9 @@ class NeutronCode extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/downloads/file/[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/downloads/file/[^/]+',
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -10,16 +10,18 @@ class SourceForge extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegExB = RegExp standardUrlRegExB = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/p/[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/p/[^/]+',
RegExpMatch? match = standardUrlRegExB.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegExB.firstMatch(url);
if (match != null) { if (match != null) {
url = url =
'https://${Uri.parse(match.group(0)!).host}/projects/${url.substring(Uri.parse(match.group(0)!).host.length + '/projects/'.length + 1)}'; 'https://${Uri.parse(match.group(0)!).host}/projects/${url.substring(Uri.parse(match.group(0)!).host.length + '/projects/'.length + 1)}';
} }
RegExp standardUrlRegExA = RegExp standardUrlRegExA = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/projects/[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/projects/[^/]+',
match = standardUrlRegExA.firstMatch(url.toLowerCase()); caseSensitive: false);
match = standardUrlRegExA.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -20,9 +20,10 @@ class SourceHut extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp standardUrlRegEx = RegExp(
RegExp('^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+'); '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }

View File

@@ -13,9 +13,10 @@ class Uptodown extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp standardUrlRegEx = RegExp(
RegExp('^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}'); '^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}',
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase()); caseSensitive: false);
RegExpMatch? match = standardUrlRegEx.firstMatch(url);
if (match == null) { if (match == null) {
throw InvalidURLError(name); throw InvalidURLError(name);
} }