ngoctuanai commited on
Commit
718301f
·
verified ·
1 Parent(s): b6b110f

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +25 -15
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 || 7860;
8
- const timezone = process.env.Timezone // Default to Asia/Ho_Chi_Minh if not set
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
- // Function to visit websites
 
 
 
 
23
  const visitWebsites = async () => {
24
  for (const url of websites) {
25
  try {
26
- const response = await axios.get(url);
 
 
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
- const scrapeAndLog = async (url) => {
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
  });