From b0cd66f6c50e954b497cda752dc46ae509081223 Mon Sep 17 00:00:00 2001 From: emkael Date: Fri, 22 Oct 2021 03:04:30 +0200 Subject: Autocommit --- _cron/autocommit | 2 +- _cron/playoff | 2 +- http | 2 +- playoff | 2 +- rozklady/get-tc-boards.py | 15 +++++++++++++ rozklady/scrape-boards.py | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 73 insertions(+), 4 deletions(-) create mode 100644 rozklady/get-tc-boards.py create mode 100755 rozklady/scrape-boards.py 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 index 2741cf5..c4df0b0 160000 --- a/http +++ b/http @@ -1 +1 @@ -Subproject commit 2741cf5142edc019065a5ca26dd07be4e60aa490 +Subproject commit c4df0b0e005834dcdb8d8d22ee1f22c06fa1f9dc diff --git a/playoff b/playoff index 1456882..ea9d17a 160000 --- a/playoff +++ b/playoff @@ -1 +1 @@ -Subproject commit 1456882790affa487c565f92751bdd193ca2524a +Subproject commit ea9d17a8cdcb94d33a97b1f27d41a6fd303cf1e6 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 -- cgit v1.2.3