fyyd.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # SPDX-License-Identifier: AGPL-3.0-or-later
  2. # lint: pylint
  3. """Fyyd (podcasts)
  4. """
  5. from datetime import datetime
  6. from urllib.parse import urlencode
  7. about = {
  8. 'website': 'https://fyyd.de',
  9. 'official_api_documentation': 'https://github.com/eazyliving/fyyd-api',
  10. 'use_official_api': True,
  11. 'require_api_key': False,
  12. 'results': 'JSON',
  13. }
  14. categories = []
  15. paging = True
  16. base_url = "https://api.fyyd.de"
  17. page_size = 10
  18. def request(query, params):
  19. args = {
  20. 'term': query,
  21. 'count': page_size,
  22. 'page': params['pageno'] - 1,
  23. }
  24. params['url'] = f"{base_url}/0.2/search/podcast?{urlencode(args)}"
  25. return params
  26. def response(resp):
  27. results = []
  28. json_results = resp.json()['data']
  29. for result in json_results:
  30. results.append(
  31. {
  32. 'url': result['htmlURL'],
  33. 'title': result['title'],
  34. 'content': result['description'],
  35. 'thumbnail': result['smallImageURL'],
  36. 'publishedDate': datetime.strptime(result['status_since'], '%Y-%m-%d %H:%M:%S'),
  37. 'metadata': f"Rank: {result['rank']} || {result['episode_count']} episodes",
  38. }
  39. )
  40. return results