diff options
| author | Bnyro <bnyro@tutanota.com> | 2023-09-28 14:27:34 +0200 |
|---|---|---|
| committer | Markus Heiser <markus.heiser@darmarIT.de> | 2023-09-30 09:09:23 +0200 |
| commit | 2ca60a19fc4ed8f74237e4befde9c6bc31a66941 (patch) | |
| tree | 7ef2189994353155894552f3f1d56224bbc5f633 /searx/engines | |
| parent | d1a3fc5be69f64a89676016844e682fd8bad11a0 (diff) | |
[feat] engine: implementation of matrixrooms.info
Diffstat (limited to 'searx/engines')
| -rw-r--r-- | searx/engines/matrixrooms.py | 45 |
1 files changed, 45 insertions, 0 deletions
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 |