-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwsw.js
executable file
·59 lines (54 loc) · 1.84 KB
/
wsw.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
module.exports = (res,req,command,WebSocket,unlinkAsync)=>{
//console.log(req);
res.header("Access-Control-Allow-Origin", "*");
var { promisify } = require('util')
var fs = require("fs");
var unlinkAsync = promisify(fs.unlink)
const ws = new WebSocket('ws://localhost:5433');
var res2 = res;
var e = 0;
ws.on('message', ((res=>async(data) => {
var de = JSON.parse(data);
if(e == 0&&(de.ok)){
var isue = (!!req.headers['user-agent'].match(/bot/));
e++;
ws.send(JSON.stringify({
command:command,
body: req.body,
paramz: req.params,
file: req.file,
get: req.query,
isbot: isue
}) );
return;
} else {
if(de.ok){
//console.log(data);
return;
}
if(de.opt == 2) {
res.send(de.message);
return;
}
if(de.opt == 1) {
console.log(de.header);
res.set(de.header[0],de.header[1])
return;
}
if(de.opt == 3) {
console.log(de.where);
res.sendFile(de.where, function (err) {if(err)console.log(err);fs.unlink(de.where,(err)=>{if(err)console.log(err);})});
return;
}
if(de.command == "close") {
try {
await unlinkAsync(req.file.path).catch((err)=>{});
await unlinkAsync(req.file.path+"dec").catch((err)=>{});
await unlinkAsync(req.file.path+"enc").catch((err)=>{});
} catch (error) {
}
return ws.close();
}
}
})(res)));
}