Changeset 749605a in Klonkt for src/routes/activitypub.js
- Timestamp:
- 08/16/2026 03:06:18 PM (3 weeks ago)
- Branches:
- main
- Children:
- a5caa73
- Parents:
- a5515b4 (diff), 9026de5 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - File:
-
- 1 edited
-
src/routes/activitypub.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/activitypub.js
ra5515b4 r749605a 1115 1115 ORDER BY pinned DESC, COALESCE(published_at, created_at) ASC LIMIT 20` 1116 1116 ).all(site.id); 1117 AP.sendAP(res, AP.buildFeatured(baseUrl(req), site, posts ));1117 AP.sendAP(res, AP.buildFeatured(baseUrl(req), site, posts, { page: paginaNr(req) })); 1118 1118 }); 1119 1119 … … 1130 1130 const site = publicSite(req.params.slug); 1131 1131 if (!site) return res.status(404).end(); 1132 AP.sendAP(res, AP.listPlaylistsAP(baseUrl(req), site, wantsEnriched(req, res) ));1132 AP.sendAP(res, AP.listPlaylistsAP(baseUrl(req), site, wantsEnriched(req, res), { page: paginaNr(req) })); 1133 1133 }); 1134 1134 … … 1139 1139 const site = publicSite(req.params.slug); 1140 1140 if (!site) return res.status(404).end(); 1141 AP.sendAP(res, AP.buildTrackCollection(baseUrl(req), site, AP.siteOpenTracks(site.id, { alles: await magAlles(req, site.slug) }))); 1141 AP.sendAP(res, AP.buildTrackCollection(baseUrl(req), site, AP.siteOpenTracks(site.id, { alles: await magAlles(req, site.slug) }), { page: paginaNr(req) })); 1142 }); 1143 1144 // De bibliotheek van deze site (shaer-0nh). Funkwhale's Audio draagt een 1145 // `library`, en dat is bij hen het haakje waar een UPLOAD aan komt te hangen -- 1146 // zonder die bak blijft een binnengehaalde track daar een naam zonder geluid. 1147 // Gemeten op 13-8: open.audio had onze vier tracks wel, met onze eigen AP-id's, 1148 // maar uploads leeg en is_playable false. 1149 // 1150 // Openbaar, want alles erin is fedi_open. Er valt dus niets goed te keuren en de 1151 // volgerslijst blijft leeg: wie ons volgt volgt de ACTOR, niet de bak. 1152 // 1153 // `?page=` MOET hier doorgegeven worden. Zonder dat adverteert de wortel een 1154 // `first` die op zichzelf uitkomt: de lezer volgt hem, krijgt weer een `Library` 1155 // in plaats van een pagina, en klapt eruit -- open.audio gaf op 15-8 een 500 op 1156 // precies deze URL. Dezelfde les als bij de outbox (shaer-sk4): een `first` 1157 // beloven is een pagina beloven. 1158 router.get('/ap/users/:slug/library', (req, res) => { 1159 const site = publicSite(req.params.slug); 1160 if (!site) return res.status(404).end(); 1161 AP.sendAP(res, AP.buildLibrary(baseUrl(req), site, AP.siteOpenTracks(site.id), { page: paginaNr(req) })); 1162 }); 1163 1164 // De volgerscollectie die hun docs als vereist noemen. Leeg en eerlijk: er is 1165 // geen goedkeuringspad omdat de bibliotheek openbaar is. 1166 router.get('/ap/users/:slug/library/followers', (req, res) => { 1167 const site = publicSite(req.params.slug); 1168 if (!site) return res.status(404).end(); 1169 AP.sendAP(res, AP.pagedCollection(`${AP.libraryId(baseUrl(req), site)}/followers`, [], { page: paginaNr(req) })); 1142 1170 }); 1143 1171 … … 1174 1202 const site = publicSite(req.params.slug); 1175 1203 if (!site) return res.status(404).end(); 1176 const pl = db.prepare('SELECT id, title, artist, year, cover_url, kind FROM playlists WHERE id = ? AND site_id = ?')1204 const pl = db.prepare('SELECT id, title, artist, year, cover_url, kind, release_date, mb_release_id, created_at FROM playlists WHERE id = ? AND site_id = ?') 1177 1205 .get(req.params.id, site.id); 1178 1206 if (!pl) return res.status(404).end(); … … 1361 1389 router.post(['/ap/users/:slug/inbox', '/ap/inbox'], apInboxLimiter, apJson, async (req, res) => { 1362 1390 try { return res.status(await AP.handleInbox(req, req.params.slug || null) || 202).end(); } 1363 catch (e) { console.warn('[AP inbox] error:', e.message); return res.status(202).end(); } 1391 // Met de STACK erbij. Hier stond alleen `e.message`, en op 15-8 leverde dat 1392 // zes keer "[AP inbox] error: slug is not defined" op zonder één aanwijzing 1393 // waar -- een ReferenceError in een handler van duizenden regels, met een 1394 // naam die overal voorkomt. Een fout die je niet kunt plaatsen is niet 1395 // gemeld. Het type en de activiteit erbij, want dat zegt welke tak liep. 1396 catch (e) { 1397 const soort = req.body && req.body.type; 1398 console.warn('[AP inbox] error:', e.message, '| type:', soort, '| slug:', req.params.slug || '(gedeeld)'); 1399 console.warn(e.stack); 1400 return res.status(202).end(); 1401 } 1364 1402 }); 1365 1403
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)