mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 08:00:32 +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
@@ -37,7 +37,7 @@ class PublisherSources(unittest.TestCase):
|
||||
self.assertTrue(entry['summary'])
|
||||
images = entry['images']
|
||||
self.assertEqual(entry['icon'], images['icon'])
|
||||
for url in [images['icon'], images['banner']] + images['screenshots']:
|
||||
for url in [u for u in [images['icon'], images['banner']] if u] + images['screenshots']:
|
||||
self.assertTrue(url.startswith('https://'))
|
||||
self.assertEqual(evidence[url]['status'], 200)
|
||||
self.assertTrue(evidence[url]['image'])
|
||||
@@ -53,8 +53,7 @@ class PublisherSources(unittest.TestCase):
|
||||
self.assertEqual(entry['images'], curated['images'])
|
||||
unknown = github.details(github.sources()[0], 'unknown/project')
|
||||
self.assertEqual(unknown['icon'], 'https://github.com/unknown.png')
|
||||
self.assertEqual(unknown['images']['banner'],
|
||||
'https://opengraph.githubassets.com/1/unknown/project')
|
||||
self.assertIsNone(unknown['images']['banner'])
|
||||
|
||||
def test_real_releases(self):
|
||||
for key, repo in [('khronos', 'KhronosGroup/OpenXR-SDK-Source'),
|
||||
@@ -79,8 +78,7 @@ class PublisherSources(unittest.TestCase):
|
||||
for entry, repo in zip(entries, data['items']):
|
||||
self.assertEqual(entry['icon'], repo['owner']['avatar_url'])
|
||||
self.assertEqual(entry['images']['icon'], entry['icon'])
|
||||
self.assertEqual(entry['images']['banner'],
|
||||
'https://opengraph.githubassets.com/1/' + repo['full_name'])
|
||||
self.assertIsNone(entry['images']['banner'])
|
||||
self.assertEqual(entry['images']['screenshots'], [])
|
||||
self.assertFalse(github.details(github.sources()[0], 'unknown/project')['downloadable'])
|
||||
with self.assertRaises(SourceError):
|
||||
|
||||
@@ -171,6 +171,10 @@ class ArtworkTests(unittest.TestCase):
|
||||
data = (FIXTURES / 'icon.jpg').read_bytes()
|
||||
self.assertEqual(art.image_type(data), 'jpg')
|
||||
self.assertEqual(art.image_type(data + b'\0' * 64), 'jpg') # trailing padding after EOI
|
||||
gif = b'GIF89a' + struct.pack('<HH', 640, 360) + b'\0' * 20 # gameplay GIFs: first frame drawn
|
||||
self.assertEqual(art.image_type(gif), 'gif')
|
||||
with self.assertRaises(ValueError):
|
||||
art.image_type(b'GIF89a' + struct.pack('<HH', 0, 360) + b'\0' * 20)
|
||||
with self.assertRaises(ValueError):
|
||||
art.image_type(data[:30])
|
||||
|
||||
|
||||
Reference in new issue
Block a user