From 07d932fba0cf82da56e073d3a1d9f1946f9eb1be Mon Sep 17 00:00:00 2001 From: Bnyro Date: Thu, 28 Sep 2023 14:27:34 +0200 Subject: [PATCH] [feat] engine: implementation of matrixrooms.info --- searx/engines/matrixrooms.py | 45 ++++++++++++++++++++++++++++++++++++ searx/settings.yml | 5 ++++ 2 files changed, 50 insertions(+) create mode 100644 searx/engines/matrixrooms.py 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 diff --git a/searx/settings.yml b/searx/settings.yml index eeeaad823..c7787cd8f 100644 --- a/searx/settings.yml +++ b/searx/settings.yml @@ -1016,6 +1016,11 @@ engines: require_api_key: false results: HTML + - name: matrixrooms + engine: matrixrooms + shortcut: mtrx + disabled: true + - name: metacpan engine: metacpan shortcut: cpan