objects.py 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. self.losses = self.data.get('losses')
  18. def __init__(self, data):
  19. super().__init__(data)
  20. self.duo = Lifetime.GameModeStats(self.data.get('data').get('attributes').get('gameModeStats').get('duo'))
  21. self.duofpp = Lifetime.GameModeStats(self.data.get('data').get('attributes').get('gameModeStats').get('duo-fpp'))
  22. self.squad = Lifetime.GameModeStats(self.data.get('data').get('attributes').get('gameModeStats').get('squad'))
  23. class Player(Base):
  24. def __init__(self, data):
  25. super().__init__(data)
  26. self.id = self.data.get('data')[0].get('id')
  27. self.name = self.data.get('data')[0].get('attributes').get('name')
  28. class Match(Base):
  29. def __init__(self, data):
  30. super().__init__(data)
  31. self.id = self.data.get('id')
  32. self.created_at = self.data.get('createdAt')
  33. self.duration = self.data.get('duration')
  34. self.rosters = self.roster_list()
  35. # rounds
  36. self.assets = self.asset_list()
  37. # spectators
  38. # stats
  39. self.game_mode = self.data.get('gameMode')
  40. self.patch_version = self.data.get('patchVersion')
  41. self.title_id = self.data.get('titleId')
  42. self.shard_id = self.data.get('shardId')
  43. # tags
  44. def roster_list(self):
  45. return [Roster(data) for data in self.data.get('rosters')]
  46. def asset_list(self):
  47. return [Asset(data) for data in self.data.get('assets')]
  48. class Roster(Base):
  49. def __init__(self, data):
  50. super().__init__(data)
  51. self.id = self.data.get('id')
  52. # team
  53. self.participants = self.participant_list()
  54. # stats
  55. self.won = self.data.get('won')
  56. self.shard_id = self.data.get('shardId')
  57. def participant_list(self):
  58. return [Participant(data) for data in self.data.get('participants')]
  59. class Asset(Base):
  60. def __init__(self, data):
  61. super().__init__(data)
  62. self.id = self.data.get('id')
  63. self.title_id = self.data.get('titleId')
  64. self.shard_id = self.data.get('shardId')
  65. self.name = self.data.get('name')
  66. self.description = self.data.get('description')
  67. self.created_at = self.data.get('createdAt')
  68. self.filename = self.data.get('filename')
  69. self.content_type = self.data.get('contentType')
  70. self.url = self.data.get('URL')
  71. class Participant(Base):
  72. def __init__(self, data):
  73. super().__init__(data)
  74. self.id = self.data.get('id')
  75. # stats
  76. self.actor = self.data.get('actor')
  77. self.shard_id = self.data.get('shardId')
  78. class Status(Base):
  79. def __init__(self, data):
  80. super().__init__(data)
  81. self.id = self.data.get('data').get('id')
  82. self.type = self.data.get('data').get('type')