Changeset d1075a1 in Klonkt
- Timestamp:
- 08/08/2026 05:41:58 PM (4 weeks ago)
- Branches:
- main
- Children:
- 3a0ca0f
- Parents:
- 4838760
- Files:
-
- 3 edited
-
src/routes/activitypub.js (modified) (1 diff)
-
src/services/ActivityPubService.js (modified) (2 diffs)
-
test/own-card.test.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/activitypub.js
r4838760 rd1075a1 179 179 const fanClause = audience === 'friend' ? '' : "AND (fan_only IS NULL OR fan_only = 0)"; 180 180 const posts = db.prepare( 181 `SELECT id, slug, title, content, cover_image_url, cover_video_url, nsfw, content_warning, c2s_attachments, published_at, created_at181 `SELECT id, slug, title, content, cover_image_url, cover_video_url, nsfw, content_warning, c2s_attachments, quote_json, embed_json, published_at, created_at 182 182 FROM posts WHERE site_id = ? AND status = 'published' ${fanClause} 183 183 ORDER BY COALESCE(published_at, created_at) DESC LIMIT 20` -
src/services/ActivityPubService.js
r4838760 rd1075a1 2949 2949 // IS the notification. 2950 2950 const quoteInboxes = []; 2951 // EERST BAKKEN, dan pas linken zoeken (shaer-k3f, gevonden op het toestel): 2952 // firstExternalUrl leest <a href>-ankers, en de web-editor bakt die er bij 2953 // het opslaan al in -- maar een post uit de APP is platte tekst waarin de 2954 // URL nog geen anker is. Zonder deze bak zag het C2S-pad dus nooit een link 2955 // en kreeg een app-post nooit een kaart, terwijl de preview hem net wel 2956 // beloofd had. 2957 const gebakken = bakePostContent(post2.content || ''); 2951 2958 if (post2.quote_uri === undefined || post2.quote_uri === null) { 2952 const q = await resolveOwnQuote( post2.content || '');2959 const q = await resolveOwnQuote(gebakken); 2953 2960 if (q) { 2954 2961 try { db.prepare('UPDATE posts SET quote_uri = ?, quote_actor = ? WHERE id = ?').run(q.uri, q.actor || null, post.id); } catch { /* ignore */ } … … 2968 2975 if (qj) { db.prepare('UPDATE posts SET quote_json = ? WHERE id = ?').run(qj, post.id); post2 = { ...post2, quote_json: qj }; } 2969 2976 } else { 2970 const ej = await resolveExternalEmbed( post2.content || '');2977 const ej = await resolveExternalEmbed(gebakken); 2971 2978 if (ej) { db.prepare('UPDATE posts SET embed_json = ? WHERE id = ?').run(ej, post.id); post2 = { ...post2, embed_json: ej }; } 2972 2979 } -
test/own-card.test.js
r4838760 rd1075a1 46 46 47 47 test('een externe link in een eigen post wordt een embed-snapshot op de post', async () => { 48 // PLATTE tekst, geen anker: zo komt een post uit de app binnen (het 49 // C2S-pad bakt niet voor het opslaan). Op het toestel bleef precies dit 50 // geval een kale link terwijl de web-editor wel een kaart kreeg. 48 51 db.prepare("INSERT INTO posts (id, site_id, author_id, slug, title, content, status) VALUES ('p1','s1','u1','p1','', ?, 'published')") 49 .run(`<p>Kijk: <a href="${EXTERN}">${EXTERN}</a></p>`);52 .run(`<p>Kijk: ${EXTERN}</p>`); 50 53 const post = db.prepare("SELECT * FROM posts WHERE id = 'p1'").get(); 51 54 await AP.deliverCreate(site, post);
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)