const express = require('express'); const request = require('request'); require('dotenv').config(); const app = express(); const eachfilesize = {}; async function getFileSize(link) { try { const res = await request.head(link); const contentLength = parseInt(res.headers['content-length'] || 0.1); eachfilesize[link] = contentLength; return contentLength; } catch (err) { console.error('Error retrieving file size:', err); return 0; } } app.get('/', async (req, res) => { const shared = req.query.shared; const filename = req.query.filename; if (shared) { const originalUrl = `https://huggingface.co/tranquan24/video/resolve/main/${shared}`; const token = process.env.TOKEN; const headers = { 'Authorization': `Bearer ${token}`, 'Range': req.headers['range'] || '' }; try { const originalResponse = await request.get({ url: originalUrl, headers }); const newResponse = new Response(originalResponse.body, { headers: originalResponse.headers }); newResponse.headers.delete('Date'); newResponse.headers.delete('Etag'); newResponse.headers.delete('Last-Modified'); newResponse.headers.delete('Cf-Cache-Status'); newResponse.headers.delete('Content-Disposition'); newResponse.headers.delete('Nel'); newResponse.headers.delete('Cf-Ray'); newResponse.headers.delete('Report-To'); newResponse.headers.delete('X-Amz-Cf-Id'); newResponse.headers.delete('X-Amz-Cf-Pop'); newResponse.headers.delete('X-Amz-Server-Side-Encryption'); newResponse.headers.delete('X-Amz-Storage-Class'); newResponse.headers.delete('X-Cache'); newResponse.headers.set('Cache-Control', 'private, max-age=21188'); newResponse.headers.set('Connection', 'close'); newResponse.headers.set('Server', 'gvs 1.0'); newResponse.headers.set('Vary', 'Origin'); newResponse.headers.set('X-Content-Type-Options', 'nosniff'); newResponse.headers.set('Access-Control-Allow-Origin', 'https://tpcloud.rf.gd'); res.writeHead(newResponse.status, newResponse.headers); newResponse.body.pipe(res); } catch (err) { console.error('Error processing request:', err); res.status(500).send('Internal Server Error'); } } else { res.status(400).send('Missing shared parameter'); } }); const port = 7860; app.listen(port, '0.0.0.0', () => { console.log(`Server is running on port ${port}`); });