Third party GitLab search (#1108)

This commit is contained in:
Imran Remtulla
2023-11-24 18:58:10 -05:00
parent 93036c4e67
commit 756763fcbe
3 changed files with 47 additions and 15 deletions

View File

@ -54,17 +54,25 @@ class FDroidRepo extends AppSource {
@override
Future<Map<String, List<String>>> search(String query,
{Map<String, dynamic> querySettings = const {}}) async {
query = removeQueryParamsFromUrl(standardizeUrl(query));
var res = await sourceRequest('$query/index.xml');
String? url = querySettings['url'];
if (url == null) {
throw NoReleasesError();
}
url = removeQueryParamsFromUrl(standardizeUrl(url));
var res = await sourceRequest('$url/index.xml');
if (res.statusCode == 200) {
var body = parse(res.body);
Map<String, List<String>> results = {};
body.querySelectorAll('application').toList().forEach((app) {
String appId = app.attributes['id']!;
results['$query?appId=$appId'] = [
app.querySelector('name')?.innerHtml ?? appId,
app.querySelector('desc')?.innerHtml ?? ''
];
String appName = app.querySelector('name')?.innerHtml ?? appId;
String appDesc = app.querySelector('desc')?.innerHtml ?? '';
if (query.isEmpty ||
appId.contains(query) ||
appName.contains(query) ||
appDesc.contains(query)) {
results['$url?appId=$appId'] = [appName, appDesc];
}
});
return results;
} else {