From 6bb67afa794f6d377657be11b48db7c7b0c4ea8e Mon Sep 17 00:00:00 2001 From: emkael Date: Sun, 21 Nov 2021 17:01:16 +0100 Subject: Adding PBN/PDF conversion to board WWW generator --- boards/.envrc | Bin 37 -> 47 bytes boards/generate.py | 38 +++++++++++++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) (limited to 'boards') diff --git a/boards/.envrc b/boards/.envrc index 7750527..4ab70fc 100644 Binary files a/boards/.envrc and b/boards/.envrc differ diff --git a/boards/generate.py b/boards/generate.py index 13c7d72..95d5460 100644 --- a/boards/generate.py +++ b/boards/generate.py @@ -1,8 +1,42 @@ -import json, sys +import json, os, re, subprocess, sys from datetime import datetime from pathlib import Path +DEAL_CONVERT_PATH = os.environ.get('LIGA_BOARDS_DEAL_CONVERT_PATH') +PBN_EVENT_TAG = re.compile('\[Event ".*"\]') + + +def deal_convert(source_file, target_files, params=''): + command = 'python2 %s %s %s %s' % (DEAL_CONVERT_PATH, params, source_file, ' '.join(target_files)) + try: + subprocess.check_output(command, stderr=subprocess.STDOUT, universal_newlines=True, shell=True) + except subprocess.CalledProcessError as ex: + print('ERROR: %s' % (ex.output), file=sys.stderr) + + +def ensure_pbn(source_id, config_name, event_name): + target_path = Path('output') / config_name / 'files' / (source_id + '.pbn') + if target_path.exists(): + return + source_path = Path('pbns') / config_name / (source_id + '.pbn') + target_path.parent.mkdir(parents=True, exist_ok=True) + deal_convert(str(source_path), [str(target_path)], '--jfr') + with open(target_path) as target_file: + pbn_content = target_file.read() + pbn_content = re.sub(PBN_EVENT_TAG, '[Event "%s"]' % (event_name), pbn_content) + with open(target_path, 'w') as target_file: + target_file.write(pbn_content) + + +def ensure_pdf(source_id, config_name): + target_path = Path('output') / config_name / 'files' / (source_id + '.pdf') + if target_path.exists(): + return + source_path = Path('output') / config_name / 'files' / (source_id + '.pbn') + deal_convert(str(source_path), [str(target_path)]) + + config_dir = Path('config') for config_path in config_dir.glob('*.json'): config_name = config_path.stem @@ -22,6 +56,8 @@ for config_path in config_dir.glob('*.json'): set_content = '%s' % (dealset['title']) for pbn in dealset['files']: if pbn.get('enabled', 0): + ensure_pbn(pbn['path'], config_name, pbn['title']) + ensure_pdf(pbn['path'], config_name) set_enabled = True set_content += '' set_content += '%s' % (pbn['name']) -- cgit v1.2.3