diff --git a/assets/img/cards/hungry-pathing.webp b/assets/img/cards/hungry-pathing.webp index 17418a9..5e7bde7 100644 Binary files a/assets/img/cards/hungry-pathing.webp and b/assets/img/cards/hungry-pathing.webp differ diff --git a/assets/img/cards/hungry-pathing.webp.json b/assets/img/cards/hungry-pathing.webp.json index eda6540..1a1c4f4 100644 --- a/assets/img/cards/hungry-pathing.webp.json +++ b/assets/img/cards/hungry-pathing.webp.json @@ -1,4 +1,4 @@ { "prompt": "Origin: a screenshot of the signature element on this mod's own Timbermods website (its own art, drawn for that site), cropped to 960x600. No generative model.", - "createdAt": "2026-09-23T20:54:25.707Z" + "createdAt": "2026-09-24T09:40:31.318Z" } \ No newline at end of file diff --git a/assets/img/cards/persistent-work-areas.webp b/assets/img/cards/persistent-work-areas.webp index c51425b..d460b0e 100644 Binary files a/assets/img/cards/persistent-work-areas.webp and b/assets/img/cards/persistent-work-areas.webp differ diff --git a/assets/img/cards/persistent-work-areas.webp.json b/assets/img/cards/persistent-work-areas.webp.json index 7ef3804..37ce047 100644 --- a/assets/img/cards/persistent-work-areas.webp.json +++ b/assets/img/cards/persistent-work-areas.webp.json @@ -1,4 +1,4 @@ { "prompt": "Origin: a screenshot of the signature element on this mod's own Timbermods website (its own art, drawn for that site), cropped to 960x600. No generative model.", - "createdAt": "2026-09-23T20:54:26.361Z" + "createdAt": "2026-09-24T09:40:31.467Z" } \ No newline at end of file diff --git a/scripts/card-art.py b/scripts/card-art.py index ea24272..4309fd0 100644 --- a/scripts/card-art.py +++ b/scripts/card-art.py @@ -15,6 +15,15 @@ # card id -> (page, CSS selector of the signature element, or None to use the clip rectangle) # cards taken from their site's dark mode (Kyler, 2026-09-24: Timber Together's darker map reads better) DARK = {"timber-together"} +# extra CSS for a capture: Hungry Pathing's board without its slate texture (it read as smoke) +CSS = {"hungry-pathing": ".board, .shift { background-image: none !important; }"} +# steps run on the page before the capture: Persistent Work Areas pins the Farmhouse too, so two outlines show +SETUP = {"persistent-work-areas": """ + document.querySelector('svg.map g.bld[aria-label="Select Farmhouse"]').dispatchEvent(new MouseEvent('click', {bubbles: true})); + document.querySelector('.ui-toggle').click(); + document.querySelector('[data-deselect]').click(); + document.activeElement && document.activeElement.blur(); +"""} JOBS = { "beaverbuddies-stability-fork": (SITE + "BeaverBuddies-Stability-Fork/", ".coop-map", None), "timber-together": (SITE + "TimberTogether/", ".hero figure", None), @@ -33,6 +42,10 @@ url, sel, clip = JOBS[card] page = browser.new_page(viewport={"width": 1440, "height": 900}, color_scheme="dark" if card in DARK else "light", reduced_motion="reduce", device_scale_factor=1.5) page.goto(url, wait_until="networkidle") + if card in SETUP: + page.evaluate(SETUP[card]) + if card in CSS: + page.add_style_tag(content=CSS[card]) page.wait_for_timeout(600) png = page.locator(sel).first.screenshot() if sel else page.screenshot(clip=clip) page.close()