| const fs = require('fs'); |
| const path = require('path'); |
| const https = require('https'); |
|
|
| let lastDownloadTime = 0; |
| const CACHE_DURATION = 30 * 60 * 1000; |
|
|
| async function downloadCookies() { |
| const cookieUrl = process.env.COOKIES_URL; |
| if (!cookieUrl) return null; |
|
|
| const cookiesPath = path.join(__dirname, '../../temp_cookies.txt'); |
| const now = Date.now(); |
|
|
| |
| if (fs.existsSync(cookiesPath) && (now - lastDownloadTime < CACHE_DURATION)) { |
| return cookiesPath; |
| } |
| |
| return new Promise((resolve) => { |
| const file = fs.createWriteStream(cookiesPath); |
| https.get(cookieUrl, (response) => { |
| response.pipe(file); |
| file.on('finish', () => { |
| file.close(); |
| lastDownloadTime = Date.now(); |
| console.log('Remote cookies refreshed'); |
| resolve(cookiesPath); |
| }); |
| }).on('error', (err) => { |
| console.error('Error downloading cookies:', err); |
| resolve(fs.existsSync(cookiesPath) ? cookiesPath : null); |
| }); |
| }); |
| } |
|
|
| module.exports = { downloadCookies }; |
|
|