diff options
| author | Florian Fischer <florian.fischer@muhq.space> | 2025-06-08 20:26:03 -0500 |
|---|---|---|
| committer | Florian Fischer <florian.fischer@muhq.space> | 2025-07-03 22:01:22 -0400 |
| commit | 70d8630a5bcb405a0bed101eb73cf4d1c6ece8bb (patch) | |
| tree | d0b97afd3fe5b6e8fe443f5d2da9c670fbc413be | |
| parent | 4f22bc472086a857fc4b04617421b861fa575a44 (diff) | |
| download | muhqs-game-70d8630a5bcb405a0bed101eb73cf4d1c6ece8bb.tar.gz muhqs-game-70d8630a5bcb405a0bed101eb73cf4d1c6ece8bb.zip | |
retrieve draft rates in card listings
| -rw-r--r-- | html/js/recvDraftRates.js | 41 | ||||
| -rw-r--r-- | html/template.html | 4 | ||||
| -rwxr-xr-x | scripts/generate_card.py | 13 | ||||
| -rwxr-xr-x | scripts/generate_card_listing.py | 12 |
4 files changed, 66 insertions, 4 deletions
diff --git a/html/js/recvDraftRates.js b/html/js/recvDraftRates.js new file mode 100644 index 00000000..802066ec --- /dev/null +++ b/html/js/recvDraftRates.js @@ -0,0 +1,41 @@ +/* +@licstart The following is the entire license notice for the +JavaScript code in this page. + +Copyright (C) 2025 Florian Fischer + +The JavaScript code in this page is free software: you can +redistribute it and/or modify it under the terms of the GNU +General Public License (GNU GPL) as published by the Free Software +Foundation, either version 3 of the License, or any later version. +The code is distributed WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS +FOR A PARTICULAR PURPOSE. See the GNU GPL for more details. + +As additional permission under GNU GPL version 3 section 7, you +may distribute non-source (e.g., minimized or compacted) forms of +that code without the copy of the GNU GPL normally required by +section 4, provided you include this license notice and a URL +through which recipients can access the Corresponding Source. + +@licend The above is the entire license notice +for the JavaScript code in this page. +*/ +const draftBlogUrl = "https://muhq.space/muhqs-game/html/build/blog/draftsim.html" +const ratesApi = "https://draft.muhq.space/stats" +function retrieveDraftRates() { + console.log(ratesApi); + let r = new Request(ratesApi); + fetch(r).then((response) => { + let draftRates = response.json() + for (let e of document.querySelectorAll(".draft-rate")) { + const cardName = e.parentNode.getAttribute("data-canonical-name"); + const rate = draftRates[cardName] || 0; + e.textContent = "DR: " + rate + e.onclick = () => {document.location.href = draftBlogUrl}; + } + }, err => {console.log(err);}); +} +window.onload = function() { + retrieveDraftRates(); +} diff --git a/html/template.html b/html/template.html index 00f07880..8ae9a6d9 100644 --- a/html/template.html +++ b/html/template.html @@ -261,6 +261,10 @@ li.linkable-rule:active, li.linkable-rule:hover { background-color: #d79921; list-style-image: url(link.svg); } + +.draft-rate { + padding-left: 1em; +} </style> $for(css)$ diff --git a/scripts/generate_card.py b/scripts/generate_card.py index ce14d5a4..c80271e3 100755 --- a/scripts/generate_card.py +++ b/scripts/generate_card.py @@ -140,22 +140,27 @@ def generate_markdown(card: MutableMapping, language='en', indentation=3): """Output a markdown enumeration""" name = get_field(card, 'name', language) - print(f'{"#" * indentation} {name}') # always use the englisch name as file name file_name = file_for_card(get_field(card, 'name', 'en'), "") + print(f'{"#" * indentation} {name} {{data-canonical-name="{file_name}"}}') + yml_card_path = f'../cards-data/{card["set"]}/{file_name}.yml' built_card_path = f'../latex-build/{language}/{card["set"]}/{file_name}' - gen_png_link_text = lambda _: 'png' - gen_png_link_target = lambda c, l: f'{built_card_path}.png' + def gen_png_link_text(_): + return 'png' + + def gen_png_link_target(c, l): + return f'{built_card_path}.png' + png_hover_link = generate_card_hover_links.gen_hoverable_link( str(file_name), gen_png_link_text, gen_png_link_target, '../latex-build', language) print( - f'\n[pdf]({built_card_path}.pdf) {png_hover_link} [yml]({yml_card_path})\n' + f'\n[pdf]({built_card_path}.pdf) {png_hover_link} [yml]({yml_card_path}) <span class="draft-rate"></span>\n' ) for key in KEYS: diff --git a/scripts/generate_card_listing.py b/scripts/generate_card_listing.py index a2952e03..03f0ad66 100755 --- a/scripts/generate_card_listing.py +++ b/scripts/generate_card_listing.py @@ -3,12 +3,22 @@ import argparse from pathlib import Path +from string import Template import sys import yaml import generate_card +META_DATA = """--- +header-includes: <script src="../js/recvDraftRates.js"></script> +title: ${title} +--- +""" + +title = {"de": "Karten", "en": "Cards"} + + def main(): """Generate a markdown card listing""" @@ -33,6 +43,8 @@ def main(): file=sys.stderr) sys.exit(1) + md = Template(META_DATA) + print(md.safe_substitute({"title": title[args.language]})) for set_dir in set_dirs: set_name = set_dir.name print( |
