Changeset 749605a in Klonkt for src/config/database.js


Ignore:
Timestamp:
08/16/2026 03:06:18 PM (3 weeks ago)
Author:
Robin <roboburr@…>
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.
Message:

Bibliotheek en album-federatie terug op main (shaer-0nh, shaer-756s)

Achttien commits, in drie brokken.

DE BIBLIOTHEEK. Een Library-skelet met een eigen volgerssoort: wie de
bibliotheek volgt krijgt de muziek en met opzet niet de gewone posts, en
die staan daarom in een eigen tabel -- een vlag die iemand vergeet te
filteren bezorgt stilletjes de Krant aan mensen die er niet om vroegen.
Daarna wat er nodig bleek om werkelijk gelezen te worden: audience
(zonder dat gaf hun create() een KeyError en dus een 500 op onze URL),
de ongeordende collectievorm, en paginering op elke collectie die first
belooft -- die laatste vond meteen dat featured hetzelfde gat had.

HET VOCABULAIRE. fw:track in de kleine vorm die Emissary ook stuurt,
artist_credit met de site-actor als Artist (mogelijk geworden door de
MusicBrainz-koppeling), en het album als ingesloten fw:Album met
released, musicbrainzId en een eigen artist_credit. Daarvoor kwamen er
twee kolommen op playlists, alleen bij kind='album' en afgedwongen in
PlaylistService -- niet in het scherm, want de API ligt open.

HET BEHEER. De vijf mediapagina's stonden op drie verschillende
ontwerpen; nu op een gedeelde ax-romp, met de primitieven op een plek in
plaats van in acht kopieen. De playlist-modal ging alsnog door i18n: die
teksten stonden hard in het script, wat niet opviel omdat het toevallig
de brontaal was.

WAT ER NIET IN ZIT: bitrate en size top-level als fw:. Dat is bewust
(shaer-3f8a). Hun eigen outbox zet ze op de Link, net als wij, en het
wordt een gesprek in plaats van een aanpassing -- briefing in
~/bewaard/funkwhale-briefing-en.md.

Gereedschap dat meekomt: scripts/funkwhale-gat.mjs meet het gat naar hun
ingest, admin-css.mjs en admin-css-gelijk.mjs ontleden en vergelijken de
beheer-CSS, render-admin-views.mjs rendert de views gevuld en leeg. Die
laatste drie omdat de testsuite geen enkele view aanraakt.

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

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/config/database.js

    ra5515b4 r749605a  
    140140  ensureColumn('sites', 'mb_artist_id', 'TEXT');
    141141  ensureColumn('sites', 'mb_artist_name', 'TEXT');
     142  // Een UITGAVE heeft twee dingen die een afspeellijst niet heeft (shaer-756s).
     143  //
     144  // release_date en niet `year`: die kolom bestaat al en blijft, maar hun
     145  // AlbumSerializer leest `released` als een DateField. Een jaartal als
     146  // 2024-01-01 versturen is een dag verzinnen, en dat is precies wat we bij
     147  // artiesten en albums niet doen. Volledige datum of niets.
     148  //
     149  // mb_release_id is de tegenhanger van sites.mb_artist_id: dezelfde soort
     150  // verwijzing naar MusicBrainz, een niveau lager.
     151  //
     152  // Ze horen ALLEEN bij kind='album'. PlaylistService dwingt dat af bij het
     153  // opslaan -- zie daar waarom dat niet alleen in het scherm mag zitten.
     154  ensureColumn('playlists', 'release_date', 'TEXT');
     155  ensureColumn('playlists', 'mb_release_id', 'TEXT');
    142156  ensureColumn('audio_tracks', 'cover_url', 'TEXT');
    143157  ensureColumn('audio_tracks', 'album', 'TEXT');
     
    386400      private_pem TEXT NOT NULL,
    387401      created_at DATETIME DEFAULT CURRENT_TIMESTAMP
    388     );
     402    );    -- LUISTERAARS (shaer-0nh). Wie de BIBLIOTHEEK volgt, niet de actor.
     403    --
     404    -- Een eigen tabel en niet een vlag op ap_followers, en dat is met opzet:
     405    -- deze accounts horen onze gewone posts NIET te krijgen. Zolang ze in een
     406    -- andere tabel staan kan een bezorging ze niet per ongeluk meenemen -- een
     407    -- vlag die iemand vergeet te filteren zou dat wel doen, en dan komt de
     408    -- Krant van een site bij mensen die alleen muziek wilden.
     409    CREATE TABLE IF NOT EXISTS ap_library_followers (
     410      id INTEGER PRIMARY KEY AUTOINCREMENT,
     411      slug TEXT NOT NULL,
     412      actor_uri TEXT NOT NULL,
     413      inbox TEXT,
     414      shared_inbox TEXT,
     415      name TEXT,
     416      handle TEXT,
     417      icon TEXT,
     418      created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
     419      last_delivery_at DATETIME,
     420      last_error_at DATETIME,
     421      UNIQUE (slug, actor_uri)
     422    );
     423
    389424    CREATE TABLE IF NOT EXISTS ap_followers (
    390425      id INTEGER PRIMARY KEY AUTOINCREMENT,
Note: See TracChangeset for help on using the changeset viewer.