Changeset d97c58c in Klonkt for src/services/ActivityPubService.js
- Timestamp:
- 08/16/2026 06:15:52 PM (3 weeks ago)
- Branches:
- main
- Children:
- 995b100
- Parents:
- 1019a90
- File:
-
- 1 edited
-
src/services/ActivityPubService.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/ActivityPubService.js
r1019a90 rd97c58c 1142 1142 // vrienden-post met een publiek etiket erop, en die mag hij dan publiek 1143 1143 // boosten. Gevonden tijdens de FEP-1580 end-to-end test (shaer-fuyo). 1144 `SELECT id, slug, title, content, cover_image_url, cover_video_url, nsfw, content_warning, 1144 // EN paid + excerpt, om exact dezelfde reden (Barts melding, 15-8). Zonder 1145 // `paid` is post.paid hier `undefined`, dan slaat buildNote zijn redactie 1146 // over en gaat de VOLLEDIGE tekst van een betaalde post de outbox uit. Zo 1147 // kwam een post via een hub-actor gewoon te lezen. `excerpt` moet mee omdat 1148 // de teaser daaruit komt; zonder dat veld valt hij terug op de eerste 1149 // alinea van precies de tekst die verborgen hoort te blijven. 1150 // 1151 // Dit is een KOLOMMENLIJST, en die faalt stil: een vergeten kolom is 1152 // `undefined` en niet een fout. Wie hier een veld toevoegt waar buildNote 1153 // op beslist, moet het HIER ook toevoegen. 1154 `SELECT id, slug, title, excerpt, content, cover_image_url, cover_video_url, nsfw, content_warning, 1145 1155 c2s_attachments, quote_json, embed_json, published_at, created_at, 1146 fan_only, ap_visibility 1156 fan_only, ap_visibility, paid, paid_min_cents 1147 1157 FROM posts WHERE id IN (${gaten(postIds.length)})`).all(...postIds) : []; 1148 1158 const tracks = trackIds.length ? db.prepare( … … 3014 3024 const site = db.prepare('SELECT * FROM sites WHERE slug = ?').get(slug); 3015 3025 if (!site) return; 3026 // Deze lijst filterde op fan_only maar NIET op paid, en haalde `paid` ook niet 3027 // op -- dus stond post.paid op undefined, sloeg buildNote zijn redactie over, 3028 // en duwden we bij ELKE nieuwe volger twintig posts de deur uit met de 3029 // volledige tekst van de betaalde erbij. Een push, dus onherroepelijk: het 3030 // staat daarna in hun inbox. Zelfde reden voor ap_visibility, dat hier 3031 // helemaal ontbrak: een friends- of direct-post hoort niet in een backfill. 3032 // (Barts melding, 15 augustus 2026.) 3016 3033 const recent = db.prepare( 3017 `SELECT id, slug, title, content, cover_image_url, cover_video_url, nsfw, content_warning, c2s_attachments, published_at, created_at 3034 `SELECT id, slug, title, excerpt, content, cover_image_url, cover_video_url, nsfw, content_warning, 3035 c2s_attachments, published_at, created_at, fan_only, ap_visibility, paid, paid_min_cents 3018 3036 FROM posts WHERE site_id = ? AND status = 'published' AND (fan_only IS NULL OR fan_only = 0) 3037 AND IFNULL(ap_visibility, 'public') = 'public' 3019 3038 ORDER BY COALESCE(published_at, created_at) DESC LIMIT 20` 3020 3039 ).all(site.id).reverse();
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)