summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoremkael <emkael@tlen.pl>2020-03-15 18:43:50 +0100
committeremkael <emkael@tlen.pl>2020-03-15 18:43:50 +0100
commit1837bd95f56b41a22e1dbaa8c6d50d0e27778a41 (patch)
tree7c6bdb3bc1fe563db2f7eeda654fd188ed648ca5
parent3e9bdf760c812f7e2a539144ebbe39a5d4bc730f (diff)
Detecting table numbers and towel support
-rw-r--r--scrape-scores.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/scrape-scores.py b/scrape-scores.py
index 05517e6..a2dfccd 100644
--- a/scrape-scores.py
+++ b/scrape-scores.py
@@ -12,10 +12,17 @@ board = int(sys.argv[4])
content = bs(file(input_file), 'lxml')
rows = content.select('tr')
-scores = []
-points = []
+scores = {}
+current_table_no = None
+current_table = []
for row in rows:
+ table_link = row.select('a[target="polew"]')
+ if table_link:
+ if current_table_no:
+ scores[current_table_no] = current_table
+ current_table_no = int(table_link[0].text)
+ current_table = []
cells = row.select('td.bdc')
if len(cells) > 0:
score = ''
@@ -26,20 +33,19 @@ for row in rows:
score += element['alt']
else:
score += element.replace('×'.decode('utf8'), 'x')
- scores.append(score)
point_cells = row.select('td.zno') + row.select('td.zeo')
- points.append((point_cells)[0].text if len(point_cells) > 0 else '0')
-
-
-sorted_scores = scores[0::2] + scores[1::2]
-sorted_points = points[0::2] + points[1::2]
+ current_table.append({
+ 'score': score,
+ 'points': (point_cells)[0].text if len(point_cells) > 0 else '0'
+ })
+scores[current_table_no] = current_table
score_regex = re.compile(r'^([1-7])([cdhns])(x?)([ENSW])([cdhs]([AKQJ2-9]|10))(=|(-|\+)[1-7])')
for room in [1, 2]:
- for tabl in range(1, 6):
- score = sorted_scores[(room - 1) * 5 + tabl - 1]
- point_result = sorted_points[(room - 1) * 5 + tabl - 1]
+ for tabl in scores.keys():
+ score = scores[tabl][room - 1]['score']
+ point_result = scores[tabl][room - 1]['points']
parsed_score = re.match(score_regex, score)
if parsed_score:
contract = ('%s %s %s' % (