Changeset 0677bac in Klonkt for src/services/music/index.js
- Timestamp:
- 08/09/2026 08:24:16 AM (4 weeks ago)
- Branches:
- main
- Children:
- d60c498
- Parents:
- a5d14c7
- File:
-
- 1 edited
-
src/services/music/index.js (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/services/music/index.js
ra5d14c7 r0677bac 14 14 15 15 import db from '../../config/database.js'; 16 import { AP_CONTEXT, PUBLIC, actorId, noteId, safeUrl, guessMediaType } from '../ap-core.js';16 import { AP_CONTEXT, PUBLIC, actorId, noteId, safeUrl, guessMediaType, normalizeTags, tagParts } from '../ap-core.js'; 17 17 import { afleidenUitInsluitingen, ingeslotenPlaylists } from '../../assets/js/shared/post-music-type.js'; 18 18 … … 368 368 // samenvatting en content het lijf. Artiest en jaar blijven dus in summary 369 369 // staan -- dat is een samenvatting, en de posttekst is dat niet. 370 const tekst = (post.excerpt || '').trim();370 const tekst = tekstVanPost(post); 371 371 if (tekst) obj.content = tekst; 372 372 … … 388 388 } 389 389 390 /** De tags van een post als AS2 Hashtags. Zelfde vorm als buildHashtagList. */ 390 /** 391 * De tags van een post als AS2 Hashtags -- zelfde vorm als buildHashtagList. 392 * 393 * Met normalizeTags en niet met een eigen split: het veld staat als JSON-array 394 * in de database, en op komma's splitsen leverde live `#["Doen we Niet"` op. 395 * Dat is het soort fout dat niet omvalt maar onzin uitlevert. 396 */ 391 397 function hashtagsVanPost(base, tagsField) { 392 const ruw = Array.isArray(tagsField)393 ? tagsField394 : String(tagsField || '').split(',');395 398 const uit = [], gezien = new Set(); 396 for (const t of ruw) { 397 const label = String(t || '').trim().replace(/^#/, ''); 398 if (!label) continue; 399 const slug = label.toLowerCase().replace(/\s+/g, '-'); 400 if (gezien.has(slug)) continue; 401 gezien.add(slug); 402 uit.push({ type: 'Hashtag', href: `${base}/tag/${encodeURIComponent(slug)}`, name: '#' + label }); 399 for (const t of normalizeTags(tagsField)) { 400 const p = tagParts(t); 401 if (!p || gezien.has(p.slug)) continue; 402 gezien.add(p.slug); 403 uit.push({ type: 'Hashtag', href: `${base}/tag/${encodeURIComponent(p.slug)}`, name: '#' + p.label }); 403 404 } 404 405 return uit; 406 } 407 408 /** 409 * De tekst van een post, als er een is. De excerpt heeft voorrang -- die is 410 * geschreven om samen te vatten. Staat die leeg, dan het lijf zelf: zonder 411 * shortcodes (die zijn de muziek, niet het verhaal erover) en zonder opmaak. 412 * Levert null als er niets overblijft, want een leeg veld is slechter dan geen. 413 */ 414 function tekstVanPost(post) { 415 const excerpt = String(post.excerpt || '').trim(); 416 if (excerpt) return excerpt; 417 const kaal = String(post.content || '') 418 .replace(/\[\[[a-z]+:[^\]]*\]\]/gi, ' ') 419 .replace(/<[^>]+>/g, ' ') 420 .replace(/ /gi, ' ') 421 .replace(/&[a-z#0-9]+;/gi, ' ') 422 .replace(/\s+/g, ' ') 423 .trim(); 424 return kaal || null; 405 425 } 406 426
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)