From 2ca60a19fc4ed8f74237e4befde9c6bc31a66941 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Thu, 28 Sep 2023 14:27:34 +0200 Subject: [feat] engine: implementation of matrixrooms.info --- searx/engines/matrixrooms.py | 45 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 searx/engines/matrixrooms.py (limited to 'searx/engines') diff --git a/searx/engines/matrixrooms.py b/searx/engines/matrixrooms.py new file mode 100644 index 000000000..d10398204 --- /dev/null +++ b/searx/engines/matrixrooms.py @@ -0,0 +1,45 @@ +# SPDX-License-Identifier: AGPL-3.0-or-later +# lint: pylint +"""Matrixrooms.info (social media) +""" + +from urllib.parse import quote_plus + +about = { + "website": 'https://matrixrooms.info', + "wikidata_id": 'Q107565255', + "official_api_documentation": None, + "use_official_api": False, + "require_api_key": False, + "results": 'JSON', +} +paging = True +categories = ['social media'] + +base_url = "https://apicdn.matrixrooms.info" +matrix_url = "https://matrix.to" +page_size = 20 + + +def request(query, params): + params['url'] = f"{base_url}/search/{quote_plus(query)}/{page_size}/{params['pageno']-1}" + return params + + +def response(resp): + results = [] + + for result in resp.json(): + results.append( + { + 'url': matrix_url + '/#/' + result['alias'], + 'title': result['name'], + 'content': result['topic'] + + f" // {result['members']} members" + + f" // {result['alias']}" + + f" // {result['server']}", + 'thumbnail': result['avatar_url'], + } + ) + + return results -- cgit v1.2.3