fix: proxy Bandsintown events through backend to bypass 403, always show ticket link with sold-out badge

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Sonnet 4.6 committed 2026-06-08 01:23:00 +02:00
1 parent 914297651e
commit 98c964ecae
3 files changed
+21 -4

No files matched your search

+5 -2
View File
@@ -1,8 +1,11 @@
import { esc } from '../utils.js';
import { S } from '../state.js';
export async function fetchEvents(artistName) {
const base = S.cfg?.backendUrl;
if(!base) return [];
try {
const r = await fetch(`https://rest.bandsintown.com/artists/${encodeURIComponent(artistName)}/events?app_id=novasonic`);
const r = await fetch(`${base}/api/events/${encodeURIComponent(artistName)}`);
if(!r.ok) return [];
const data = await r.json();
if(!Array.isArray(data)) return [];
@@ -31,7 +34,7 @@ export function openEventsModal(events, artistName) {
<div class="event-venue-name">${esc(venue)}</div>
<div class="event-venue-city">${esc(city)}</div>
</div>
${offer ? `<a class="event-book-btn${soldOut ? ' sold-out' : ''}" href="${esc(offer.url)}" target="_blank" rel="noopener">${soldOut ? 'Ausverkauft' : 'Buchen →'}</a>` : ''}
${offer ? `<a class="event-book-btn" href="${esc(offer.url)}" target="_blank" rel="noopener">${soldOut ? '<span class="event-sold-badge">Ausverkauft</span>' : ''}Tickets →</a>` : ''}
</div>`;
}).join('');