Changeset fa08981 in Klonkt
- Timestamp:
- 06/20/2026 01:52:46 AM (3 months ago)
- Branches:
- main
- Children:
- 8f6225c
- Parents:
- 230e446
- Location:
- src
- Files:
-
- 3 edited
-
assets/js/audio-player.js (modified) (2 diffs)
-
routes/audio.js (modified) (1 diff)
-
views/shell.ejs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
src/assets/js/audio-player.js
r230e446 rfa08981 592 592 const t = queue[currentIndex]; 593 593 const isDesktop = window.matchMedia && window.matchMedia('(min-width: 768px)').matches; 594 if (isDesktop && t && t.postUrl) { goToPost(t.postUrl, t.id); return; } 594 if (isDesktop && t) { 595 // 1) Track speelde vanuit een post → die URL kennen we al. 596 if (t.postUrl) { goToPost(t.postUrl, t.id); return; } 597 // 2) Site-brede track (geen postUrl) → zoek de post op via de track-id. 598 if (t.id) { 599 fetch('/audio/track/' + encodeURIComponent(t.id) + '/post') 600 .then((r) => (r.ok ? r.json() : null)) 601 .then((d) => { if (d && d.url) goToPost(d.url, t.id); else openSheet(); }) 602 .catch(() => openSheet()); 603 return; 604 } 605 } 595 606 openSheet(); 596 607 }); … … 831 842 if (Array.isArray(window.PCMS_SITE_TRACKS) && window.PCMS_SITE_TRACKS.length) { 832 843 queue = window.PCMS_SITE_TRACKS.map(t => ({ 844 id: t.id || null, 833 845 url: t.media_url || t.url, 834 846 title: t.title || 'Untitled', -
src/routes/audio.js
r230e446 rfa08981 141 141 }); 142 142 143 // Welke post bevat deze track? (voor de mini-speler → "spring naar de post + 144 // scroll naar de track".) Pakt de nieuwste gepubliceerde post met [[track:<id>]]. 145 router.get('/track/:id/post', (req, res) => { 146 const id = String(req.params.id || ''); 147 if (!/^[A-Za-z0-9_-]+$/.test(id)) return res.status(400).json({ error: 'bad id' }); 148 const isHub = res.locals.tenancy === 'hub'; 149 const row = db.prepare(` 150 SELECT p.slug, s.slug AS site_slug 151 FROM posts p JOIN sites s ON s.id = p.site_id 152 WHERE p.status = 'published' AND p.content LIKE ? 153 ORDER BY p.published_at DESC LIMIT 1 154 `).get('%[[track:' + id + ']]%'); 155 if (!row) return res.status(404).json({ error: 'not found' }); 156 const url = isHub ? `/user/${row.site_slug}/${row.slug}` : `/${row.slug}`; 157 res.json({ url }); 158 }); 159 143 160 export default router; -
src/views/shell.ejs
r230e446 rfa08981 300 300 ?v=N — cache-buster: bump bij elke audio-player.js wijziging zodat 301 301 Cloudflare (max-age=1y) niet de oude versie blijft serveren. --> 302 <script src="/assets/js/audio-player.js?v=1 7"></script>302 <script src="/assets/js/audio-player.js?v=18"></script> 303 303 <!-- Eigen custom media-embeds (YouTube/SoundCloud/Spotify) via de echte 304 304 player-API's + gedeelde mutual-exclusion registry met de site-speler. -->
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)