diff options
-rw-r--r-- | jfr_playoff/data.py | 51 | ||||
-rw-r--r-- | jfr_playoff/db.py | 7 | ||||
-rw-r--r-- | jfr_playoff/filemanager.py | 4 | ||||
-rw-r--r-- | jfr_playoff/generator.py | 48 | ||||
-rw-r--r-- | jfr_playoff/settings.py | 7 |
5 files changed, 84 insertions, 33 deletions
diff --git a/jfr_playoff/data.py b/jfr_playoff/data.py index 2a965d1..3952c64 100644 --- a/jfr_playoff/data.py +++ b/jfr_playoff/data.py @@ -1,8 +1,8 @@ from urlparse import urljoin import mysql -from db import PlayoffDB -import sql as p_sql -from dto import * +from jfr_playoff.db import PlayoffDB +from jfr_playoff.dto import Team, Match, Phase +import jfr_playoff.sql as p_sql class PlayoffData(object): def __init__(self, settings): @@ -38,8 +38,12 @@ class PlayoffData(object): for phase in self.phases: for match in phase['matches']: self.match_info[match['id']] = self.get_match_info(match) - self.match_info[match['id']].link = phase['link'] if self.match_info[match['id']].link is None else urljoin( - phase['link'], self.match_info[match['id']].link) + if self.match_info[match['id']].link is None: + self.match_info[match['id']].link = phase['link'] + else: + self.match_info[match['id']].link = urljoin( + phase['link'], self.match_info[match['id']].link + ) return self.match_info def get_match_link(self, match): @@ -54,7 +58,10 @@ class PlayoffData(object): def get_db_match_teams(self, match): teams = [Team(), Team()] - row = self.database.fetch(match['database'], p_sql.MATCH_RESULTS, (match['table'], match['round'])) + row = self.database.fetch( + match['database'], p_sql.MATCH_RESULTS, + (match['table'], match['round']) + ) teams[0].name = row[0] teams[1].name = row[1] teams[0].score = row[3] + row[5] @@ -89,12 +96,12 @@ class PlayoffData(object): self.teams[place-1][0] for place in match['teams'][i]['place'] ] - teams[i].name = '<br />'.join([ - team if team is not None else '??' - for team in match_teams] - ) if len([ - team for team in match_teams if team is not None - ]) > 0 else '' + known_teams = [team for team in match_teams if team is not None] + if len(known_teams) > 0: + teams[i].name = '<br />'.join([ + team if team is not None else '??' for team in match_teams]) + else: + teams[i].name = '' return teams @@ -115,14 +122,26 @@ class PlayoffData(object): except (mysql.connector.Error, TypeError, IndexError): info.teams = self.get_config_match_teams(match) try: - towels = self.database.fetch(match['database'], p_sql.TOWEL_COUNT, (match['table'], match['round'])) - row = [0 if r is None else r for r in self.database.fetch(match['database'], p_sql.BOARD_COUNT, (match['table'], match['round']))] + towels = self.database.fetch( + match['database'], p_sql.TOWEL_COUNT, + (match['table'], match['round']) + ) + row = [0 if r is None + else r for r in + self.database.fetch( + match['database'], p_sql.BOARD_COUNT, + (match['table'], match['round']) + )] if row[1] > 0: info.running = int(row[1]) if row[1] >= row[0] - towels[0]: info.running = 0 - info.winner = info.teams[0].name if info.teams[0].score > info.teams[1].score else info.teams[1].name - info.loser = info.teams[1].name if info.teams[0].score > info.teams[1].score else info.teams[0].name + if info.teams[0].score > info.teams[1].score: + info.winner = info.teams[0].name + info.loser = info.teams[1].name + else: + info.loser = info.teams[0].name + info.winner = info.teams[1].name except (mysql.connector.Error, TypeError, KeyError): pass return info diff --git a/jfr_playoff/db.py b/jfr_playoff/db.py index aa0c2e2..8457dd4 100644 --- a/jfr_playoff/db.py +++ b/jfr_playoff/db.py @@ -13,7 +13,10 @@ class PlayoffDB(object): ) self.db_cursor = self.database.cursor(buffered=True) - def fetch(self, db, sql, params): - self.db_cursor.execute(sql.replace('#db#', db), params) + def get_cursor(self): + return self.db_cursor + + def fetch(self, db_name, sql, params): + self.db_cursor.execute(sql.replace('#db#', db_name), params) row = self.db_cursor.fetchone() return row diff --git a/jfr_playoff/filemanager.py b/jfr_playoff/filemanager.py index 8dc8b85..06374dd 100644 --- a/jfr_playoff/filemanager.py +++ b/jfr_playoff/filemanager.py @@ -1,4 +1,6 @@ -import os, shutil, socket +import os +import shutil +import socket import __main__ class PlayoffFileManager(object): diff --git a/jfr_playoff/generator.py b/jfr_playoff/generator.py index 81ca6c9..7237c9f 100644 --- a/jfr_playoff/generator.py +++ b/jfr_playoff/generator.py @@ -1,6 +1,6 @@ from datetime import datetime -import template as p_temp -from data import PlayoffData +import jfr_playoff.template as p_temp +from jfr_playoff.data import PlayoffData class PlayoffGenerator(object): def __init__(self, settings): @@ -14,14 +14,22 @@ class PlayoffGenerator(object): def generate_content(self): return p_temp.PAGE % ( p_temp.PAGE_HEAD % ( - p_temp.PAGE_HEAD_REFRESH % (self.page['refresh']) if self.page['refresh'] > 0 else '', + p_temp.PAGE_HEAD_REFRESH % ( + self.page['refresh'] + ) if self.page['refresh'] > 0 else '', self.page['title'] ), p_temp.PAGE_BODY % ( self.page['logoh'], - self.get_match_grid(self.data.get_dimensions(), self.data.generate_phases(), self.data.fill_match_info()), + self.get_match_grid( + self.data.get_dimensions(), + self.data.generate_phases(), + self.data.fill_match_info() + ), self.get_leaderboard_table(self.data.fill_leaderboard()), - p_temp.PAGE_BODY_FOOTER.decode('utf8') % (datetime.now().strftime('%Y-%m-%d o %H:%M')) + p_temp.PAGE_BODY_FOOTER.decode('utf8') % ( + datetime.now().strftime('%Y-%m-%d o %H:%M') + ) ) ) @@ -29,11 +37,16 @@ class PlayoffGenerator(object): rows = '' for team in match.teams: rows += p_temp.MATCH_TEAM_ROW % ( - ' '.join(['winner' if team.name == match.winner else '', - 'loser' if team.name == match.loser else '']).strip(), + ' '.join([ + 'winner' if team.name == match.winner else '', + 'loser' if team.name == match.loser else '' + ]).strip(), match.link, team.name, - ' / '.join([self.data.get_shortname(name) for name in team.name.split('<br />')]), + ' / '.join([ + self.data.get_shortname(name) for name in + team.name.split('<br />') + ]), match.link, team.score ) @@ -74,8 +87,14 @@ class PlayoffGenerator(object): grid_boxes += p_temp.MATCH_BOX % ( grid_x, grid_y, match, - ' '.join([str(m) for m in matches[match].winner_matches]) if matches[match].winner_matches is not None else '', - ' '.join([str(m) for m in matches[match].loser_matches]) if matches[match].loser_matches is not None else '', + ' '.join([ + str(m) for m in + matches[match].winner_matches + ]) if matches[match].winner_matches is not None else '', + ' '.join([ + str(m) for m in + matches[match].loser_matches + ]) if matches[match].loser_matches is not None else '', self.get_match_table(matches[match]) ) row_no += 1 @@ -85,7 +104,12 @@ class PlayoffGenerator(object): canvas_attrs.append( 'data-%s="%s"' % (setting.replace('_', '-'), str(value)) ) - return p_temp.MATCH_GRID % (grid_width, grid_height, grid_width, grid_height, ' '.join(canvas_attrs), grid_boxes) + return p_temp.MATCH_GRID % ( + grid_width, grid_height, + grid_width, grid_height, + ' '.join(canvas_attrs), + grid_boxes + ) def get_leaderboard_table(self, leaderboard): if len([t for t in leaderboard if t is not None]) == 0: @@ -94,7 +118,7 @@ class PlayoffGenerator(object): rows = '' for team in leaderboard: rows += p_temp.LEADERBOARD_ROW % (position, self.get_flag(team), team or '') - position +=1 + position += 1 html = p_temp.LEADERBOARD.decode('utf8') % (rows) return html diff --git a/jfr_playoff/settings.py b/jfr_playoff/settings.py index e69b1d3..3ed1774 100644 --- a/jfr_playoff/settings.py +++ b/jfr_playoff/settings.py @@ -1,9 +1,12 @@ -import glob, json, os, readline, sys +import glob +import json +import readline +import sys def complete_filename(text, state): return (glob.glob(text+'*')+[None])[state] -class PlayoffSettings: +class PlayoffSettings(object): def __init__(self): self.settings = None |