Added cloudflare.f-droid.org support

This commit is contained in:
Imran Remtulla
2023-04-04 20:21:24 -04:00
parent d557746965
commit 782d055bc3
2 changed files with 9 additions and 6 deletions

View File

@@ -14,12 +14,14 @@ class FDroid extends AppSource {
@override
String standardizeURL(String url) {
RegExp standardUrlRegExB =
RegExp('^https?://$host/+[^/]+/+packages/+[^/]+');
RegExp('^https?://(cloudflare\\.)?$host/+[^/]+/+packages/+[^/]+');
RegExpMatch? match = standardUrlRegExB.firstMatch(url.toLowerCase());
if (match != null) {
url = 'https://$host/packages/${Uri.parse(url).pathSegments.last}';
url =
'https://${Uri.parse(url.substring(0, match.end)).host}/packages/${Uri.parse(url).pathSegments.last}';
}
RegExp standardUrlRegExA = RegExp('^https?://$host/+packages/+[^/]+');
RegExp standardUrlRegExA =
RegExp('^https?://(cloudflare\\.)?$host/+packages/+[^/]+');
match = standardUrlRegExA.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);
@@ -61,9 +63,10 @@ class FDroid extends AppSource {
Map<String, dynamic> additionalSettings,
) async {
String? appId = tryInferringAppId(standardUrl);
String host = Uri.parse(standardUrl).host;
return getAPKUrlsFromFDroidPackagesAPIResponse(
await get(Uri.parse('https://f-droid.org/api/v1/packages/$appId')),
'https://f-droid.org/repo/$appId',
await get(Uri.parse('https://$host/api/v1/packages/$appId')),
'https://$host/repo/$appId',
standardUrl);
}
}

View File

@@ -363,7 +363,7 @@ class SourceProvider {
url = preStandardizeUrl(url);
AppSource? source;
for (var s in sources.where((element) => element.host != null)) {
if (url.contains('://${s.host}')) {
if (RegExp('://(.+\\.)?${s.host}').hasMatch(url)) {
source = s;
break;
}