diff options
author | emkael <emkael@tlen.pl> | 2021-10-22 03:04:30 +0200 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2021-10-22 03:04:30 +0200 |
commit | b0cd66f6c50e954b497cda752dc46ae509081223 (patch) | |
tree | d33cc10005d630e74ad3b5a7eede507ffd5a5509 | |
parent | 91269d4a8da9ec25ac1c5a344cf34464d18e6861 (diff) |
Autocommit
-rw-r--r-- | _cron/autocommit | 2 | ||||
-rw-r--r-- | _cron/playoff | 2 | ||||
m--------- | http | 0 | ||||
m--------- | playoff | 0 | ||||
-rw-r--r-- | rozklady/get-tc-boards.py | 15 | ||||
-rwxr-xr-x | rozklady/scrape-boards.py | 54 |
6 files changed, 71 insertions, 2 deletions
diff --git a/_cron/autocommit b/_cron/autocommit index 52e9ad0..5243ac8 100644 --- a/_cron/autocommit +++ b/_cron/autocommit @@ -1,3 +1,3 @@ # SHELL=/bin/bash -# */10 * * * * cd $SITEPATH && source .envrc && make autocommit >> $SITEPATH/_log/autocommit.log +# */5 * * * * cd $SITEPATH && source .envrc && make autocommit >> $SITEPATH/_log/autocommit.log # SHELL=/bin/sh diff --git a/_cron/playoff b/_cron/playoff index 2fd7400..2a22dfa 100644 --- a/_cron/playoff +++ b/_cron/playoff @@ -1,3 +1,3 @@ # SHELL=/bin/bash -# */2 * * * * cd $SITEPATH && source .envrc && make brackets > $SITEPATH/_log/playoff.log 2>&1 +# */3 * * * * cd $SITEPATH && source .envrc && make brackets > $SITEPATH/_log/playoff.log 2>&1 # SHELL=/bin/sh diff --git a/http b/http -Subproject 2741cf5142edc019065a5ca26dd07be4e60aa49 +Subproject c4df0b0e005834dcdb8d8d22ee1f22c06fa1f9d diff --git a/playoff b/playoff -Subproject 1456882790affa487c565f92751bdd193ca2524 +Subproject ea9d17a8cdcb94d33a97b1f27d41a6fd303cf1e diff --git a/rozklady/get-tc-boards.py b/rozklady/get-tc-boards.py new file mode 100644 index 0000000..637a95c --- /dev/null +++ b/rozklady/get-tc-boards.py @@ -0,0 +1,15 @@ +import json, sys + +for fpath in sys.argv[1:]: + jsfile = json.load(open(fpath)) + print('[Board "%d"]' % (jsfile['ScoringGroups'][0]['Distribution']['_numberAsPlayed'])) + board = [] + for hand in ['N', 'E', 'S', 'W']: + board.append('%s.%s.%s.%s' % ( + jsfile['ScoringGroups'][0]['Distribution']['_handRecord']['Hand'+hand]['Spades'], + jsfile['ScoringGroups'][0]['Distribution']['_handRecord']['Hand'+hand]['Hearts'], + jsfile['ScoringGroups'][0]['Distribution']['_handRecord']['Hand'+hand]['Diamonds'], + jsfile['ScoringGroups'][0]['Distribution']['_handRecord']['Hand'+hand]['Clubs'] + )) + print('[Deal "N:%s"]' % (' '.join(board).replace('10', 'T'))) + print('') diff --git a/rozklady/scrape-boards.py b/rozklady/scrape-boards.py new file mode 100755 index 0000000..5f7ea7f --- /dev/null +++ b/rozklady/scrape-boards.py @@ -0,0 +1,54 @@ +from bs4 import BeautifulSoup as bs
+import bs4
+import os
+import sys
+
+traveller_file = file(sys.argv[1])
+traveller = bs(traveller_file, 'lxml')
+
+print '% PBN 1.0'
+print '[Generator "JFRTeamy-restorerer"]'
+print '[Event "%s"]' % (traveller_file.name)
+
+board_links = traveller.select('td.bdcc a.zb')
+for board_link in board_links:
+ if board_link.has_attr('href'):
+ sys.stderr.write(board_link['href'] + "\n")
+ board_number = board_link.text.strip()
+ board_file = open(
+ os.path.join(
+ os.path.dirname(traveller_file.name),
+ board_link['href']
+ )
+ )
+ board = bs(board_file, 'lxml')
+ conditions = [
+ c for c in
+ board.select('td[valign="top"] h4')[0].contents
+ if type(c) == bs4.element.NavigableString
+ ]
+ dealer = conditions[0].strip()
+ vulnerability = conditions[1].title()
+ if len(vulnerability) < 3:
+ vulnerability = vulnerability.upper()
+ card_cells = board.select('td.w')
+ sys.stderr.write(str(card_cells))
+ sys.stderr.write("\n")
+ if len(card_cells) == 4:
+ cards = [
+ [
+ line.replace('10', 'T').replace(' ', '').strip()
+ for line in c
+ if type(line) == bs4.element.NavigableString and line != "\n"
+ ] for c in card_cells
+ ]
+ print '[Board "%s"]' % board_number
+ #print '[Dealer "%s"]' % dealer
+ #print '[Vulnerable "%s"]' % vulnerability
+ print '[Deal "N:%s %s %s %s"]' % (
+ '.'.join(cards[0]),
+ '.'.join(cards[2]),
+ '.'.join(cards[3]),
+ '.'.join(cards[1])
+ )
+ print
|