Changeset 6401681 in Klonkt for src/routes/admin-sites.js
- Timestamp:
- 08/13/2026 01:08:32 PM (4 weeks ago)
- Branches:
- main
- Children:
- f59a46c
- Parents:
- 5300652
- git-author:
- Robin <roboburr@…> (08/13/2026 12:16:47 PM)
- git-committer:
- Robin <roboburr@…> (08/13/2026 01:08:32 PM)
- File:
-
- 1 edited
-
src/routes/admin-sites.js (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/routes/admin-sites.js
r5300652 r6401681 27 27 import { mediaDir } from '../config/paths.js'; 28 28 import AP from '../services/ActivityPubService.js'; 29 import MusicBrainz from '../services/MusicBrainzService.js'; 29 30 30 31 … … 322 323 323 324 // ==================== SAVE ==================== 325 /** 326 * "Ben jij dit?" -- kandidaten uit MusicBrainz (shaer-mbz). 327 * 328 * De zoekopdracht draait HIER en niet in de browser: MusicBrainz staat een 329 * verzoek per seconde toe per APPLICATIE, en dat is alleen af te dwingen als 330 * alles langs een plek gaat. Bovendien eisen ze een User-Agent met contact, en 331 * die kan een browser niet zetten. 332 * 333 * Wij kiezen NIET. Ook niet als er precies een treffer is: een verkeerd geraden 334 * MBID zet jouw naam onder andermans werk. 335 */ 336 router.get('/:slug/api/musicbrainz', requireSiteManagerBySlug, async (req, res) => { 337 const site = db.prepare('SELECT title, mb_artist_id, mb_artist_name FROM sites WHERE slug = ?').get(req.params.slug); 338 if (!site) return res.status(404).json({ error: 'no_site' }); 339 const q = String(req.query.q || site.title || '').trim(); 340 if (!q) return res.json({ ok: true, q: '', kandidaten: [] }); 341 res.json({ ok: true, q, kandidaten: await MusicBrainz.zoekArtiesten(q) }); 342 }); 343 324 344 router.post('/:slug/save', requireSiteManagerBySlug, async (req, res) => { 325 345 const site = db.prepare('SELECT id, ap_aliases FROM sites WHERE slug = ?').get(req.params.slug); … … 346 366 // accent: only accept colors from the curated ACCENTS list. Falls back to 347 367 // the orange default if the submitted value isn't recognised. 368 // De MusicBrainz-koppeling (shaer-mbz). Alleen een echte MBID komt de kolom 369 // in: zonder deze zeef sluipt er een hele URL of een handle in het veld dat 370 // straks naar buiten gaat. Leeg is een geldige keuze -- dat is ontkoppelen. 371 const mbRuw = String(f.mb_artist_id || '').trim().toLowerCase(); 372 const mbArtistId = MusicBrainz.isMbid(mbRuw) ? mbRuw : null; 373 348 374 const accent = ThemeService.validateAccent(f.accent) || '#e8b04b'; 349 375 … … 355 381 profile_links = ?, 356 382 ap_aliases = ?, 383 mb_artist_id = ?, mb_artist_name = ?, 357 384 is_public = ?, robots_index = ?, require_login_to_comment = ?, 358 385 enable_audio_player = ?, … … 374 401 profileLinksJson, 375 402 apAliasesJson, 403 mbArtistId, 404 mbArtistId ? (String(f.mb_artist_name || '').trim().slice(0, 200) || null) : null, 376 405 f.is_public ? 1 : 0, 377 406 f.robots_index ? 1 : 0,
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)