def get_teams(self, summoners):
self.delay()
error = True
while error:
try:
teams = self.watcher.get_teams_for_summoners(summoners)
error = False
except LoLException:
pass
for key, value in teams.items():
for item in value:
try:
# Check if the team is 5x5.
if len(item['roster']['memberList']) < 5:
continue
except KeyError:
# LoL api is stupid and sometimes forgets to put a key
# in it's api return when it should put null.
continue
team = Team(item['fullId'])
self.session.add(team)
# Add all members in the 5x5 team to the summoners table.
for member in item['roster']['memberList']:
roster_member = TeamRosterMember(team.id, member['playerId'])
self.session.add(roster_member)
try:
self.session.commit()
print('New Team - %s' % team)
except IntegrityError:
self.session.rollback()
print('Duplicate Team - %s' % team)
continue
except FlushError:
self.session.rollback()
print('FlushError Team - %s' % team)
评论列表
文章目录