-
-
Notifications
You must be signed in to change notification settings - Fork 182
/
Copy pathapi.js
93 lines (75 loc) · 2.14 KB
/
api.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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
const express = require("express");
const bodyParser = require("body-parser");
const fs = require('fs');
const axios = require('axios');
const shelljs = require('shelljs');
const config = require('./config.json');
const { Client } = require('whatsapp-web.js');
const SESSION_FILE_PATH = './session.json';
let sessionCfg;
if (fs.existsSync(SESSION_FILE_PATH)) {
sessionCfg = require(SESSION_FILE_PATH);
}
process.title = "whatsapp-node-api";
global.client = new Client({
puppeteer: {
headless: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--unhandled-rejections=strict'
]},
session: sessionCfg
});
global.authed = false;
const app = express();
const port = process.env.PORT || config.port;
//Set Request Size Limit 50 MB
app.use(bodyParser.json({ limit: '50mb' }));
app.use(express.json());
app.use(bodyParser.urlencoded({ extended: true }));
client.on('qr', qr => {
fs.writeFileSync('./components/last.qr', qr);
});
client.on('authenticated', (session) => {
console.log("AUTH!");
sessionCfg = session;
fs.writeFile(SESSION_FILE_PATH, JSON.stringify(session), function (err) {
if (err) {
console.error(err);
}
authed = true;
});
try {
fs.unlinkSync('./components/last.qr')
} catch(err) {}
});
client.on('auth_failure', () => {
console.log("AUTH Failed !")
sessionCfg = ""
process.exit()
});
client.on('ready', () => {
console.log('Client is ready!');
});
client.on('message', msg => {
if (config.webhook.enabled) {
axios.post(config.webhook.path, { msg })
}
})
client.initialize();
const chatRoute = require('./components/chatting');
const groupRoute = require('./components/group');
const authRoute = require('./components/auth');
const contactRoute = require('./components/contact');
app.use(function(req, res, next){
console.log(req.method + ' : ' + req.path);
next();
});
app.use('/chat',chatRoute);
app.use('/group',groupRoute);
app.use('/auth',authRoute);
app.use('/contact',contactRoute);
app.listen(port, () => {
console.log("Server Running Live on Port : " + port);
});