def _get_matches(self, week): wks = self._get_wks(week) if wks: matches = [] racer_1_headcell = wks.find("Racer 1") racer_1_footcell = wks.find("--------") ul_addr = wks.get_addr_int(racer_1_headcell.row + 1, racer_1_headcell.col - 1) lr_addr = wks.get_addr_int(racer_1_footcell.row - 1, racer_1_footcell.col + 1) racers = wks.range('{0}:{1}'.format(ul_addr, lr_addr)) for cell in grouper(racers, 3, None): racer_1 = self._db.get_from_twitch_name( cell[1].value.rstrip(' '), register=True) racer_2 = self._db.get_from_twitch_name( cell[2].value.rstrip(' '), register=True) if racer_1 and racer_2: new_match = CondorMatch(racer_1, racer_2, week) self._set_best_of_info(new_match, cell[0].value.rstrip(' ')) matches.append(new_match) return matches else: print('Couldn\'t find worksheet for week {}.'.week)
def get_open_match_channel_info(self, week): for row in self._db_conn.execute( "SELECT channel_id,racer_1_id,racer_2_id,week_number FROM channel_data" ): if int(row[3]) != week: racer_1 = self._get_racer_from_id(row[1]) racer_2 = self._get_racer_from_id(row[2]) match = CondorMatch(racer_1, racer_2, row[3]) return (int(row[0]), match) return None
def _get_match(self, racer_1, racer_2, week_number): params = (self._get_racer_id(racer_1), self._get_racer_id(racer_2), week_number) for row in self._db_conn.execute( "SELECT timestamp,flags,number_of_races FROM match_data WHERE racer_1_id=? AND racer_2_id=? AND week_number=?", params): match = CondorMatch(racer_1, racer_2, week_number) if row[0]: match.set_from_timestamp(int(row[0])) match.flags = int(row[1]) match.set_number_of_races(int(row[2])) return match return None
def get_upcoming_matches(self, time): matches = [] for row in self._db_conn.execute( "SELECT racer_1_id,racer_2_id,week_number,timestamp,flags,number_of_races FROM match_data ORDER BY timestamp ASC" ): racer_1 = self._get_racer_from_id(row[0]) racer_2 = self._get_racer_from_id(row[1]) week = int(row[2]) match = CondorMatch(racer_1, racer_2, week) match.flags = int(row[4]) match.set_number_of_races(int(row[5])) if match.confirmed and not match.played: match.set_from_timestamp(int(row[3])) if match.time - time > datetime.timedelta(minutes=-30): matches.append(match) return matches