fyyd.py 1.2 KB

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