import json import urlparse from .apitest import ApiTest class ApiCalculator(ApiTest): ranks = { 'o++++': 7, 'o+++': 6, 'o++': 5, 'o+': 4, 'o-': 3, 'r': 2, 'o': 1, 'k': 0 } def get_url(self): return 'http://localhost/pkl/api.php' def get_method(self): return 'post' def get_request(self, tour_type, tour_rank, tour_boards, cont_count, cont_rank, override=None): params = {} params['type'] = self.tourtypes[tour_type] params['over39_boards'] = tour_boards params['tournament_rank'] = self.ranks[tour_rank] params['contestants'] = cont_count params['title_sum'] = cont_rank if override: if 'points' in override: params['manual[min_points]'] = override['points'] if 'weight' in override: params['manual[tournament_weight]'] = override['weight'] if 'players' in override: params['manual[players_coefficient]'] = override['players'] if 'cutoff' in override: i = 0 for c in override['cutoff']: params['manual[points_cutoffs][' + str(i) + '][0]'] = c[0] params['manual[points_cutoffs][' + str(i) + '][1]'] = c[1] i += 1 return params def get_response(self, text): return json.loads(text)