Coverage for src/utils/tournaments_info.py: 0%
28 statements
« prev ^ index » next coverage.py v7.8.2, created at 2025-06-03 19:06 +0000
« prev ^ index » next coverage.py v7.8.2, created at 2025-06-03 19:06 +0000
1import json
3import pandas as pd
4from dateutil import parser
6from src.api import spl
7from src.static.static_values_enum import RatingLevel
8from src.utils import store_util
11def get_tournaments_info(username, start_date, end_date):
12 collect = pd.DataFrame()
13 tournaments_ids = spl.get_player_tournaments_ids(store_util.get_token_dict(username))
14 for tournament_id in tournaments_ids:
15 tournament = spl.get_tournament(tournament_id)
17 if tournament['status'] == 2 and tournament['rounds'][-1]['status'] == 2:
18 date_time = parser.parse(str(tournament['rounds'][-1]['start_date']))
20 if parser.parse(start_date) <= date_time <= parser.parse(end_date):
21 player_data = list(filter(lambda item: item['player'] == username, tournament['players']))
22 # If player did not leave and is found continue
23 if player_data:
24 player_data = player_data[0]
26 prize_qty = "0"
27 prize_type = ""
28 if player_data['prize']:
29 prize_qty = player_data['prize']
30 else:
31 if player_data['ext_prize_info']:
32 prize_info = json.loads(player_data['ext_prize_info'])
33 prize_qty = prize_info[0]['qty']
34 prize_type = prize_info[0]['type']
36 tournament_record = {
37 'name': tournament['name'],
38 'league': RatingLevel(tournament['data']['rating_level']).name,
39 'num_players': tournament['num_players'],
40 'finish': player_data['finish'],
41 'wins': player_data['wins'],
42 'losses': player_data['losses'],
43 'draws': player_data['draws'],
44 'entry_fee': player_data['fee_amount'],
45 'prize_qty': prize_qty,
46 'prize_type': prize_type
47 }
48 collect = pd.concat([collect, pd.DataFrame(tournament_record, index=[0])], ignore_index=True)
49 return collect