diff --git a/functions/proxy-audio.js b/functions/proxy-audio.js deleted file mode 100644 index e05a1e4..0000000 --- a/functions/proxy-audio.js +++ /dev/null @@ -1,67 +0,0 @@ -export async function onRequest(context) { - const { request } = context; - const url = new URL(request.url); - const targetUrl = url.searchParams.get('url'); - - if (!targetUrl) { - return new Response('Missing url parameter', { status: 400 }); - } - - try { - const cacheUrl = new URL(request.url); - try { - const tidalUrl = new URL(targetUrl); - cacheUrl.searchParams.set('cache_key', tidalUrl.pathname); - } catch (e) {} - - const cacheKey = new Request(cacheUrl.toString(), request); - const cache = caches.default; - let response = await cache.match(cacheKey); - - if (!response) { - console.log('Cache Miss. Fetching from Tidal...'); - - const headers = new Headers(request.headers); - headers.delete('host'); - headers.delete('referer'); - headers.set( - 'User-Agent', - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' - ); - - response = await fetch(targetUrl, { - method: request.method, - headers: headers, - redirect: 'follow', - cf: { - cacheTtl: 2592000, - cacheEverything: true, - }, - }); - - if (request.method === 'GET' && response.ok) { - const cacheResponse = new Response(response.body, response); - cacheResponse.headers.set('Access-Control-Allow-Origin', '*'); - cacheResponse.headers.set('Cache-Control', 'public, max-age=2592000'); - - cacheResponse.headers.delete('Set-Cookie'); - - context.waitUntil(cache.put(cacheKey, cacheResponse.clone())); - response = cacheResponse; - } - } else { - console.log('Cache Hit! Serving from Edge.'); - } - - const newResponse = new Response(response.body, response); - newResponse.headers.set('Access-Control-Allow-Origin', '*'); - newResponse.headers.set('Access-Control-Allow-Methods', 'GET, HEAD, OPTIONS'); - newResponse.headers.set('Access-Control-Expose-Headers', '*'); - newResponse.headers.delete('content-security-policy'); - newResponse.headers.delete('x-frame-options'); - - return newResponse; - } catch (error) { - return new Response('Proxy Error: ' + error.message, { status: 500 }); - } -} diff --git a/index.html b/index.html index d090bd3..0d46417 100644 --- a/index.html +++ b/index.html @@ -115,8 +115,8 @@
- - + +