diff --git a/server/src/plugins/radio/api.ts b/server/src/plugins/radio/api.ts index 2d593c8..e012017 100644 --- a/server/src/plugins/radio/api.ts +++ b/server/src/plugins/radio/api.ts @@ -77,13 +77,16 @@ export async function fetchPlaceChannels(placeId: string): Promise { const data = await apiFetch(`/search?q=${encodeURIComponent(query)}`); - return (data?.hits?.hits ?? []).map((h: any) => ({ - id: h._id ?? '', - type: h._source?.type ?? 'unknown', - title: h._source?.title ?? '', - subtitle: h._source?.subtitle ?? '', - url: h._source?.url ?? '', - })); + return (data?.hits?.hits ?? []).map((h: any) => { + const page = h._source?.page ?? {}; + return { + id: page.map ?? h._id ?? '', + type: h._source?.type ?? 'unknown', + title: page.title ?? '', + subtitle: page.subtitle ?? '', + url: page.url ?? '', + }; + }); } /** Stream-URL auflösen (302 Redirect → tatsächliche Icecast/Shoutcast URL) */ diff --git a/web/public/earth-night.jpg b/web/public/earth-night.jpg index 1b77b43..6889180 100644 Binary files a/web/public/earth-night.jpg and b/web/public/earth-night.jpg differ diff --git a/web/src/plugins/radio/RadioTab.tsx b/web/src/plugins/radio/RadioTab.tsx index 517590c..bc07ea0 100644 --- a/web/src/plugins/radio/RadioTab.tsx +++ b/web/src/plugins/radio/RadioTab.tsx @@ -332,7 +332,7 @@ export default function RadioTab({ data }: { data: any }) { setSearchResults([]); if (hit.type === 'channel') { - const channelId = hit.url.match(/\/listen\/([^/]+)/)?.[1]; + const channelId = hit.url.match(/\/listen\/[^/]+\/([^/]+)/)?.[1]; if (channelId) { handlePlay(channelId, hit.title, hit.subtitle, ''); }