fix: resolve Steam artwork through anonymous PICS - #97
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Modern Steam library artwork includes a hash in its asset path, so App ID-only logo and hero URLs fail for newer games. Resolve library and community artwork through
steam-client-rswith anonymous CM login,get_product_info, andProductInfoResponse, then build CDN URLs from validated PICS paths. Use blurred library heroes for card backgrounds and center title logos.Keep header, capsule and screenshot loading on the existing cached Store-details path. Encapsulate PICS metadata loading and persistence in
steam_pics; fresh cache reads bypass the CM lookup lock, and waiting lookups recheck the cache before connecting. Refresh metadata after 24 hours and retain stale metadata when Steam is unreachable. Reuse the existing image cache, legacy URL fallbacks, size limits, atomic writes and user-facing cache warnings.Validation:
CM cache misses remain serialized; cached metadata for other games can be read immediately. No additional dependencies or application version change in the optimization commit.