|
All checks were successful
Build plugin / build (push) Successful in 1m10s
- Persist animated GIF frames to user://boxart/itch/anim_frames/<hash>/ so subsequent loads skip ffmpeg extraction entirely. - Persist static GIF first-frame PNGs alongside for the same reason. - Cache stitched banner images via OGPU Cache with a synthetic key from both screenshot URLs, avoiding re-stitch on every load. - Add comprehensive debug logging to _on_focus_changed to diagnose why AnimatedTextures aren't playing (logs control name, type, GameCard ancestor, texture type). - Fix plugin.json version to match git tag (was stuck at 0.1.14). Bump to v0.1.18 |
||
|---|---|---|
| .forgejo/workflows | ||
| assets | ||
| core | ||
| .gitignore | ||
| export_presets.cfg | ||
| LICENSE | ||
| Makefile | ||
| plugin.gd | ||
| plugin.json | ||
| README.md | ||
OpenGamepadUI itch.io Art Provider
Box art provider for itch.io games in OpenGamepadUI.
Fetches cover art and screenshots from itch.io game pages. Works alongside the itch.io library plugin to provide per-layout artwork: the cover for portrait/logo, full-res screenshots for landscape/banner.
Enriches game metadata by scraping the itch.io page HTML for screenshots (the
itch.io API does not expose them), caches the result, and uses OGPU's
HTTPImageFetcher for async image downloads.
Requirements
See the OpenGamepadUI requirements.
Building
make help
make build
make install
How it works
The provider registers with OGPU's BoxArtManager as "itch". When a menu
requests artwork for a game, it checks the library item's launch items for one
with _provider_id == "itch" and reads the itch.io game dict from its metadata
(coverUrl, stillCoverUrl, url). It then:
- Looks up cached screenshots for the game (or scrapes the itch.io page).
- Picks the right URL for each layout:
- portrait / logo: cover image
- landscape: first screenshot (or cover if none)
- banner: second screenshot (or first, or cover)
- Fetches the image via
HTTPImageFetcher(with OGPU'sCachesystem).