summaryrefslogtreecommitdiff
path: root/jfr_playoff/data/info.py
diff options
context:
space:
mode:
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)