Reaperxxxx commited on
Commit
14aa317
·
verified ·
1 Parent(s): ae33731

Update app.js

Browse files
Files changed (1) hide show
  1. app.js +40 -0
app.js CHANGED
@@ -1,13 +1,33 @@
1
  const express = require('express');
2
  const puppeteer = require('puppeteer-extra');
3
  const StealthPlugin = require('puppeteer-extra-plugin-stealth');
 
 
 
4
 
5
  puppeteer.use(StealthPlugin());
6
 
7
  const app = express();
8
  const PORT = process.env.PORT || 7860;
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  app.use(express.json());
 
11
 
12
  const getRandomUserAgent = () => {
13
  const userAgents = [
@@ -200,6 +220,22 @@ app.get('/extract-token', async (req, res) => {
200
  }
201
  }
202
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
203
  if (capturedToken) {
204
  console.log('Token extracted successfully');
205
  res.json({
@@ -207,6 +243,8 @@ app.get('/extract-token', async (req, res) => {
207
  accessToken: capturedToken,
208
  apiData: capturedData,
209
  source: capturedData ? 'network_request' : 'storage',
 
 
210
  url: url,
211
  timestamp: new Date().toISOString()
212
  });
@@ -215,6 +253,8 @@ app.get('/extract-token', async (req, res) => {
215
  res.json({
216
  success: false,
217
  message: 'No accessToken found in network requests or storage',
 
 
218
  url: url,
219
  timestamp: new Date().toISOString()
220
  });
 
1
  const express = require('express');
2
  const puppeteer = require('puppeteer-extra');
3
  const StealthPlugin = require('puppeteer-extra-plugin-stealth');
4
+ const multer = require('multer');
5
+ const path = require('path');
6
+ const fs = require('fs');
7
 
8
  puppeteer.use(StealthPlugin());
9
 
10
  const app = express();
11
  const PORT = process.env.PORT || 7860;
12
 
13
+ const storage = multer.diskStorage({
14
+ destination: (req, file, cb) => {
15
+ const uploadsDir = './uploads';
16
+ if (!fs.existsSync(uploadsDir)) {
17
+ fs.mkdirSync(uploadsDir);
18
+ }
19
+ cb(null, uploadsDir);
20
+ },
21
+ filename: (req, file, cb) => {
22
+ const timestamp = Date.now();
23
+ cb(null, `screenshot-${timestamp}.png`);
24
+ }
25
+ });
26
+
27
+ const upload = multer({ storage });
28
+
29
  app.use(express.json());
30
+ app.use('/uploads', express.static('uploads'));
31
 
32
  const getRandomUserAgent = () => {
33
  const userAgents = [
 
220
  }
221
  }
222
 
223
+ const timestamp = Date.now();
224
+ const filename = `screenshot-${timestamp}.png`;
225
+ const filepath = path.join('./uploads', filename);
226
+
227
+ if (!fs.existsSync('./uploads')) {
228
+ fs.mkdirSync('./uploads');
229
+ }
230
+
231
+ const screenshot = await page.screenshot({
232
+ path: filepath,
233
+ fullPage: false,
234
+ type: 'png'
235
+ });
236
+
237
+ const screenshotUrl = `${req.protocol}://${req.get('host')}/uploads/${filename}`;
238
+
239
  if (capturedToken) {
240
  console.log('Token extracted successfully');
241
  res.json({
 
243
  accessToken: capturedToken,
244
  apiData: capturedData,
245
  source: capturedData ? 'network_request' : 'storage',
246
+ screenshotUrl: screenshotUrl,
247
+ screenshotPath: filepath,
248
  url: url,
249
  timestamp: new Date().toISOString()
250
  });
 
253
  res.json({
254
  success: false,
255
  message: 'No accessToken found in network requests or storage',
256
+ screenshotUrl: screenshotUrl,
257
+ screenshotPath: filepath,
258
  url: url,
259
  timestamp: new Date().toISOString()
260
  });