Changeset 3654057 in Klonkt


Ignore:
Timestamp:
07/26/2026 09:08:41 AM (6 weeks ago)
Author:
Robin Genis <roboburr@…>
Branches:
main
Children:
b5c2538
Parents:
f3caf19
Message:

Boost-pad: content-emoji's (+links/quote) meenemen, net als een gewone post

Het Announce (boost)-pad sloeg alleen reblog_* + auteur-emoji op, maar NIET de
content-emoji's (emoji_json), object-links (link_json) of de quote. Daardoor
toonden verse boosts rauwe :shortcodes: in de tekst tot een self-heal langskwam.
Nu vangt het boost-pad dezelfde renderbare tags als het Create-pad: emoji_json +
link_json in de loop, en de quote-resolutie out-of-band erna.

Changed files:
src/services/ActivityPubService.js

  • boost-pad slaat emoji_json + link_json op en resolvet de quote

remarks: 180 tests groen. Bestaande zichtbare boosts waren al via self-heal
gevangen; dit dekt nieuwe boosts direct.

-robo
Co-Authored-By: Claude Opus 4.8 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/services/ActivityPubService.js

    rf3caf19 r3654057  
    16921692            if (inserted) { try { db.prepare('UPDATE ap_timeline SET reblog_name = ?, reblog_handle = ?, reblog_icon = ?, reblog_emoji_json = ? WHERE slug = ? AND id = ?').run(booster.name, booster.handle, booster.icon, (booster.emojis && Object.keys(booster.emojis).length) ? JSON.stringify(booster.emojis) : null, s.slug, bn.id); } catch { /* ignore */ } }
    16931693            storeAuthorEmoji(bn.id, s.slug, oai);   // custom-emoji display name for the byline
     1694            // A boost carries the same renderable tags as a Create: capture the
     1695            // note's content emojis (FEP-9098) and object links / quote (FEP-e232/
     1696            // 044f) so boosted posts render like any other, not as raw shortcodes.
     1697            { const ej = extractEmojiTags(bn.tag); if (ej) { try { db.prepare('UPDATE ap_timeline SET emoji_json = ? WHERE id = ? AND slug = ?').run(ej, bn.id, s.slug); } catch { /* ignore */ } } }
     1698            { const lj = extractLinkJson(bn); if (lj) { try { db.prepare('UPDATE ap_timeline SET link_json = ? WHERE id = ? AND slug = ?').run(lj, bn.id, s.slug); } catch { /* ignore */ } } }
     1699          }
     1700          // FEP-044f: resolve the embedded quote card for a boosted post too
     1701          // (out of band, best-effort, so it does not block the inbox response).
     1702          if (quoteHrefOf(bn)) {
     1703            const slugs = subs.map((s) => s.slug);
     1704            resolveQuote(bn).then((qj) => {
     1705              if (!qj) return;
     1706              for (const sl of slugs) { try { db.prepare('UPDATE ap_timeline SET quote_json = ? WHERE id = ? AND slug = ?').run(qj, bn.id, sl); } catch { /* ignore */ } }
     1707            }).catch(() => { /* best-effort */ });
    16941708          }
    16951709          console.log('[AP] timeline boost +', actorUri, 'x' + subs.length);
Note: See TracChangeset for help on using the changeset viewer.