recycleactor commited on
Commit
8764d35
·
verified ·
1 Parent(s): e8481cc

Upload server.js

Browse files
Files changed (1) hide show
  1. server.js +30 -7
server.js CHANGED
@@ -53,7 +53,7 @@ async function fetchText(url, timeoutMs, clientUA) {
53
  redirect: 'follow',
54
  signal: controller.signal,
55
  headers: {
56
- 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
57
  }
58
  })
59
 
@@ -81,7 +81,7 @@ async function fetchText(url, timeoutMs, clientUA) {
81
  }
82
  }
83
 
84
- function jsWrapper(serverBase, baseUrl, transpiledCode, needRegenerator, useVpn, useEs5) {
85
  const safeServer = JSON.stringify(String(serverBase || ''))
86
  const safeBaseUrl = JSON.stringify(String(baseUrl || ''))
87
 
@@ -167,8 +167,9 @@ function jsWrapper(serverBase, baseUrl, transpiledCode, needRegenerator, useVpn,
167
  'var xhr=new _RealXHR();' +
168
  'var origOpen=xhr.open;' +
169
  'xhr.open=function(method,u,async,user,pass){' +
170
- 'try{u=proxyRaw(u);}catch(e){}' +
171
- 'return origOpen.call(xhr,method,u,(async===undefined?true:async),user,pass);' +
 
172
  '};' +
173
  'return xhr;' +
174
  '};' +
@@ -197,6 +198,23 @@ function jsWrapper(serverBase, baseUrl, transpiledCode, needRegenerator, useVpn,
197
  '}' +
198
  '}catch(e){}'
199
  ) : '') +
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
  'try{' +
201
  'var __mock_script = document.createElement("script");' +
202
  '__mock_script.src = __es5_base;' +
@@ -316,6 +334,7 @@ app.get('/p', async (req, res) => {
316
 
317
  const useEs5 = req.query.es5 !== '0';
318
  const useVpn = req.query.vpn !== '0';
 
319
 
320
  try {
321
  const { text } = await fetchText(source, 25_000, req.headers['user-agent'])
@@ -348,7 +367,7 @@ app.get('/p', async (req, res) => {
348
  }
349
 
350
  const serverBase = getSelfBase(req)
351
- const out = jsWrapper(serverBase, source, code, needRegenerator, useVpn, useEs5)
352
 
353
  res.setHeader('content-type', 'application/javascript; charset=utf-8')
354
  res.setHeader('cache-control', 'public, max-age=600')
@@ -404,7 +423,9 @@ app.all('/r', async (req, res) => {
404
  const targetUrl = new URL(source);
405
  headers['origin'] = targetUrl.origin;
406
  headers['referer'] = targetUrl.origin + '/';
407
- headers['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';
 
 
408
 
409
  let body
410
  if (method !== 'GET' && method !== 'HEAD') {
@@ -533,7 +554,9 @@ server.on('upgrade', (req, clientSocket, head) => {
533
 
534
  proxyHeaders['host'] = targetUrl.hostname;
535
  proxyHeaders['origin'] = targetUrl.protocol.replace('ws', 'http') + '//' + targetUrl.hostname;
536
- proxyHeaders['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';
 
 
537
 
538
  const options = {
539
  port: targetUrl.port || (targetUrl.protocol === 'wss:' ? 443 : 80),
 
53
  redirect: 'follow',
54
  signal: controller.signal,
55
  headers: {
56
+ 'user-agent': clientUA || 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
57
  }
58
  })
59
 
 
81
  }
82
  }
83
 
84
+ function jsWrapper(serverBase, baseUrl, transpiledCode, needRegenerator, useVpn, useEs5, useStream) {
85
  const safeServer = JSON.stringify(String(serverBase || ''))
86
  const safeBaseUrl = JSON.stringify(String(baseUrl || ''))
87
 
 
167
  'var xhr=new _RealXHR();' +
168
  'var origOpen=xhr.open;' +
169
  'xhr.open=function(method,u,async,user,pass){' +
170
+ 'var args=Array.prototype.slice.call(arguments);' +
171
+ 'try{args[1]=proxyRaw(args[1]);}catch(e){}' +
172
+ 'return origOpen.apply(xhr,args);' +
173
  '};' +
174
  'return xhr;' +
175
  '};' +
 
198
  '}' +
199
  '}catch(e){}'
200
  ) : '') +
201
+ (useStream ? (
202
+ 'try{' +
203
+ 'if(Lampa&&Lampa.Player){' +
204
+ 'if(!Lampa.hasOwnProperty("Player")) Lampa=Object.create(Lampa);' +
205
+ 'var _RealPlayer=Lampa.Player;' +
206
+ 'Lampa.Player=Object.create(_RealPlayer);' +
207
+ 'Lampa.Player.play=function(data){' +
208
+ 'try{' +
209
+ 'if(data&&data.url&&typeof data.url==="string"&&data.url.indexOf(__es5_server)===-1&&data.url.indexOf("warp.cfhttp.top")===-1){' +
210
+ 'data.url=__es5_server+"/r?url="+encodeURIComponent(data.url).replace(/%3A/gi, ":").replace(/%2F/gi, "/");' +
211
+ '}' +
212
+ '}catch(e){}' +
213
+ 'return _RealPlayer.play.apply(this,arguments);' +
214
+ '};' +
215
+ '}' +
216
+ '}catch(e){}'
217
+ ) : '') +
218
  'try{' +
219
  'var __mock_script = document.createElement("script");' +
220
  '__mock_script.src = __es5_base;' +
 
334
 
335
  const useEs5 = req.query.es5 !== '0';
336
  const useVpn = req.query.vpn !== '0';
337
+ const useStream = req.query.stream === '1';
338
 
339
  try {
340
  const { text } = await fetchText(source, 25_000, req.headers['user-agent'])
 
367
  }
368
 
369
  const serverBase = getSelfBase(req)
370
+ const out = jsWrapper(serverBase, source, code, needRegenerator, useVpn, useEs5, useStream)
371
 
372
  res.setHeader('content-type', 'application/javascript; charset=utf-8')
373
  res.setHeader('cache-control', 'public, max-age=600')
 
423
  const targetUrl = new URL(source);
424
  headers['origin'] = targetUrl.origin;
425
  headers['referer'] = targetUrl.origin + '/';
426
+ if (!headers['user-agent']) {
427
+ headers['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';
428
+ }
429
 
430
  let body
431
  if (method !== 'GET' && method !== 'HEAD') {
 
554
 
555
  proxyHeaders['host'] = targetUrl.hostname;
556
  proxyHeaders['origin'] = targetUrl.protocol.replace('ws', 'http') + '//' + targetUrl.hostname;
557
+ if (!proxyHeaders['user-agent']) {
558
+ proxyHeaders['user-agent'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36';
559
+ }
560
 
561
  const options = {
562
  port: targetUrl.port || (targetUrl.protocol === 'wss:' ? 443 : 80),