Get real author name for F-Droid (#1076)

This commit is contained in:
Imran Remtulla
2023-12-17 14:47:22 -05:00
parent cd316b7138
commit fd59a93ede
2 changed files with 85 additions and 68 deletions

View File

@@ -65,7 +65,7 @@ class FDroid extends AppSource {
) async { ) async {
String? appId = await tryInferringAppId(standardUrl); String? appId = await tryInferringAppId(standardUrl);
String host = Uri.parse(standardUrl).host; String host = Uri.parse(standardUrl).host;
return getAPKUrlsFromFDroidPackagesAPIResponse( var details = getAPKUrlsFromFDroidPackagesAPIResponse(
await sourceRequest('https://$host/api/v1/packages/$appId'), await sourceRequest('https://$host/api/v1/packages/$appId'),
'https://$host/repo/$appId', 'https://$host/repo/$appId',
standardUrl, standardUrl,
@@ -80,6 +80,23 @@ class FDroid extends AppSource {
true true
? additionalSettings['filterVersionsByRegEx'] ? additionalSettings['filterVersionsByRegEx']
: null); : null);
if (!hostChanged) {
try {
var res = await sourceRequest(
'https://gitlab.com/fdroid/fdroiddata/-/raw/master/metadata/$appId.yml');
String author = res.body
.split('\n')
.where((l) => l.startsWith('AuthorName: '))
.first
.split(': ')
.sublist(1)
.join(': ');
details.names.author = author;
} catch (e) {
// Fail silently
}
}
return details;
} }
@override @override
@@ -111,7 +128,6 @@ class FDroid extends AppSource {
throw getObtainiumHttpError(res); throw getObtainiumHttpError(res);
} }
} }
}
APKDetails getAPKUrlsFromFDroidPackagesAPIResponse( APKDetails getAPKUrlsFromFDroidPackagesAPIResponse(
Response res, String apkUrlPrefix, String standardUrl, String sourceName, Response res, String apkUrlPrefix, String standardUrl, String sourceName,
@@ -187,3 +203,4 @@ APKDetails getAPKUrlsFromFDroidPackagesAPIResponse(
throw getObtainiumHttpError(res); throw getObtainiumHttpError(res);
} }
} }
}

View File

@@ -40,7 +40,7 @@ class IzzyOnDroid extends AppSource {
Map<String, dynamic> additionalSettings, Map<String, dynamic> additionalSettings,
) async { ) async {
String? appId = await tryInferringAppId(standardUrl); String? appId = await tryInferringAppId(standardUrl);
return getAPKUrlsFromFDroidPackagesAPIResponse( return fd.getAPKUrlsFromFDroidPackagesAPIResponse(
await sourceRequest( await sourceRequest(
'https://apt.izzysoft.de/fdroid/api/v1/packages/$appId'), 'https://apt.izzysoft.de/fdroid/api/v1/packages/$appId'),
'https://android.izzysoft.de/frepo/$appId', 'https://android.izzysoft.de/frepo/$appId',