matrixrooms.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. # SPDX-License-Identifier: AGPL-3.0-or-later
  2. # lint: pylint
  3. """Matrixrooms.info (social media)
  4. """
  5. from urllib.parse import quote_plus
  6. about = {
  7. "website": 'https://matrixrooms.info',
  8. "wikidata_id": 'Q107565255',
  9. "official_api_documentation": None,
  10. "use_official_api": False,
  11. "require_api_key": False,
  12. "results": 'JSON',
  13. }
  14. paging = True
  15. categories = ['social media']
  16. base_url = "https://apicdn.matrixrooms.info"
  17. matrix_url = "https://matrix.to"
  18. page_size = 20
  19. def request(query, params):
  20. params['url'] = f"{base_url}/search/{quote_plus(query)}/{page_size}/{(params['pageno']-1)*page_size}"
  21. return params
  22. def response(resp):
  23. results = []
  24. for result in resp.json():
  25. results.append(
  26. {
  27. 'url': matrix_url + '/#/' + result['alias'],
  28. 'title': result['name'],
  29. 'content': result['topic']
  30. + f" // {result['members']} members"
  31. + f" // {result['alias']}"
  32. + f" // {result['server']}",
  33. 'thumbnail': result['avatar_url'],
  34. }
  35. )
  36. return results