Changeset 3bbf73d in Klonkt for src/routes/activitypub.js


Ignore:
Timestamp:
08/10/2026 02:43:16 PM (4 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
f0a33e1
Parents:
f549cf5
Message:

Alleen namen: het Nederlands van vandaag terug naar Engels

shaer-8ms zegt het al: Engelse namen, Nederlands commentaar waar dat helpt. Ik
ben er vandaag opnieuw van afgedreven en zet dat recht voordat er meer bovenop
komt -- gatesFor, messageItem, sentItem, conversationItems, ownHandle,
CONVERSATION_UNION, MESSAGE_COLUMNS, cursorOf, en de locals eromheen
(rows/more/oldest/direction/incoming/heads/self/size).

Geen gedrag, alleen namen, en daarom een eigen commit: die is na te lopen.
851/851 groen voor en na. Het commentaar blijft Nederlands.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/activitypub.js

    rf549cf5 r3bbf73d  
    289289// dat evenveel kopieen worden -- en een poort die op een van die plekken
    290290// vergeten wordt, levert stil iets uit dat dicht hoorde te staan.
    291 function leesPoorten(site) {
     291function gatesFor(site) {
    292292  const isWard = (() => { try { return Guardianship.listGuardians(site.slug).length > 0; } catch { return false; } })();
    293293  const embeds = Guardianship.externalEmbedsAllowed(site.external_embeds, isWard);
     
    314314
    315315/** De naam waaronder deze lezer zichzelf herkent in een Mention. */
    316 function eigenHandle(base, slug) {
     316function ownHandle(base, slug) {
    317317  try { return `@${slug}@${new URL(base).host}`; } catch { return `@${slug}`; }
    318318}
     
    323323// opschrijven is twee vormen die uit de pas kunnen lopen, en dat merk je pas
    324324// als een kaart ergens anders rendert dan waar je keek.
    325 function berichtItem(m, { base, me, myHandle, p }) {
     325function messageItem(m, { base, me, myHandle, p }) {
    326326  return {
    327327    id: `${m.object_uri}#create`,
     
    359359
    360360/** Een eigen verzonden note als AS2-item, zelfde vorm als de inbox-leg. */
    361 function verzondenItem(n, { me, mine }) {
     361function sentItem(n, { me, mine }) {
    362362  return {
    363363    id: `${n.id}#create`,
     
    383383// ophoudt.
    384384//
    385 // Beide lopen langs dezelfde poorten als de inbox-lezing (leesPoorten) en
    386 // dezelfde kaartvorm (berichtItem/verzondenItem). Messages dicht sluit ook
     385// Beide lopen langs dezelfde poorten als de inbox-lezing (gatesFor) en
     386// dezelfde kaartvorm (messageItem/sentItem). Messages dicht sluit ook
    387387// hier vreemden en vrienden, maar nooit het guardian-kanaal en nooit de boei.
    388 function gesprekItems(req, auth, refs) {
     388function conversationItems(req, auth, refs) {
    389389  const base = baseUrl(req);
    390   const P = leesPoorten(auth.site);
     390  const P = gatesFor(auth.site);
    391391  const me = AP.actorId(base, auth.site.slug);
    392   const ctx = { base, me, myHandle: eigenHandle(base, auth.site.slug), p: P };
     392  const ctx = { base, me, myHandle: ownHandle(base, auth.site.slug), p: P };
    393393  const mine = AP.selfAuthor(base, auth.site);
    394394  const guardianUris = (() => { try { return new Set(Guardianship.listGuardians(auth.site.slug).map((g) => g.other_uri)); } catch { return new Set(); } })();
    395395
    396   const binnen = new Map(AP.messageRowsByUri(auth.site.slug, refs.filter((r) => r.richting === 'in').map((r) => r.ref))
     396  const incoming = new Map(AP.messageRowsByUri(auth.site.slug, refs.filter((r) => r.direction === 'in').map((r) => r.ref))
    397397    .map((m) => [m.object_uri, m]));
    398   const uit = [];
     398  const items = [];
    399399  for (const r of refs) {
    400     if (r.richting === 'in') {
    401       const m = binnen.get(r.ref);
     400    if (r.direction === 'in') {
     401      const m = incoming.get(r.ref);
    402402      if (!m) continue;
    403403      if (!(P.messagesAllowed || m.help_request || guardianUris.has(m.actor_uri))) continue;
    404       uit.push(berichtItem(m, ctx));
     404      items.push(messageItem(m, ctx));
    405405    } else {
    406406      const n = AP.getOutboxNote(base, r.ref);
    407407      // Je eigen woorden blijven van jou: een dichte messages-poort verbergt
    408408      // niet wat je zelf gezegd hebt.
    409       if (n) uit.push(verzondenItem(n, { me, mine }));
     409      if (n) items.push(sentItem(n, { me, mine }));
    410410    }
    411411  }
    412   return uit;
     412  return items;
    413413}
    414414
     
    416416  const auth = OAuth.verifyBearer(req.headers.authorization);
    417417  if (!auth || auth.site.slug !== req.params.slug) return res.status(403).end();
    418   const koppen = AP.conversationHeads(auth.site.slug);
    419   const items = gesprekItems(req, auth, koppen);
     418  const heads = AP.conversationHeads(auth.site.slug);
     419  const items = conversationItems(req, auth, heads);
    420420  AP.sendAP(res, {
    421421    '@context': AP.AP_CONTEXT,
     
    433433  const other = String(req.query.with || '');
    434434  if (!/^https?:\/\//i.test(other)) return res.status(400).json({ error: 'with must be an actor URI' });
    435   const uit = AP.conversationHistory(auth.site.slug, other, {
     435  const page = AP.conversationHistory(auth.site.slug, other, {
    436436    before: req.query.before ? String(req.query.before) : null,
    437437    limit: req.query.limit,
    438438  });
    439   const items = gesprekItems(req, auth, uit.rijen);
     439  const items = conversationItems(req, auth, page.rows);
    440440  // De paginagrootte reist mee in next: vroeg je om 30, dan hoort de volgende
    441441  // pagina er ook 30 te zijn. Zonder dit wordt hij stilletjes de standaard, en
    442442  // dan klopt het ritme van een 'load more' niet meer met wat de gebruiker ziet.
    443   const maat = req.query.limit ? `&limit=${encodeURIComponent(String(req.query.limit))}` : '';
    444   const zelf = `${baseUrl(req)}/ap/users/${encodeURIComponent(auth.site.slug)}/messages?with=${encodeURIComponent(other)}`;
     443  const size = req.query.limit ? `&limit=${encodeURIComponent(String(req.query.limit))}` : '';
     444  const self = `${baseUrl(req)}/ap/users/${encodeURIComponent(auth.site.slug)}/messages?with=${encodeURIComponent(other)}`;
    445445  AP.sendAP(res, {
    446446    '@context': AP.AP_CONTEXT,
    447     id: req.query.before ? `${zelf}${maat}&before=${encodeURIComponent(String(req.query.before))}` : `${zelf}${maat}`,
     447    id: req.query.before ? `${self}${size}&before=${encodeURIComponent(String(req.query.before))}` : `${self}${size}`,
    448448    type: 'OrderedCollectionPage',
    449     partOf: zelf,
     449    partOf: self,
    450450    orderedItems: items,
    451451    // De volgende pagina is de standaardvorm van 'er is meer' (AS2). Ontbreekt
    452452    // hij, dan is het gesprek op -- en dat mag de client weten zonder gokken,
    453453    // want anders kan een 'load more' niet eerlijk verschijnen.
    454     next: uit.meer && uit.oudste ? `${zelf}${maat}&before=${encodeURIComponent(uit.oudste)}` : undefined,
     454    next: page.more && page.oldest ? `${self}${size}&before=${encodeURIComponent(page.oldest)}` : undefined,
    455455  }, 'private, no-store');
    456456});
     
    587587  // here, at serialisation: a blocked embed is never sent, because an embed the
    588588  // client merely hides has still been delivered to the device.
    589   // De poorten van deze lezer (leesPoorten): een plek waar ze berekend worden,
     589  // De poorten van deze lezer (gatesFor): een plek waar ze berekend worden,
    590590  // zodat de gesprekslezingen dezelfde stand eerbiedigen en niet hun eigen
    591591  // kopie krijgen die kan gaan afwijken.
    592   const P = leesPoorten(auth.site);
     592  const P = gatesFor(auth.site);
    593593  const {
    594594    embedsAllowed, playbackAllowed, imagesAllowed, musicAllowed, quotesAllowed,
     
    676676  // beschermt niemand. De hulpvraag zelf gaat aan de innamekant al altijd voor.
    677677  const guardianUris = (() => { try { return new Set(Guardianship.listGuardians(auth.site.slug).map((g) => g.other_uri)); } catch { return new Set(); } })();
    678   const berichtCtx = { base, me, myHandle, p: P };
     678  const messageCtx = { base, me, myHandle, p: P };
    679679  const messages = AP.getDirectMessages(auth.site.slug, 60)
    680680    .filter((m) => messagesAllowed || m.help_request || guardianUris.has(m.actor_uri))
    681     .map((m) => berichtItem(m, berichtCtx));
     681    .map((m) => messageItem(m, messageCtx));
    682682  // Inbound REPLIES on your own posts: stored as interactions (the web's
    683683  // comment machinery), never as mentions, so this read missed them and a
Note: See TracChangeset for help on using the changeset viewer.