cruxx commited on
Commit
4d361e5
·
1 Parent(s): 405bf29

Update index.js

Browse files
Files changed (1) hide show
  1. index.js +7 -21
index.js CHANGED
@@ -5,24 +5,11 @@ const bytes = require('bytes')
5
  const morgan = require('morgan')
6
  const express = require('express')
7
  const puppeteer = require('puppeteer')
8
-
9
- const cache = new Map()
10
 
11
  const app = express()
12
  app.set('json spaces', 4)
13
  app.use(morgan('dev'))
14
- /*
15
- app.use(async (_, __, next) => {
16
- for (let [url, data] of cache) {
17
- const timeReset = 10 * 60 * 1000 // 10 min
18
- if (Date.now() - data.lastFetch > timeReset) {
19
- console.log(`Deleting url "${url}" from cache`)
20
- cache.delete(url)
21
- }
22
- }
23
- next()
24
- })
25
- */
26
 
27
  app.all('/', (req, res) => {
28
  const obj = {}
@@ -48,7 +35,7 @@ app.get('/api', async (req, res) => {
48
  if (!url) return res.json({ success: false, message: 'Input parameter url' })
49
  if (!/https?:\/\//.test(url)) return res.json({ success: false, message: 'Invalid url' })
50
 
51
- const data = cache.has(url) ? cache.get(url) : await ssyoutube(url)
52
 
53
  data.message ?
54
  res.json({ success: false, message: data.message, result: data }) :
@@ -71,16 +58,16 @@ function formatSize(num) {
71
  }
72
 
73
  async function ssyoutube(url) {
74
- const browser = await puppeteer.launch({
75
- headless: 'new',
76
  executablePath: '/usr/bin/chromium',
77
  args: ['--no-sandbox']
78
  })
79
 
80
- const page = await browser.newPage()
81
-
 
82
  await page.goto('https://ssyoutube.com/')
83
- await page.waitForSelector('#id_url')
84
  await page.type('#id_url', url)
85
  await page.click('#search')
86
 
@@ -88,7 +75,6 @@ async function ssyoutube(url) {
88
  res.url().includes('ssyoutube.com/api') && res.request().resourceType() === 'xhr')
89
 
90
  const json = await response.json()
91
- // cache.set(url, Object.assign(json, { lastFetch: Date.now() }))
92
  await browser.close()
93
 
94
  return json
 
5
  const morgan = require('morgan')
6
  const express = require('express')
7
  const puppeteer = require('puppeteer')
8
+ const { chromium } = require('playwright')
 
9
 
10
  const app = express()
11
  app.set('json spaces', 4)
12
  app.use(morgan('dev'))
 
 
 
 
 
 
 
 
 
 
 
 
13
 
14
  app.all('/', (req, res) => {
15
  const obj = {}
 
35
  if (!url) return res.json({ success: false, message: 'Input parameter url' })
36
  if (!/https?:\/\//.test(url)) return res.json({ success: false, message: 'Invalid url' })
37
 
38
+ const data = await ssyoutube(url)
39
 
40
  data.message ?
41
  res.json({ success: false, message: data.message, result: data }) :
 
58
  }
59
 
60
  async function ssyoutube(url) {
61
+ const browser = await chromium.launch({
62
+ headless: true,
63
  executablePath: '/usr/bin/chromium',
64
  args: ['--no-sandbox']
65
  })
66
 
67
+ const context = await browser.newContext()
68
+ const page = await context.newPage()
69
+
70
  await page.goto('https://ssyoutube.com/')
 
71
  await page.type('#id_url', url)
72
  await page.click('#search')
73
 
 
75
  res.url().includes('ssyoutube.com/api') && res.request().resourceType() === 'xhr')
76
 
77
  const json = await response.json()
 
78
  await browser.close()
79
 
80
  return json