No description
Find a file
Jose Falanga 157593e853
All checks were successful
Build plugin / build (push) Successful in 1m10s
fix: handle itch.zone serving PNG for .jpg URLs
itch.zone returns content-type: image/png for .jpg URLs. HTTPImageFetcher
uses URL extension to pick the decoder, causing load_jpg_from_buffer to
fail on PNG data. Added format detection fallback that checks Content-Type
headers when the normal fetch fails for .jpg/.jpeg URLs.

Bump to v0.1.16
2026-08-20 00:11:46 -03:00
.forgejo/workflows Initial commit: itch.io box art provider for OpenGamepadUI 2026-08-16 20:17:35 -03:00
assets Initial commit: itch.io box art provider for OpenGamepadUI 2026-08-16 20:17:35 -03:00
core fix: handle itch.zone serving PNG for .jpg URLs 2026-08-20 00:11:46 -03:00
.gitignore Initial commit: itch.io box art provider for OpenGamepadUI 2026-08-16 20:17:35 -03:00
export_presets.cfg Initial commit: itch.io box art provider for OpenGamepadUI 2026-08-16 20:17:35 -03:00
LICENSE Initial commit: itch.io box art provider for OpenGamepadUI 2026-08-16 20:17:35 -03:00
Makefile Initial commit: itch.io box art provider for OpenGamepadUI 2026-08-16 20:17:35 -03:00
plugin.gd feat: animated GIF covers with config toggle and focus-based pausing 2026-08-19 21:11:04 -03:00
plugin.json bump to v0.1.14 2026-08-19 22:13:24 -03:00
README.md Initial commit: itch.io box art provider for OpenGamepadUI 2026-08-16 20:17:35 -03:00

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:

  1. Looks up cached screenshots for the game (or scrapes the itch.io page).
  2. 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)
  3. Fetches the image via HTTPImageFetcher (with OGPU's Cache system).