thesportsdb.py 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import logging
  2. from dateutil.parser import parse
  3. from django.conf import settings
  4. from django.utils import timezone
  5. from pysportsdb import TheSportsDbClient
  6. from sports.models import Sport
  7. logger = logging.getLogger(__name__)
  8. API_KEY = getattr(settings, "THESPORTSDB_API_KEY", "2")
  9. client = TheSportsDbClient(api_key=API_KEY)
  10. def lookup_event_from_thesportsdb(event_id: str) -> dict:
  11. event = client.lookup_event(event_id)['events'][0]
  12. if not event or type(event) != dict:
  13. return {}
  14. league = {} # client.lookup_league(league_id=event.get('idLeague'))
  15. event_type = "Game"
  16. sport, _created = Sport.objects.get_or_create(
  17. thesportsdb_id=event.get('strSport')
  18. )
  19. data_dict = {
  20. "EventId": event_id,
  21. "ItemType": sport.default_event_type,
  22. "Name": event.get('strEvent'),
  23. "AltName": event.get('strEventAlternate'),
  24. "Start": parse(event.get('strTimestamp')),
  25. "Provider_thesportsdb": event.get('idEvent'),
  26. "RunTime": sport.default_event_run_time,
  27. "RunTimeTicks": sport.default_event_run_time_ticks,
  28. "Sport": event.get('strSport'),
  29. "Season": event.get('strSeason'),
  30. "LeagueId": event.get('idLeague'),
  31. "LeagueName": event.get('strLeague'),
  32. "HomeTeamId": event.get('idHomeTeam'),
  33. "HomeTeamName": event.get('strHomeTeam'),
  34. "AwayTeamId": event.get('idAwayTeam'),
  35. "AwayTeamName": event.get('strAwayTeam'),
  36. "RoundId": event.get('intRound'),
  37. "PlaybackPositionTicks": None,
  38. "PlaybackPosition": None,
  39. "UtcTimestamp": timezone.now().strftime('%Y-%m-%d %H:%M:%S.%f%z'),
  40. "IsPaused": False,
  41. "PlayedToCompletion": False,
  42. "Source": "Vrobbler",
  43. }
  44. return data_dict