Changeset a117862 in Klonkt
- Timestamp:
- 08/13/2026 01:08:32 PM (4 weeks ago)
- Branches:
- main
- Children:
- 5300652
- Parents:
- 8455dac
- git-author:
- Robin <roboburr@…> (08/13/2026 12:06:21 PM)
- git-committer:
- Robin <roboburr@…> (08/13/2026 01:08:32 PM)
- Files:
-
- 2 added
- 2 edited
-
src/config/database.js (modified) (1 diff)
-
src/routes/admin-audio.js (modified) (2 diffs)
-
src/services/MusicBrainzService.js (added)
-
test/musicbrainz.test.js (added)
Legend:
- Unmodified
- Added
- Removed
-
src/config/database.js
r8455dac ra117862 134 134 ensureColumn('ap_follow_reviews', 'target_handle', 'TEXT'); 135 135 ensureColumn('sites', 'profile_photo', 'TEXT'); 136 // De MusicBrainz-koppeling van de artiest (shaer-mbz). Een MBID is een 137 // verwijzing naar hun register, geen kopie ervan -- de naam staat erbij zodat 138 // het beheerscherm kan tonen WAT er gekoppeld is zonder ervoor te moeten 139 // netwerken, en zodat een verkeerde koppeling opvalt. 140 ensureColumn('sites', 'mb_artist_id', 'TEXT'); 141 ensureColumn('sites', 'mb_artist_name', 'TEXT'); 136 142 ensureColumn('audio_tracks', 'cover_url', 'TEXT'); 137 143 ensureColumn('audio_tracks', 'album', 'TEXT'); -
src/routes/admin-audio.js
r8455dac ra117862 23 23 import { audioUrl } from '../services/AudioStreamService.js'; 24 24 import { mediaDir } from '../config/paths.js'; 25 import MusicBrainz from '../services/MusicBrainzService.js'; 25 26 26 27 const __dirname = path.dirname(fileURLToPath(import.meta.url)); … … 383 384 384 385 /** GET /admin/audio/api/albums — distinct list of album names (for datalist) */ 386 /** 387 * "Ben jij dit?" -- kandidaten uit MusicBrainz (shaer-mbz, stap 1). 388 * 389 * De zoekopdracht draait HIER en niet in de browser: MusicBrainz staat een 390 * verzoek per seconde toe per APPLICATIE, en dat is alleen af te dwingen als 391 * alles langs een plek gaat. Bovendien eisen ze een User-Agent met contact, en 392 * die kan een browser niet zetten. 393 * 394 * De keuze blijft van de artiest. Wij tonen kandidaten met hun toelichting; we 395 * kiezen er niet zelf een, ook niet als er maar een treffer is -- een verkeerd 396 * geraden MBID koppelt iemand aan het werk van een ander. 397 */ 398 router.get('/api/musicbrainz', requireGod, async (req, res) => { 399 const site = res.locals.site; 400 if (!site) return res.status(404).json({ error: 'no_site' }); 401 // Standaard de artiestennaam die al in de site staat: negen van de tien keer 402 // is dat precies waar iemand op zou zoeken. 403 const q = String(req.query.q || site.author || site.title || '').trim(); 404 if (!q) return res.json({ ok: true, q: '', kandidaten: [] }); 405 const kandidaten = await MusicBrainz.zoekArtiesten(q); 406 res.json({ 407 ok: true, 408 q, 409 gekoppeld: site.mb_artist_id 410 ? { mbid: site.mb_artist_id, naam: site.mb_artist_name || '', url: MusicBrainz.artiestUrl(site.mb_artist_id) } 411 : null, 412 kandidaten, 413 }); 414 }); 415 385 416 router.get('/api/albums', requireGod, (req, res) => { 386 417 const site = res.locals.site;
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)