37 lines
1.3 KiB
Markdown
37 lines
1.3 KiB
Markdown
# OpenGamepadUI itch.io Art Provider
|
|
|
|
Box art provider for itch.io games in [OpenGamepadUI](https://github.com/ShadowBlip/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](https://github.com/ShadowBlip/OpenGamepadUI#requirements).
|
|
|
|
## Building
|
|
|
|
```bash
|
|
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).
|