summaryrefslogtreecommitdiff
path: root/test/apitest/pzbs.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/apitest/pzbs.py')
-rw-r--r--test/apitest/pzbs.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/test/apitest/pzbs.py b/test/apitest/pzbs.py
new file mode 100644
index 0000000..1a1f69f
--- /dev/null
+++ b/test/apitest/pzbs.py
@@ -0,0 +1,69 @@
+import urlparse
+
+from bs4 import BeautifulSoup as bs
+
+from .apitest import ApiTest
+
+class PzbsCalculator(ApiTest):
+ ranks = {
+ 'o++++': 1,
+ 'o+++': 2,
+ 'o++': 3,
+ 'o+': 4,
+ 'o-': 5,
+ 'r': 6,
+ 'o': 7,
+ 'k': 8
+ }
+ def get_url(self):
+ return 'http://pzbs.pl/sedziowie/pkl/pkle2018.php'
+ def get_method(self):
+ return 'post'
+ def get_request(self,
+ tour_type, tour_rank, tour_boards,
+ cont_count, cont_rank,
+ override=None):
+ params = {
+ 'rgg': 25, 'rgp': 15, 'rot': 10, 'rok1': 7, 'rok': 5, 'rtp': 4, 'rto': 2, 'rtk': 1,
+ 'min1': 200, 'min2': 150, 'min3': 75, 'min4': 50, 'min5': 0, 'min6': 0, 'min7': 0, 'min8': 0,
+ 'rgg_': 40, 'rgp_': 25, 'rot_': 15, 'rok1_': 10, 'rok_': 7, 'rtp_': 5, 'rto_': 3, 'rtk_': 2,
+ 'min1_': 300, 'min2_': 200, 'min3_': 100, 'min4_': 70, 'min5_': 0, 'min6_': 0, 'min7_': 0, 'min8_': 0,
+ 'zaw': 0.05, 'prp1': 90, 'prp2': 20, 'pru1': 2, 'pru2': 20, 'pru3': 50,
+ 'typ': 0,
+ 'rozdan': 0,
+ 'rng': 0,
+ 'iuc': 0,
+ 'izw': 0,
+ 'swk': 0,
+ 'srd': 0
+ }
+ params['typ'] = self.tourtypes[tour_type]
+ params['rozdan'] = tour_boards
+ params['rng'] = self.ranks[tour_rank]
+ params['iuc'] = cont_count
+ params['izw'] = cont_count * self.tourtypes[tour_type]
+ params['swk'] = cont_rank
+ params['srd'] = cont_rank / (cont_count * self.tourtypes[tour_type])
+ if override:
+ if 'points' in override:
+ params['min' + str(params['typ']) + '_'*params['rozdan']] = override['points']
+ if 'weight' in override:
+ params['r' + ['', 'gg', 'gp', 'ot', 'ok1', 'ok', 'tp', 'to', 'tk'][params['typ']] + '_'*params['rozdan']] = override['weight']
+ if 'players' in override:
+ params['zaw'] = override['players']
+ if 'cutoff' in override:
+ for i in range(0, 3):
+ params['pru' + str(i+1)] = override['cutoff'][i][0] * 100
+ params['prp' + str(i+1)] = override['cutoff'][i][1] * 100
+ return params
+
+ def get_response(self, text):
+ results = {}
+ content = bs(text, 'lxml')
+ for row in content.select('table')[-1].select('tr'):
+ cells = row.select('td')
+ if cells[0].text.isdigit():
+ results[cells[0].text] = int(cells[1].text)
+ elif cells[0].text == 'SUMA PKL':
+ results[u'sum'] = int(cells[1].text)
+ return results