solidtorrents.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. # SPDX-License-Identifier: AGPL-3.0-or-later
  2. # lint: pylint
  3. """Solid Torrents
  4. """
  5. from json import loads
  6. from urllib.parse import urlencode
  7. about = {
  8. "website": 'https://www.solidtorrents.net/',
  9. "wikidata_id": None,
  10. "official_api_documentation": None,
  11. "use_official_api": True,
  12. "require_api_key": False,
  13. "results": 'JSON',
  14. }
  15. categories = ['files']
  16. paging = True
  17. base_url = 'https://www.solidtorrents.net/'
  18. search_url = base_url + 'api/v1/search?{query}'
  19. def request(query, params):
  20. skip = (params['pageno'] - 1) * 20
  21. query = urlencode({'q': query, 'skip': skip})
  22. params['url'] = search_url.format(query=query)
  23. logger.debug("query_url --> %s", params['url'])
  24. return params
  25. def response(resp):
  26. results = []
  27. search_results = loads(resp.text)
  28. for result in search_results["results"]:
  29. results.append({
  30. 'infohash': result["infohash"],
  31. 'seed': result["swarm"]["seeders"],
  32. 'leech': result["swarm"]["leechers"],
  33. 'title': result["title"],
  34. 'url': "https://solidtorrents.net/view/" + result["_id"],
  35. 'filesize': result["size"],
  36. 'magnetlink': result["magnet"],
  37. 'template': "torrent.html",
  38. })
  39. return results