mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 09:00:35 +02:00
Library art: real gameplay instead of GitHub social cards; accept GIF sources
GitHub's opengraph preview is repo text, stats and an identicon; as a Steam hero it looked broken. GitHub entries no longer default to it (the store draws its fallback, Steam gets generated art). Source GIFs (common gameplay captures) are accepted; the Frame's Chromium draws the first frame. Open Saber Plus uses its gameplay GIF as banner. Verified on the Frame: hero/wide now show gameplay. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
7990553620
commit
b5caee5b86
5 files changed
+18
-9
No files matched your search
+7
-1
@@ -34,6 +34,12 @@ def image_type(data):
|
||||
if data.startswith(PNG):
|
||||
png_size(data)
|
||||
return 'png'
|
||||
if data[:6] in (b'GIF87a', b'GIF89a') and len(data) >= 10:
|
||||
# Gameplay GIFs are common source screenshots; the Frame's Chromium draws their first frame.
|
||||
w, h = struct.unpack_from('<HH', data, 6)
|
||||
if w and h and w * h <= MAX_PIXELS and max(w, h) <= 8192:
|
||||
return 'gif'
|
||||
raise ValueError('artwork GIF has unsupported dimensions')
|
||||
if data.startswith(b'\xff\xd8'):
|
||||
# Check JPEG SOF dimensions without depending on an image library; trailing padding is fine.
|
||||
pos = 2
|
||||
@@ -52,7 +58,7 @@ def image_type(data):
|
||||
return 'jpg'
|
||||
break
|
||||
pos += size
|
||||
raise ValueError('artwork must be a supported PNG or JPEG')
|
||||
raise ValueError('artwork must be a supported PNG, JPEG or GIF')
|
||||
|
||||
|
||||
def fetch(value, deadline=None):
|
||||
|
||||
Reference in new issue
Block a user