From 996a7426f67057489a327a55cf7b11ab59d223ef Mon Sep 17 00:00:00 2001 From: celebrateyang Date: Sun, 8 Jun 2025 17:10:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E4=B8=8B=E8=BD=BD=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E7=9A=84=E6=88=90=E5=8A=9F=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/src/core/api.js | 19 +++++++++++++++++-- web/src/routes/+page.svelte | 2 +- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/api/src/core/api.js b/api/src/core/api.js index 5358ab02..d2992970 100644 --- a/api/src/core/api.js +++ b/api/src/core/api.js @@ -245,13 +245,21 @@ export const runAPI = async (express, app, __dirname, isPrimary = true) => { return fail(res, "error.api.invalid_body"); } + // Log the requested video URL for tracking user download attempts + console.log(`[DOWNLOAD REQUEST] User attempting to download: ${normalizedRequest.url}`); + console.log(`[DOWNLOAD REQUEST] Client IP: ${getIP(req)}`); + console.log(`[DOWNLOAD REQUEST] Timestamp: ${new Date().toISOString()}`); + console.log(`[DOWNLOAD REQUEST] User Agent: ${req.get('User-Agent') || 'Unknown'}`); + const parsed = extract(normalizedRequest.url); if (!parsed) { + console.log(`[DOWNLOAD REQUEST] Failed - Invalid URL: ${normalizedRequest.url}`); return fail(res, "error.api.link.invalid"); } if ("error" in parsed) { + console.log(`[DOWNLOAD REQUEST] Failed - Parse error for URL: ${normalizedRequest.url}, Error: ${parsed.error}`); let context; if (parsed?.context) { context = parsed.context; @@ -259,6 +267,8 @@ export const runAPI = async (express, app, __dirname, isPrimary = true) => { return fail(res, `error.api.${parsed.error}`, context); } + console.log(`[DOWNLOAD REQUEST] Successfully parsed URL: ${normalizedRequest.url}, Service: ${parsed.host}`); + try { const result = await match({ host: parsed.host, @@ -267,8 +277,10 @@ export const runAPI = async (express, app, __dirname, isPrimary = true) => { isSession: req.isSession ?? false, }); + console.log(`[DOWNLOAD REQUEST] Processing completed for URL: ${normalizedRequest.url}, Status: ${result.status}`); res.status(result.status).json(result.body); - } catch { + } catch (error) { + console.log(`[DOWNLOAD REQUEST] Processing failed for URL: ${normalizedRequest.url}, Error: ${error.message}`); fail(res, "error.api.generic"); } }); @@ -373,7 +385,10 @@ export const runAPI = async (express, app, __dirname, isPrimary = true) => { "~~~~~~\n" + Bright("url: ") + Bright(Cyan(env.apiURL)) + "\n" + - Bright("port: ") + env.apiPort + "\n" + Bright("port: ") + env.apiPort + "\n" + + + "~~~~~~\n" + + Bright("📊 Logging enabled: ") + "Video download requests will be tracked\n" ); } diff --git a/web/src/routes/+page.svelte b/web/src/routes/+page.svelte index fd084ff6..14941875 100644 --- a/web/src/routes/+page.svelte +++ b/web/src/routes/+page.svelte @@ -54,7 +54,7 @@