diff --git a/lib/api.ts b/lib/api.ts index 9fb487b..02f3703 100644 --- a/lib/api.ts +++ b/lib/api.ts @@ -12,25 +12,25 @@ let apiBaseUrl = "https://qqdl.site/api" export const setApiBaseUrl = (url: string) => { apiBaseUrl = url - console.log("[v0] API base URL set to:", url) + console.log("API base URL set to:", url) } export const getApiBaseUrl = () => apiBaseUrl export const searchMusic = async (query: string): Promise => { const url = `${apiBaseUrl}/get-music?q=${encodeURIComponent(query)}&offset=0&type=track` - console.log("[v0] Searching music:", url) + console.log("Searching music:", url) try { const response = await fetch(url) if (!response.ok) { - console.error("[v0] Search failed with status:", response.status, response.statusText) + console.error("Search failed with status:", response.status, response.statusText) throw new Error(`Failed to search music: ${response.status}`) } const data: SearchResponse = await response.json() - console.log("[v0] Search response success:", data.success, "Albums found:", data.data?.albums?.items?.length || 0) + console.log("Search response success:", data.success, "Albums found:", data.data?.albums?.items?.length || 0) if (!data.success) { throw new Error("Search failed") @@ -38,20 +38,20 @@ export const searchMusic = async (query: string): Promise => { return data.data.albums.items } catch (error) { - console.error("[v0] Search error:", error) + console.error("Search error:", error) throw error } } export const getAlbumDetails = async (albumId: string): Promise => { const url = `${apiBaseUrl}/get-album?album_id=${albumId}` - console.log("[v0] Fetching album:", url) + console.log("Fetching album:", url) try { const response = await fetch(url) if (!response.ok) { - console.error("[v0] Album fetch failed with status:", response.status, response.statusText) + console.error("Album fetch failed with status:", response.status, response.statusText) throw new Error(`Failed to fetch album details: ${response.status}`) } @@ -61,23 +61,23 @@ export const getAlbumDetails = async (albumId: string): Promise => throw new Error("Failed to load album") } - console.log("[v0] Album loaded:", data.data.title, "Tracks:", data.data.tracks.items.length) + console.log("Album loaded:", data.data.title, "Tracks:", data.data.tracks.items.length) return data.data } catch (error) { - console.error("[v0] Album fetch error:", error) + console.error("Album fetch error:", error) throw error } } export const getArtistDetails = async (artistId: number) => { const url = `${apiBaseUrl}/get-artist?artist_id=${artistId}` - console.log("[v0] Fetching artist:", url) + console.log("Fetching artist:", url) try { const response = await fetch(url) if (!response.ok) { - console.error("[v0] Artist fetch failed with status:", response.status, response.statusText) + console.error("Artist fetch failed with status:", response.status, response.statusText) throw new Error(`Failed to fetch artist details: ${response.status}`) } @@ -87,22 +87,22 @@ export const getArtistDetails = async (artistId: number) => { throw new Error("Failed to load artist") } - console.log("[v0] Artist loaded:", data.data.artist.name.display) + console.log("Artist loaded:", data.data.artist.name.display) return data.data.artist } catch (error) { - console.error("[v0] Artist fetch error:", error) + console.error("Artist fetch error:", error) throw error } } export const getTrackStreamUrl = async (trackId: string): Promise => { const url = `${apiBaseUrl}/download-music?track_id=${trackId}` - console.log("[v0] Fetching stream URL for track:", trackId, "from:", url) + console.log("Fetching stream URL for track:", trackId, "from:", url) try { const response = await fetch(url) - console.log("[v0] Stream URL fetch response:", { + console.log("Stream URL fetch response:", { status: response.status, statusText: response.statusText, headers: { @@ -113,12 +113,12 @@ export const getTrackStreamUrl = async (trackId: string): Promise => { }) if (!response.ok) { - console.error("[v0] Stream URL fetch failed with status:", response.status, response.statusText) + console.error("Stream URL fetch failed with status:", response.status, response.statusText) throw new Error(`Failed to fetch stream URL: ${response.status}`) } const data: StreamResponse = await response.json() - console.log("[v0] Stream URL response:", { + console.log("Stream URL response:", { success: data.success, hasUrl: !!data.data?.url, urlLength: data.data?.url?.length, @@ -131,20 +131,20 @@ export const getTrackStreamUrl = async (trackId: string): Promise => { try { const testResponse = await fetch(data.data.url, { method: "HEAD" }) - console.log("[v0] Stream URL accessibility test:", { + console.log("Stream URL accessibility test:", { status: testResponse.status, statusText: testResponse.statusText, contentType: testResponse.headers.get("content-type"), cors: testResponse.headers.get("access-control-allow-origin"), }) } catch (testError) { - console.error("[v0] Stream URL accessibility test failed:", testError) + console.error("Stream URL accessibility test failed:", testError) } - console.log("[v0] Stream URL obtained successfully") + console.log("Stream URL obtained successfully") return data.data.url } catch (error) { - console.error("[v0] Stream URL fetch error:", error) + console.error("Stream URL fetch error:", error) throw error } } diff --git a/package-lock.json b/package-lock.json index 3677e92..b660d79 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1923,6 +1923,66 @@ "node": ">=14.0.0" } }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/core": { + "version": "1.4.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.0.4", + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/runtime": { + "version": "1.4.5", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@emnapi/wasi-threads": { + "version": "1.0.4", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/@tybys/wasm-util": { + "version": "0.10.0", + "dev": true, + "inBundle": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/oxide-wasm32-wasi/node_modules/tslib": { + "version": "2.8.0", + "dev": true, + "inBundle": true, + "license": "0BSD", + "optional": true + }, "node_modules/@tailwindcss/oxide-win32-arm64-msvc": { "version": "4.1.13", "resolved": "https://registry.npmjs.org/@tailwindcss/oxide-win32-arm64-msvc/-/oxide-win32-arm64-msvc-4.1.13.tgz",