diff --git a/sync-server/server.js b/sync-server/server.js index 49c454f..0e5926f 100644 --- a/sync-server/server.js +++ b/sync-server/server.js @@ -400,8 +400,24 @@ function proxyRequest(targetUrl, req, res) { proxyRes.on('end', () => { try { const parsedBody = JSON.parse(body); - if (parsedBody && parsedBody.url) { - requestStream(parsedBody.url, 1); + const extractUrl = (payload) => { + if (!payload || typeof payload !== 'object') return null; + if (typeof payload.url === 'string') return payload.url; + if (typeof payload.data === 'string') return payload.data; + if (payload.data && typeof payload.data === 'object') { + if (typeof payload.data.url === 'string') return payload.data.url; + if (typeof payload.data.link === 'string') return payload.data.link; + if (payload.data.data && typeof payload.data.data.url === 'string') return payload.data.data.url; + if (Array.isArray(payload.data) && payload.data[0] && typeof payload.data[0].url === 'string') { + return payload.data[0].url; + } + } + if (payload.result && typeof payload.result.url === 'string') return payload.result.url; + return null; + }; + const resolvedUrl = extractUrl(parsedBody); + if (resolvedUrl) { + requestStream(url.resolve(targetUrl, resolvedUrl), 1); return; } } catch (e) {