Spaces:
Paused
Paused
Update index.js
Browse files
index.js
CHANGED
|
@@ -2,10 +2,12 @@ const axios = require('axios');
|
|
| 2 |
const http = require('http');
|
| 3 |
const cron = require('node-cron');
|
| 4 |
const moment = require('moment-timezone');
|
|
|
|
|
|
|
| 5 |
require('dotenv').config(); // Load environment variables from .env file
|
| 6 |
|
| 7 |
-
const port = process.env.PORT
|
| 8 |
-
const timezone = process.env.Timezone
|
| 9 |
|
| 10 |
// Array of URLs for 24-hour access
|
| 11 |
const urls = [
|
|
@@ -19,11 +21,17 @@ const websites = [
|
|
| 19 |
// Add more URLs for scheduled access
|
| 20 |
];
|
| 21 |
|
| 22 |
-
//
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
const visitWebsites = async () => {
|
| 24 |
for (const url of websites) {
|
| 25 |
try {
|
| 26 |
-
const response = await
|
|
|
|
|
|
|
| 27 |
console.log(`${moment().tz(timezone).format('YYYY-MM-DD HH:mm:ss')} Successfully visited: ${url} - Status code: ${response.status}`);
|
| 28 |
} catch (error) {
|
| 29 |
console.error(`Error visiting ${url}: ${error.message}`);
|
|
@@ -31,6 +39,18 @@ const visitWebsites = async () => {
|
|
| 31 |
}
|
| 32 |
};
|
| 33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 34 |
// Check and set timer
|
| 35 |
const checkAndSetTimer = () => {
|
| 36 |
const currentMoment = moment().tz(timezone);
|
|
@@ -59,17 +79,7 @@ const runScript = () => {
|
|
| 59 |
};
|
| 60 |
|
| 61 |
// Continuous 24-hour access
|
| 62 |
-
|
| 63 |
-
try {
|
| 64 |
-
const response = await axios.get(url);
|
| 65 |
-
console.log(`${moment().tz(timezone).format('YYYY-MM-DD HH:mm:ss')} Successfully visited: ${url} - Status code: ${response.status}`);
|
| 66 |
-
} catch (error) {
|
| 67 |
-
console.error(`${moment().tz(timezone).format('YYYY-MM-DD HH:mm:ss')}: Error visiting web: ${url}: ${error.message}`);
|
| 68 |
-
}
|
| 69 |
-
};
|
| 70 |
-
|
| 71 |
-
// Access every 2 minutes
|
| 72 |
-
cron.schedule('*/2 * * * *', () => {
|
| 73 |
console.log('Performing website access...');
|
| 74 |
urls.forEach(scrapeAndLog);
|
| 75 |
});
|
|
|
|
| 2 |
const http = require('http');
|
| 3 |
const cron = require('node-cron');
|
| 4 |
const moment = require('moment-timezone');
|
| 5 |
+
const { CookieJar } = require('tough-cookie');
|
| 6 |
+
const { wrapper } = require('axios-cookiejar-support');
|
| 7 |
require('dotenv').config(); // Load environment variables from .env file
|
| 8 |
|
| 9 |
+
const port = process.env.PORT;
|
| 10 |
+
const timezone = process.env.Timezone
|
| 11 |
|
| 12 |
// Array of URLs for 24-hour access
|
| 13 |
const urls = [
|
|
|
|
| 21 |
// Add more URLs for scheduled access
|
| 22 |
];
|
| 23 |
|
| 24 |
+
// Initialize axios with cookie support
|
| 25 |
+
const cookieJar = new CookieJar();
|
| 26 |
+
const client = wrapper(axios.create({ jar: cookieJar }));
|
| 27 |
+
|
| 28 |
+
// Function to visit websites with dynamic headers and cookies
|
| 29 |
const visitWebsites = async () => {
|
| 30 |
for (const url of websites) {
|
| 31 |
try {
|
| 32 |
+
const response = await client.get(url);
|
| 33 |
+
const headers = response.headers;
|
| 34 |
+
const cookies = cookieJar.getCookiesSync(url);
|
| 35 |
console.log(`${moment().tz(timezone).format('YYYY-MM-DD HH:mm:ss')} Successfully visited: ${url} - Status code: ${response.status}`);
|
| 36 |
} catch (error) {
|
| 37 |
console.error(`Error visiting ${url}: ${error.message}`);
|
|
|
|
| 39 |
}
|
| 40 |
};
|
| 41 |
|
| 42 |
+
// Function to scrape and log with dynamic headers and cookies
|
| 43 |
+
const scrapeAndLog = async (url) => {
|
| 44 |
+
try {
|
| 45 |
+
const response = await client.get(url);
|
| 46 |
+
const headers = response.headers;
|
| 47 |
+
const cookies = cookieJar.getCookiesSync(url);
|
| 48 |
+
console.log(`${moment().tz(timezone).format('YYYY-MM-DD HH:mm:ss')} Successfully visited: ${url} - Status code: ${response.status}`);
|
| 49 |
+
} catch (error) {
|
| 50 |
+
console.error(`${moment().tz(timezone).format('YYYY-MM-DD HH:mm:ss')}: Error visiting web: ${url}: ${error.message}`);
|
| 51 |
+
}
|
| 52 |
+
};
|
| 53 |
+
|
| 54 |
// Check and set timer
|
| 55 |
const checkAndSetTimer = () => {
|
| 56 |
const currentMoment = moment().tz(timezone);
|
|
|
|
| 79 |
};
|
| 80 |
|
| 81 |
// Continuous 24-hour access
|
| 82 |
+
cron.schedule('*/3 * * * *', () => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 83 |
console.log('Performing website access...');
|
| 84 |
urls.forEach(scrapeAndLog);
|
| 85 |
});
|