summaryrefslogtreecommitdiff
path: root/jfr_playoff/data/info.py
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2019-12-30 12:57:11 +0100
committeremkael <emkael@tlen.pl>2019-12-30 12:57:11 +0100
commitb33b987e2fc217a488c40979c219deaf536498eb (patch)
tree75a81bcb281380ebaa5c197facd518abd0058f0f /jfr_playoff/data/info.py
parent7a598f65372b1b694d222946fd6269033bde0e54 (diff)
Refactoring package structure (moving MatchInfo and TournamentInfo classes)
Diffstat (limited to 'jfr_playoff/data/info.py')
-rw-r--r--jfr_playoff/data/info.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/jfr_playoff/data/info.py b/jfr_playoff/data/info.py
index 371ac6a..cb84b75 100644
--- a/jfr_playoff/data/info.py
+++ b/jfr_playoff/data/info.py
@@ -27,3 +27,43 @@ class ResultInfo(object):
PlayoffLogger.get('resultinfo').info(
'%s method returning default: %s', method, default)
return default
+
+
+from jfr_playoff.data.tournament.jfrdb import JFRDbTournamentInfo
+from jfr_playoff.data.tournament.jfrhtml import JFRHtmlTournamentInfo
+from jfr_playoff.data.tournament.tcjson import TCJsonTournamentInfo
+
+
+class TournamentInfo(ResultInfo):
+ def __init__(self, settings, database):
+ self.settings = settings
+ ResultInfo.__init__(self, settings, database)
+
+ def fill_client_list(self, settings, database):
+ clients = []
+ if (database is not None) and ('database' in settings):
+ clients.append(JFRDbTournamentInfo(settings, database))
+ if 'link' in settings:
+ if settings['link'].endswith('leaderb.html'):
+ clients.append(JFRHtmlTournamentInfo(settings))
+ clients.append(TCJsonTournamentInfo(settings))
+ return clients
+
+ def get_tournament_results(self):
+ teams = self.call_client('get_tournament_results', [])
+ if self.is_finished():
+ final_positions = self.settings.get('final_positions', [])
+ PlayoffLogger.get('tournamentinfo').info(
+ 'setting final positions from tournament results: %s',
+ final_positions)
+ for position in final_positions:
+ if len(teams) >= position:
+ teams[position-1] = (teams[position-1] + [None] * 4)[0:4]
+ teams[position-1][3] = position
+ return teams
+
+ def is_finished(self):
+ return self.call_client('is_finished', True)
+
+ def get_results_link(self, suffix='leaderb.html'):
+ return self.call_client('get_results_link', None, suffix)