Repository navigation
feat(media): draw gallery posts and enriched external cards - #262
Merged
Merged
Conversation
app.bsky.embed.gallery#view is a separate embed shape from images#view, so those posts previously showed neither media nor a marker. Read it through Wolfram's embed-view parser and draw its first four pictures in the same image row, including when it is the media half of a quote post. The enriched external#view can also carry source.title and readingTime. Use them for the link card's footer, falling back to the host it showed before, so a Standard.site article names its publication. The parser is only invoked for gallery and external media, once per fetched post. Fixtures now carry a gallery post and an external card with both fields; snapshot cases check the flattened data and shoot both cards. (#102) 🤖 Generated with Codebuff Co-Authored-By: Codebuff <noreply@codebuff.com>
3 tasks done
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.
What this changes
Implements the feed-side external-media variants left on #102.
app.bsky.embed.gallery#viewis a separate view shape fromimages#view(its items usethumbnail). Gallery posts previously drew neither media nor a bracketed marker; they now draw their first four pictures in the same image row, including when the gallery is the media half of arecordWithMediaquote.external#viewcan carrysource.titleandreadingTime. The link card's footer now names the publication and reading time, falling back to the bare host it showed before. A plain link card is unchanged.wf_embed_parse_view/wf_embed_parse_external_embed_viewrather than a second cJSON reader. That parser takes JSON text, sofill_embedserialises the open embed subtree once per fetched post, and only for gallery or external media. The existing images, video poster/duration and quote paths are untouched.This supersedes #261, which was stacked on the pre-rebase
feat/settings-screenbranch and became conflicting once #260 landed. The commit is unchanged; it is now cut frommainas the flow requires.The separate
getEmbedExternalViewarticle/livestream payloads are composer-side data, not post-view shapes, and are not part of this change.Verification
make -C tests all— 1621 checks, 0 failures (sweep, linkcheck and unit tests), including the new gallery note case.make -C tests snapshot— 658 checks, 0 failures. The fixtures carry a gallery post and an external card withreadingTimeandsource.title; the flattened fields are asserted andtimeline-gallery/timeline-externalframes are written.make -j4with devkitPro —cobalt.wuhbbuilt on the same tree before the rebase.python3 tools/check-guide.pyandbash tools/check-parity.shpass.Host-only and device-build verification. No Wii U or Cemu pass was run; the gallery layout and enriched card are not hardware-verified.
Refs #102. Supersedes #261.
Docs
AGENTS.md,README.md,docs/guide.md,docs/PARITY.mdandCHANGELOG.mdupdated. The parity row remains partial for the separate article/livestream query payloads.Checklist
CI gateandflow / conventions)