objects.py 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. class Base:
  2. def __init__(self, data):
  3. self.data = data
  4. def __repr__(self):
  5. return f'<{self.__class__.__name__} {self.__dict__}>'
  6. class Lifetime(Base):
  7. class GameModeStats(Base):
  8. def __init__(self, data):
  9. super().__init__(data)
  10. self.assists = self.data.get('assists')
  11. self.kills = self.data.get('kills')
  12. self.roundsPlayed = self.data.get('roundsPlayed')
  13. self.headshotKills = self.data.get('headshotKills')
  14. self.roadKills = self.data.get('roadKills')
  15. self.longestKill = self.data.get('longestKill')
  16. self.timeSurvived = self.data.get('timeSurvived')
  17. def __init__(self, data):
  18. super().__init__(data)
  19. self.duo = Lifetime.GameModeStats(self.data.get('data').get('attributes').get('gameModeStats').get('duo'))
  20. self.duofpp = Lifetime.GameModeStats(self.data.get('data').get('attributes').get('gameModeStats').get('duo-fpp'))
  21. self.squad = Lifetime.GameModeStats(self.data.get('data').get('attributes').get('gameModeStats').get('squad'))
  22. self.type = self.data.get('data').get('type')
  23. self.assists = self.data.get('data').get('assists')
  24. self.boosts = self.data.get('boosts')
  25. class Player(Base):
  26. def __init__(self, data):
  27. super().__init__(data)
  28. self.id = self.data.get('data')[0].get('id')
  29. self.name = self.data.get('data')[0].get('attributes').get('name')
  30. class Match(Base):
  31. def __init__(self, data):
  32. super().__init__(data)
  33. self.id = self.data.get('id')
  34. self.created_at = self.data.get('createdAt')
  35. self.duration = self.data.get('duration')
  36. self.rosters = self.roster_list()
  37. # rounds
  38. self.assets = self.asset_list()
  39. # spectators
  40. # stats
  41. self.game_mode = self.data.get('gameMode')
  42. self.patch_version = self.data.get('patchVersion')
  43. self.title_id = self.data.get('titleId')
  44. self.shard_id = self.data.get('shardId')
  45. # tags
  46. def roster_list(self):
  47. return [Roster(data) for data in self.data.get('rosters')]
  48. def asset_list(self):
  49. return [Asset(data) for data in self.data.get('assets')]
  50. class Roster(Base):
  51. def __init__(self, data):
  52. super().__init__(data)
  53. self.id = self.data.get('id')
  54. # team
  55. self.participants = self.participant_list()
  56. # stats
  57. self.won = self.data.get('won')
  58. self.shard_id = self.data.get('shardId')
  59. def participant_list(self):
  60. return [Participant(data) for data in self.data.get('participants')]
  61. class Asset(Base):
  62. def __init__(self, data):
  63. super().__init__(data)
  64. self.id = self.data.get('id')
  65. self.title_id = self.data.get('titleId')
  66. self.shard_id = self.data.get('shardId')
  67. self.name = self.data.get('name')
  68. self.description = self.data.get('description')
  69. self.created_at = self.data.get('createdAt')
  70. self.filename = self.data.get('filename')
  71. self.content_type = self.data.get('contentType')
  72. self.url = self.data.get('URL')
  73. class Participant(Base):
  74. def __init__(self, data):
  75. super().__init__(data)
  76. self.id = self.data.get('id')
  77. # stats
  78. self.actor = self.data.get('actor')
  79. self.shard_id = self.data.get('shardId')
  80. class Status(Base):
  81. def __init__(self, data):
  82. super().__init__(data)
  83. self.id = self.data.get('data').get('id')
  84. self.type = self.data.get('data').get('type')