@wppconnect/server 1.1.19 → 1.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/Dockerfile +25 -0
- package/README.md +23 -15
- package/dist/config.json +2 -1
- package/dist/controller/sessionController.js +23 -15
- package/dist/controller/sessionController.js.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/util/chatWootClient.js +2 -2
- package/dist/util/chatWootClient.js.map +1 -1
- package/dist/util/functions.js +36 -23
- package/dist/util/functions.js.map +1 -1
- package/dist/util/tokenStore/mongodbTokenStory.js +1 -1
- package/dist/util/tokenStore/mongodbTokenStory.js.map +1 -1
- package/docker-compose.yml +14 -0
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
package/Dockerfile
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
FROM node:14-alpine as base
|
|
2
|
+
WORKDIR /usr/src/wpp-server
|
|
3
|
+
ENV NODE_ENV=production PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
|
4
|
+
COPY package.json yarn.lock ./
|
|
5
|
+
RUN yarn install --production --pure-lockfile && \
|
|
6
|
+
yarn cache clean
|
|
7
|
+
|
|
8
|
+
FROM base as build
|
|
9
|
+
WORKDIR /usr/src/wpp-server
|
|
10
|
+
ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true
|
|
11
|
+
COPY package.json yarn.lock ./
|
|
12
|
+
RUN yarn install --production=false --pure-lockfile && \
|
|
13
|
+
yarn cache clean
|
|
14
|
+
COPY . .
|
|
15
|
+
RUN yarn build
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
FROM base
|
|
19
|
+
WORKDIR /usr/src/wpp-server/
|
|
20
|
+
RUN apk add --no-cache chromium
|
|
21
|
+
RUN yarn cache clean
|
|
22
|
+
COPY . .
|
|
23
|
+
COPY --from=build /usr/src/wpp-server/ /usr/src/wpp-server/
|
|
24
|
+
EXPOSE 21465
|
|
25
|
+
ENTRYPOINT ["node", "dist/server.js"]
|
package/README.md
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# WPPConnect Team
|
|
2
|
+
|
|
2
3
|
access our documentation on [postman](https://documenter.getpostman.com/view/9139457/TzshF4jQ)
|
|
3
4
|
|
|
4
5
|
## _WPPConnect Server_
|
|
@@ -20,17 +21,17 @@ Wppconnect Server is a ready-to-use API, just download, install, and start using
|
|
|
20
21
|
|
|
21
22
|
## Features
|
|
22
23
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
| Multiple Sessions
|
|
26
|
-
| Send **text, image, video and docs**
|
|
27
|
-
| Get **contacts list**
|
|
28
|
-
| Receive messages
|
|
29
|
-
| Open/Close Session
|
|
30
|
-
| Change Profile/Username
|
|
31
|
-
| Create Group
|
|
32
|
-
| Join Group by Invite Code
|
|
33
|
-
| Webhook
|
|
24
|
+
| | |
|
|
25
|
+
| ------------------------------------ | --- |
|
|
26
|
+
| Multiple Sessions | ✔ |
|
|
27
|
+
| Send **text, image, video and docs** | ✔ |
|
|
28
|
+
| Get **contacts list** | ✔ |
|
|
29
|
+
| Receive messages | ✔ |
|
|
30
|
+
| Open/Close Session | ✔ |
|
|
31
|
+
| Change Profile/Username | ✔ |
|
|
32
|
+
| Create Group | ✔ |
|
|
33
|
+
| Join Group by Invite Code | ✔ |
|
|
34
|
+
| Webhook | ✔ |
|
|
34
35
|
|
|
35
36
|
## Libraries Used
|
|
36
37
|
|
|
@@ -54,16 +55,18 @@ npm install
|
|
|
54
55
|
```
|
|
55
56
|
|
|
56
57
|
## Run Server
|
|
58
|
+
|
|
57
59
|
```sh
|
|
58
60
|
yarn dev
|
|
59
61
|
```
|
|
60
62
|
|
|
61
63
|
## Build Server
|
|
64
|
+
|
|
62
65
|
```sh
|
|
63
66
|
yarn build
|
|
64
67
|
```
|
|
65
68
|
|
|
66
|
-
|
|
69
|
+
---
|
|
67
70
|
|
|
68
71
|
# Configuration
|
|
69
72
|
|
|
@@ -72,11 +75,15 @@ This server use config.json file to define some options, default values are:
|
|
|
72
75
|
```javascript
|
|
73
76
|
{
|
|
74
77
|
/* secret key to genereta access token */
|
|
75
|
-
"secretKey": "THISISMYSECURETOKEN",
|
|
78
|
+
"secretKey": "THISISMYSECURETOKEN",
|
|
76
79
|
"host": "http://localhost",
|
|
77
80
|
"port": "21465",
|
|
81
|
+
// create userDataDir for each puppeteer instance for working with Multi Device
|
|
82
|
+
"customUserDataDir": "./userDataDir/",
|
|
78
83
|
// starts all sessions when starting the server.
|
|
79
84
|
"startAllSession": true,
|
|
85
|
+
// sets the maximum global listeners. 0 = infinity.
|
|
86
|
+
"maxListeners": 15,
|
|
80
87
|
"webhook": {
|
|
81
88
|
"url": null,
|
|
82
89
|
// automatically downloads files to upload to the webhook
|
|
@@ -96,7 +103,7 @@ This server use config.json file to define some options, default values are:
|
|
|
96
103
|
"log": {
|
|
97
104
|
"level": "error",
|
|
98
105
|
"logger": [ "console", "file" ]
|
|
99
|
-
},
|
|
106
|
+
},
|
|
100
107
|
"createOptions": {
|
|
101
108
|
"browserArgs": ["--no-sandbox"]
|
|
102
109
|
}
|
|
@@ -173,4 +180,5 @@ curl -X POST --location "http://localhost:21465/api/mySession/send-message" \
|
|
|
173
180
|
See the `routes file` for all the routes. [here](/src/routes/index.js) and HTTP [file](/requests.http).
|
|
174
181
|
|
|
175
182
|
# Swagger UI
|
|
176
|
-
|
|
183
|
+
|
|
184
|
+
Swagger ui can be found at `/api-docs`
|
package/dist/config.json
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
"secretKey": "THISISMYSECURETOKEN",
|
|
3
3
|
"host": "http://localhost",
|
|
4
4
|
"port": "21465",
|
|
5
|
-
"deviceName"
|
|
5
|
+
"deviceName": "WppConnect",
|
|
6
6
|
"startAllSession": true,
|
|
7
7
|
"tokenStoreType": "file",
|
|
8
|
+
"maxListeners": 15,
|
|
8
9
|
"webhook": {
|
|
9
10
|
"url": null,
|
|
10
11
|
"autoDownload": true,
|
|
@@ -203,27 +203,35 @@ async function downloadMediaByMessage(req, res) {
|
|
|
203
203
|
|
|
204
204
|
let message;
|
|
205
205
|
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
206
|
+
try {
|
|
207
|
+
if (!messageId.isMedia || !messageId.type) {
|
|
208
|
+
message = await client.getMessageById(messageId);
|
|
209
|
+
} else {
|
|
210
|
+
message = messageId;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
if (!message)
|
|
214
|
+
return res.status(400).json({
|
|
215
|
+
status: 'error',
|
|
216
|
+
message: 'Message not found' });
|
|
211
217
|
|
|
212
|
-
if (!message)
|
|
213
|
-
return res.status(400).json({
|
|
214
|
-
status: 'error',
|
|
215
|
-
message: 'Message not found' });
|
|
216
218
|
|
|
219
|
+
if (!(message['mimetype'] || message.isMedia || message.isMMS))
|
|
220
|
+
return res.status(400).json({
|
|
221
|
+
status: 'error',
|
|
222
|
+
message: 'Message does not contain media' });
|
|
217
223
|
|
|
218
|
-
if (!(message['mimetype'] || message.isMedia || message.isMMS))
|
|
219
|
-
return res.status(400).json({
|
|
220
|
-
status: 'error',
|
|
221
|
-
message: 'Message does not contain media' });
|
|
222
224
|
|
|
225
|
+
const buffer = await client.decryptFile(message);
|
|
223
226
|
|
|
224
|
-
|
|
227
|
+
return res.status(200).json({ base64: buffer.toString('base64'), mimetype: message.mimetype });
|
|
228
|
+
} catch (e) {
|
|
229
|
+
req.logger.error(e);
|
|
230
|
+
return res.status(400).json({
|
|
231
|
+
status: 'error',
|
|
232
|
+
message: 'Decrypt file error' });
|
|
225
233
|
|
|
226
|
-
|
|
234
|
+
}
|
|
227
235
|
}
|
|
228
236
|
|
|
229
237
|
async function getMediaByMessage(req, res) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/controller/sessionController.js"],"names":["SessionUtil","CreateSessionUtil","downloadFileFunction","message","client","logger","buffer","decryptFile","filename","t","fs","existsSync","result","type","mime","extension","mimetype","writeFile","err","error","e","warn","downloadMedia","download","path","replace","startAllSessions","req","res","secretkey","params","authorization","token","headers","tokenDecrypt","undefined","split","allSessions","serverOptions","secretKey","status","json","response","map","session","util","opendata","showAllSessions","arr","Object","keys","clientsArray","forEach","item","push","startSession","waitQrCode","body","getSessionState","closeSession","close","io","emit","connected","logOutSession","logout","checkConnectionSession","isConnected","downloadMediaByMessage","messageId","isMedia","getMessageById","isMMS","base64","toString","getMediaByMessage","ex","qrcode","urlcode","getQrCode","img","Buffer","from","writeHead","length","end","killServiceWorker","restartService","subscribePresence","phone","isGroup","all","contacts","groups","getAllGroups","p","id","_serialized","chats","getAllContacts","c","contato"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { clientsArray } from '../util/sessionUtil';\nimport { callWebHook, contactToArray } from '../util/functions';\nimport CreateSessionUtil from '../util/createSessionUtil';\nimport getAllTokens from '../util/getAllTokens';\nimport fs from 'fs';\nimport mime from 'mime-types';\n\nconst SessionUtil = new CreateSessionUtil();\n\nasync function downloadFileFunction(message, client, logger) {\n try {\n const buffer = await client.decryptFile(message);\n\n let filename = `./WhatsAppImages/file${message.t}`;\n if (!fs.existsSync(filename)) {\n let result = '';\n if (message.type === 'ptt') {\n result = `${filename}.oga`;\n } else {\n result = `${filename}.${mime.extension(message.mimetype)}`;\n }\n\n await fs.writeFile(result, buffer, (err) => {\n if (err) {\n logger.error(err);\n }\n });\n\n return result;\n } else {\n return `${filename}.${mime.extension(message.mimetype)}`;\n }\n } catch (e) {\n logger.error(e);\n logger.warn('Erro ao descriptografar a midia, tentando fazer o download direto...');\n try {\n const buffer = await client.downloadMedia(message);\n const filename = `./WhatsAppImages/file${message.t}`;\n if (!fs.existsSync(filename)) {\n let result = '';\n if (message.type === 'ptt') {\n result = `${filename}.oga`;\n } else {\n result = `${filename}.${mime.extension(message.mimetype)}`;\n }\n\n await fs.writeFile(result, buffer, (err) => {\n if (err) {\n logger.error(err);\n }\n });\n\n return result;\n } else {\n return `${filename}.${mime.extension(message.mimetype)}`;\n }\n } catch (e) {\n logger.error(e);\n logger.warn('Não foi possível baixar a mídia...');\n }\n }\n}\n\nexport async function download(message, client, logger) {\n try {\n const path = await downloadFileFunction(message, client, logger);\n return path.replace('./', '');\n } catch (e) {\n logger.error(e);\n }\n}\n\nexport async function startAllSessions(req, res) {\n const { secretkey } = req.params;\n const { authorization: token } = req.headers;\n\n let tokenDecrypt = '';\n\n if (secretkey === undefined) {\n tokenDecrypt = token.split(' ')[0];\n } else {\n tokenDecrypt = secretkey;\n }\n\n const allSessions = await getAllTokens(req);\n\n if (tokenDecrypt !== req.serverOptions.secretKey) {\n return res.status(400).json({\n response: 'error',\n message: 'The token is incorrect',\n });\n }\n\n allSessions.map(async (session) => {\n const util = new CreateSessionUtil();\n await util.opendata(req, session);\n });\n\n return await res.status(201).json({ status: 'success', message: 'Starting all sessions' });\n}\n\nexport async function showAllSessions(req, res) {\n const { secretkey } = req.params;\n const { authorization: token } = req.headers;\n\n let tokenDecrypt = '';\n\n if (secretkey === undefined) {\n tokenDecrypt = token.split(' ')[0];\n } else {\n tokenDecrypt = secretkey;\n }\n\n const arr = [];\n\n if (tokenDecrypt !== req.serverOptions.secretKey) {\n return res.status(400).json({\n response: false,\n message: 'The token is incorrect',\n });\n }\n\n Object.keys(clientsArray).forEach((item) => {\n arr.push({ session: item });\n });\n\n return res.status(200).json({ response: arr });\n}\n\nexport async function startSession(req, res) {\n const session = req.session;\n const { waitQrCode = false } = req.body;\n\n await getSessionState(req, res);\n await SessionUtil.opendata(req, session, waitQrCode ? res : null);\n}\n\nexport async function closeSession(req, res) {\n const session = req.session;\n try {\n clientsArray[session] = { status: null };\n await req.client.close();\n\n req.io.emit('whatsapp-status', false);\n callWebHook(req.client, req, 'closesession', {\n message: `Session: ${session} disconnected`,\n connected: false,\n });\n\n return await res.status(200).json({ status: true, message: 'Session successfully closed' });\n } catch (error) {\n req.logger.error(error);\n return await res.status(500).json({ status: false, message: 'Error closing session', error });\n }\n}\n\nexport async function logOutSession(req, res) {\n try {\n const session = req.session;\n await req.client.logout();\n\n req.io.emit('whatsapp-status', false);\n callWebHook(req.client, req, 'logoutsession', {\n message: `Session: ${session} logged out`,\n connected: false,\n });\n\n return await res.status(200).json({ status: true, message: 'Session successfully closed' });\n } catch (error) {\n req.logger.error(error);\n return await res.status(500).json({ status: false, message: 'Error closing session', error });\n }\n}\n\nexport async function checkConnectionSession(req, res) {\n try {\n await req.client.isConnected();\n\n return res.status(200).json({ status: true, message: 'Connected' });\n } catch (error) {\n return res.status(200).json({ status: false, message: 'Disconnected' });\n }\n}\n\nexport async function downloadMediaByMessage(req, res) {\n const client = req.client;\n const { messageId } = req.body;\n\n let message;\n\n if (!messageId.isMedia || !messageId.type) {\n message = await client.getMessageById(messageId);\n } else {\n message = messageId;\n }\n\n if (!message)\n return res.status(400).json({\n status: 'error',\n message: 'Message not found',\n });\n\n if (!(message['mimetype'] || message.isMedia || message.isMMS))\n return res.status(400).json({\n status: 'error',\n message: 'Message does not contain media',\n });\n\n const buffer = await client.decryptFile(message);\n\n return res.status(200).json({ base64: buffer.toString('base64'), mimetype: message.mimetype });\n}\n\nexport async function getMediaByMessage(req, res) {\n const client = req.client;\n const { messageId } = req.params;\n\n try {\n const message = await client.getMessageById(messageId);\n\n if (!message)\n return res.status(400).json({\n status: 'error',\n message: 'Message not found',\n });\n\n if (!(message['mimetype'] || message.isMedia || message.isMMS))\n return res.status(400).json({\n status: 'error',\n message: 'Message does not contain media',\n });\n\n const buffer = await client.decryptFile(message);\n\n return res.status(200).json({ base64: buffer.toString('base64'), mimetype: message.mimetype });\n } catch (ex) {\n req.logger.error(ex);\n return res.status(500).json({ status: 'error', message: 'The session is not active' });\n }\n}\n\nexport async function getSessionState(req, res) {\n try {\n const { waitQrCode = false } = req.body;\n const client = req.client;\n\n if ((client == null || client.status == null) && !waitQrCode)\n return res.status(200).json({ status: 'CLOSED', qrcode: null });\n else if (client != null)\n return res.status(200).json({\n status: client.status,\n qrcode: client.qrcode,\n urlcode: client.urlcode,\n });\n } catch (ex) {\n req.logger.error(ex);\n return res.status(500).json({ status: 'error', message: 'The session is not active' });\n }\n}\n\nexport async function getQrCode(req, res) {\n try {\n const img = Buffer.from(req.client.qrcode.replace(/^data:image\\/(png|jpeg|jpg);base64,/, ''), 'base64');\n\n res.writeHead(200, {\n 'Content-Type': 'image/png',\n 'Content-Length': img.length,\n });\n res.end(img);\n } catch (ex) {\n req.logger.error(ex);\n return res.status(500).json({ status: 'error', message: 'Error retrieving QRCode' });\n }\n}\n\nexport async function killServiceWorker(req, res) {\n try {\n return res.status(200).json({ status: 'success', response: req.client.killServiceWorker() });\n } catch (ex) {\n req.logger.error(ex);\n return res.status(500).json({ status: 'error', message: 'The session is not active' });\n }\n}\n\nexport async function restartService(req, res) {\n try {\n return res.status(200).json({ status: 'success', response: req.client.restartService() });\n } catch (ex) {\n req.logger.error(ex);\n return res.status(500).json({ status: 'error', response: { message: 'The session is not active' } });\n }\n}\n\nexport async function subscribePresence(req, res) {\n try {\n const { phone, isGroup = false, all = false } = req.body;\n\n if (all) {\n let contacts;\n if (isGroup) {\n const groups = await req.client.getAllGroups(false);\n contacts = groups.map((p) => p.id._serialized);\n } else {\n const chats = await req.client.getAllContacts();\n contacts = chats.map((c) => c.id._serialized);\n }\n await req.client.subscribePresence(contacts);\n } else\n for (const contato of contactToArray(phone, isGroup)) {\n await req.client.subscribePresence(contato);\n }\n\n return await res.status(200).json({ status: 'success', response: { message: 'Subscribe presence executed' } });\n } catch (error) {\n return await res.status(500).json({ status: 'error', message: 'Error on subscribe presence', error });\n }\n}\n"],"file":"sessionController.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/controller/sessionController.js"],"names":["SessionUtil","CreateSessionUtil","downloadFileFunction","message","client","logger","buffer","decryptFile","filename","t","fs","existsSync","result","type","mime","extension","mimetype","writeFile","err","error","e","warn","downloadMedia","download","path","replace","startAllSessions","req","res","secretkey","params","authorization","token","headers","tokenDecrypt","undefined","split","allSessions","serverOptions","secretKey","status","json","response","map","session","util","opendata","showAllSessions","arr","Object","keys","clientsArray","forEach","item","push","startSession","waitQrCode","body","getSessionState","closeSession","close","io","emit","connected","logOutSession","logout","checkConnectionSession","isConnected","downloadMediaByMessage","messageId","isMedia","getMessageById","isMMS","base64","toString","getMediaByMessage","ex","qrcode","urlcode","getQrCode","img","Buffer","from","writeHead","length","end","killServiceWorker","restartService","subscribePresence","phone","isGroup","all","contacts","groups","getAllGroups","p","id","_serialized","chats","getAllContacts","c","contato"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { clientsArray } from '../util/sessionUtil';\nimport { callWebHook, contactToArray } from '../util/functions';\nimport CreateSessionUtil from '../util/createSessionUtil';\nimport getAllTokens from '../util/getAllTokens';\nimport fs from 'fs';\nimport mime from 'mime-types';\n\nconst SessionUtil = new CreateSessionUtil();\n\nasync function downloadFileFunction(message, client, logger) {\n try {\n const buffer = await client.decryptFile(message);\n\n let filename = `./WhatsAppImages/file${message.t}`;\n if (!fs.existsSync(filename)) {\n let result = '';\n if (message.type === 'ptt') {\n result = `${filename}.oga`;\n } else {\n result = `${filename}.${mime.extension(message.mimetype)}`;\n }\n\n await fs.writeFile(result, buffer, (err) => {\n if (err) {\n logger.error(err);\n }\n });\n\n return result;\n } else {\n return `${filename}.${mime.extension(message.mimetype)}`;\n }\n } catch (e) {\n logger.error(e);\n logger.warn('Erro ao descriptografar a midia, tentando fazer o download direto...');\n try {\n const buffer = await client.downloadMedia(message);\n const filename = `./WhatsAppImages/file${message.t}`;\n if (!fs.existsSync(filename)) {\n let result = '';\n if (message.type === 'ptt') {\n result = `${filename}.oga`;\n } else {\n result = `${filename}.${mime.extension(message.mimetype)}`;\n }\n\n await fs.writeFile(result, buffer, (err) => {\n if (err) {\n logger.error(err);\n }\n });\n\n return result;\n } else {\n return `${filename}.${mime.extension(message.mimetype)}`;\n }\n } catch (e) {\n logger.error(e);\n logger.warn('Não foi possível baixar a mídia...');\n }\n }\n}\n\nexport async function download(message, client, logger) {\n try {\n const path = await downloadFileFunction(message, client, logger);\n return path.replace('./', '');\n } catch (e) {\n logger.error(e);\n }\n}\n\nexport async function startAllSessions(req, res) {\n const { secretkey } = req.params;\n const { authorization: token } = req.headers;\n\n let tokenDecrypt = '';\n\n if (secretkey === undefined) {\n tokenDecrypt = token.split(' ')[0];\n } else {\n tokenDecrypt = secretkey;\n }\n\n const allSessions = await getAllTokens(req);\n\n if (tokenDecrypt !== req.serverOptions.secretKey) {\n return res.status(400).json({\n response: 'error',\n message: 'The token is incorrect',\n });\n }\n\n allSessions.map(async (session) => {\n const util = new CreateSessionUtil();\n await util.opendata(req, session);\n });\n\n return await res.status(201).json({ status: 'success', message: 'Starting all sessions' });\n}\n\nexport async function showAllSessions(req, res) {\n const { secretkey } = req.params;\n const { authorization: token } = req.headers;\n\n let tokenDecrypt = '';\n\n if (secretkey === undefined) {\n tokenDecrypt = token.split(' ')[0];\n } else {\n tokenDecrypt = secretkey;\n }\n\n const arr = [];\n\n if (tokenDecrypt !== req.serverOptions.secretKey) {\n return res.status(400).json({\n response: false,\n message: 'The token is incorrect',\n });\n }\n\n Object.keys(clientsArray).forEach((item) => {\n arr.push({ session: item });\n });\n\n return res.status(200).json({ response: arr });\n}\n\nexport async function startSession(req, res) {\n const session = req.session;\n const { waitQrCode = false } = req.body;\n\n await getSessionState(req, res);\n await SessionUtil.opendata(req, session, waitQrCode ? res : null);\n}\n\nexport async function closeSession(req, res) {\n const session = req.session;\n try {\n clientsArray[session] = { status: null };\n await req.client.close();\n\n req.io.emit('whatsapp-status', false);\n callWebHook(req.client, req, 'closesession', {\n message: `Session: ${session} disconnected`,\n connected: false,\n });\n\n return await res.status(200).json({ status: true, message: 'Session successfully closed' });\n } catch (error) {\n req.logger.error(error);\n return await res.status(500).json({ status: false, message: 'Error closing session', error });\n }\n}\n\nexport async function logOutSession(req, res) {\n try {\n const session = req.session;\n await req.client.logout();\n\n req.io.emit('whatsapp-status', false);\n callWebHook(req.client, req, 'logoutsession', {\n message: `Session: ${session} logged out`,\n connected: false,\n });\n\n return await res.status(200).json({ status: true, message: 'Session successfully closed' });\n } catch (error) {\n req.logger.error(error);\n return await res.status(500).json({ status: false, message: 'Error closing session', error });\n }\n}\n\nexport async function checkConnectionSession(req, res) {\n try {\n await req.client.isConnected();\n\n return res.status(200).json({ status: true, message: 'Connected' });\n } catch (error) {\n return res.status(200).json({ status: false, message: 'Disconnected' });\n }\n}\n\nexport async function downloadMediaByMessage(req, res) {\n const client = req.client;\n const { messageId } = req.body;\n\n let message;\n\n try {\n if (!messageId.isMedia || !messageId.type) {\n message = await client.getMessageById(messageId);\n } else {\n message = messageId;\n }\n\n if (!message)\n return res.status(400).json({\n status: 'error',\n message: 'Message not found',\n });\n\n if (!(message['mimetype'] || message.isMedia || message.isMMS))\n return res.status(400).json({\n status: 'error',\n message: 'Message does not contain media',\n });\n\n const buffer = await client.decryptFile(message);\n\n return res.status(200).json({ base64: buffer.toString('base64'), mimetype: message.mimetype });\n } catch (e) {\n req.logger.error(e);\n return res.status(400).json({\n status: 'error',\n message: 'Decrypt file error',\n });\n }\n}\n\nexport async function getMediaByMessage(req, res) {\n const client = req.client;\n const { messageId } = req.params;\n\n try {\n const message = await client.getMessageById(messageId);\n\n if (!message)\n return res.status(400).json({\n status: 'error',\n message: 'Message not found',\n });\n\n if (!(message['mimetype'] || message.isMedia || message.isMMS))\n return res.status(400).json({\n status: 'error',\n message: 'Message does not contain media',\n });\n\n const buffer = await client.decryptFile(message);\n\n return res.status(200).json({ base64: buffer.toString('base64'), mimetype: message.mimetype });\n } catch (ex) {\n req.logger.error(ex);\n return res.status(500).json({ status: 'error', message: 'The session is not active' });\n }\n}\n\nexport async function getSessionState(req, res) {\n try {\n const { waitQrCode = false } = req.body;\n const client = req.client;\n\n if ((client == null || client.status == null) && !waitQrCode)\n return res.status(200).json({ status: 'CLOSED', qrcode: null });\n else if (client != null)\n return res.status(200).json({\n status: client.status,\n qrcode: client.qrcode,\n urlcode: client.urlcode,\n });\n } catch (ex) {\n req.logger.error(ex);\n return res.status(500).json({ status: 'error', message: 'The session is not active' });\n }\n}\n\nexport async function getQrCode(req, res) {\n try {\n const img = Buffer.from(req.client.qrcode.replace(/^data:image\\/(png|jpeg|jpg);base64,/, ''), 'base64');\n\n res.writeHead(200, {\n 'Content-Type': 'image/png',\n 'Content-Length': img.length,\n });\n res.end(img);\n } catch (ex) {\n req.logger.error(ex);\n return res.status(500).json({ status: 'error', message: 'Error retrieving QRCode' });\n }\n}\n\nexport async function killServiceWorker(req, res) {\n try {\n return res.status(200).json({ status: 'success', response: req.client.killServiceWorker() });\n } catch (ex) {\n req.logger.error(ex);\n return res.status(500).json({ status: 'error', message: 'The session is not active' });\n }\n}\n\nexport async function restartService(req, res) {\n try {\n return res.status(200).json({ status: 'success', response: req.client.restartService() });\n } catch (ex) {\n req.logger.error(ex);\n return res.status(500).json({ status: 'error', response: { message: 'The session is not active' } });\n }\n}\n\nexport async function subscribePresence(req, res) {\n try {\n const { phone, isGroup = false, all = false } = req.body;\n\n if (all) {\n let contacts;\n if (isGroup) {\n const groups = await req.client.getAllGroups(false);\n contacts = groups.map((p) => p.id._serialized);\n } else {\n const chats = await req.client.getAllContacts();\n contacts = chats.map((c) => c.id._serialized);\n }\n await req.client.subscribePresence(contacts);\n } else\n for (const contato of contactToArray(phone, isGroup)) {\n await req.client.subscribePresence(contato);\n }\n\n return await res.status(200).json({ status: 'success', response: { message: 'Subscribe presence executed' } });\n } catch (error) {\n return await res.status(500).json({ status: 'error', message: 'Error on subscribe presence', error });\n }\n}\n"],"file":"sessionController.js"}
|
package/dist/index.js
CHANGED
|
@@ -41,7 +41,9 @@ var _index = require("./mapper/index"); /*
|
|
|
41
41
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
42
42
|
* See the License for the specific language governing permissions and
|
|
43
43
|
* limitations under the License.
|
|
44
|
-
*/require('dotenv').config();function initServer(serverOptions) {const __dirname = _path.default.resolve(_path.default.dirname(''));if (typeof serverOptions !== 'object') {serverOptions = {};}serverOptions = (0, _mergeDeep.default)({}, _config.default, serverOptions);const logger = (0, _logger.createLogger)(serverOptions.log);const app = (0, _express.default)();
|
|
44
|
+
*/require('dotenv').config();function initServer(serverOptions) {const __dirname = _path.default.resolve(_path.default.dirname(''));if (typeof serverOptions !== 'object') {serverOptions = {};}serverOptions = (0, _mergeDeep.default)({}, _config.default, serverOptions);(0, _functions.setMaxListners)(serverOptions);const logger = (0, _logger.createLogger)(serverOptions.log);const app = (0, _express.default)();
|
|
45
|
+
const PORT = process.env.PORT || serverOptions.port;
|
|
46
|
+
|
|
45
47
|
const http = new _http.createServer(app);
|
|
46
48
|
const io = new _socket.Server(http, {
|
|
47
49
|
cors: true,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":["require","config","initServer","serverOptions","__dirname","path","resolve","dirname","logger","log","app","PORT","process","env","port","http","createServer","io","Socket","cors","origins","use","express","json","limit","urlencoded","extended","static","req","res","next","oldSend","send","data","content","headers","JSON","parse","session","client","mapper","enable","response","prefix","on","sock","info","id","routes","listen","host","startAllSession"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uC,CA7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAEAA,OAAO,CAAC,QAAD,CAAP,CAAkBC,MAAlB,GAeO,SAASC,UAAT,CAAoBC,aAApB,EAAmC,CACxC,MAAMC,SAAS,GAAGC,cAAKC,OAAL,CAAaD,cAAKE,OAAL,CAAa,EAAb,CAAb,CAAlB,CACA,IAAI,OAAOJ,aAAP,KAAyB,QAA7B,EAAuC,CACrCA,aAAa,GAAG,EAAhB,CACD,CAEDA,aAAa,GAAG,wBAAU,EAAV,EAAcF,eAAd,EAAsBE,aAAtB,CAAhB,CAEA,MAAMK,MAAM,GAAG,0BAAaL,aAAa,CAACM,GAA3B,CAAf,CAEA,MAAMC,GAAG,GAAG,uBAAZ,
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":["require","config","initServer","serverOptions","__dirname","path","resolve","dirname","logger","log","app","PORT","process","env","port","http","createServer","io","Socket","cors","origins","use","express","json","limit","urlencoded","extended","static","req","res","next","oldSend","send","data","content","headers","JSON","parse","session","client","mapper","enable","response","prefix","on","sock","info","id","routes","listen","host","startAllSession"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nrequire('dotenv').config();\n\nimport { createLogger } from './util/logger';\nimport { createFolders, setMaxListners, startAllSessions } from './util/functions';\nimport cors from 'cors';\nimport express from 'express';\nimport { createServer } from 'http';\nimport { Server as Socket } from 'socket.io';\nimport routes from './routes';\nimport path from 'path';\nimport config from './config.json';\nimport boolParser from 'express-query-boolean';\nimport mergeDeep from 'merge-deep';\nimport { convert } from './mapper/index';\n\nexport function initServer(serverOptions) {\n const __dirname = path.resolve(path.dirname(''));\n if (typeof serverOptions !== 'object') {\n serverOptions = {};\n }\n\n serverOptions = mergeDeep({}, config, serverOptions);\n\n setMaxListners(serverOptions);\n\n const logger = createLogger(serverOptions.log);\n\n const app = express();\n const PORT = process.env.PORT || serverOptions.port;\n\n const http = new createServer(app);\n const io = new Socket(http, {\n cors: true,\n origins: ['*'],\n });\n\n app.use(cors());\n app.use(express.json({ limit: '50mb' }));\n app.use(express.urlencoded({ limit: '50mb', extended: true }));\n app.use('/files', express.static(path.resolve(__dirname, '..', 'WhatsAppImages')));\n app.use(boolParser());\n\n // Add request options\n app.use((req, res, next) => {\n req.serverOptions = serverOptions;\n req.logger = logger;\n req.io = io;\n\n var oldSend = res.send;\n\n res.send = async function (data) {\n const content = req.headers['content-type'];\n if (content == 'application/json') {\n data = JSON.parse(data);\n if (!data.session) data.session = req.client ? req.client.session : '';\n if (data.mapper && req.serverOptions.mapper.enable) {\n data.response = await convert(req.serverOptions.mapper.prefix, data.response, data.mapper);\n delete data.mapper;\n }\n }\n res.send = oldSend;\n return res.send(data);\n };\n next();\n });\n\n io.on('connection', (sock) => {\n logger.info(`ID: ${sock.id} entrou`);\n\n sock.on('disconnect', () => {\n logger.info(`ID: ${sock.id} saiu`);\n });\n });\n\n app.use(routes);\n\n createFolders();\n\n http.listen(PORT, () => {\n logger.info(`Server is running on port: ${PORT}`);\n logger.info(`\\x1b[31m Visit ${serverOptions.host}:${PORT}/api-docs for Swagger docs`);\n\n if (serverOptions.startAllSession) startAllSessions(serverOptions, logger);\n });\n\n return {\n app,\n routes,\n logger,\n };\n}\n"],"file":"index.js"}
|
|
@@ -40,7 +40,7 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
40
40
|
setTimeout(async () => {
|
|
41
41
|
this.sendMessage(client, {
|
|
42
42
|
sender: this.sender,
|
|
43
|
-
chatId: '',
|
|
43
|
+
chatId: this.mobile_number + '@c.us',
|
|
44
44
|
type: 'image',
|
|
45
45
|
timestamp: 'qrcode',
|
|
46
46
|
mimetype: 'image/png',
|
|
@@ -54,7 +54,7 @@ var _sessionUtil = require("./sessionUtil"); /*
|
|
|
54
54
|
_sessionUtil.eventEmitter.on(`status-${session}`, (client, status) => {
|
|
55
55
|
this.sendMessage(client, {
|
|
56
56
|
sender: this.sender,
|
|
57
|
-
chatId: '',
|
|
57
|
+
chatId: this.mobile_number + '@c.us',
|
|
58
58
|
body: `wppconnect status: ${status} ` });
|
|
59
59
|
|
|
60
60
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/chatWootClient.js"],"names":["chatWootClient","constructor","config","session","mobile_name","mobile_number","sender","pushname","id","account_id","inbox_id","api","axios","create","baseURL","headers","api_access_token","token","eventEmitter","on","qrCode","urlCode","client","setTimeout","sendMessage","chatId","type","timestamp","mimetype","caption","replace","status","body","message","isGroupMsg","indexOf","contact","createContact","conversation","createConversation","split","extension","mime","filename","b64","buffer","decryptFile","toString","mediaData","Buffer","from","data","FormData","append","contentType","configPost","Object","assign","getHeaders","result","post","content","message_type","e","findContact","query","get","console","log","name","isMyContact","formattedName","phone_number","user","meta","count","payload","findConversation","find","source_id","contact_id"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport axios from 'axios';\nimport { default as FormData } from 'form-data';\nimport mime from 'mime-types';\nimport toStream from 'buffer-to-stream';\nimport { eventEmitter } from './sessionUtil';\n\nexport default class chatWootClient {\n constructor(config, session) {\n this.config = config;\n this.mobile_name = this.config.mobile_name ? this.config.mobile_name : `WPPConnect`;\n this.mobile_number = this.config.mobile_number ? this.config.mobile_number : '5511999999999';\n this.sender = {\n pushname: this.mobile_name,\n id: this.mobile_number,\n };\n this.account_id = this.config.account_id;\n this.inbox_id = this.config.inbox_id;\n this.api = axios.create({\n baseURL: this.config.baseURL,\n headers: { 'Content-Type': 'application/json;charset=utf-8', api_access_token: this.config.token },\n });\n\n //assina o evento do qrcode\n eventEmitter.on(`qrcode-${session}`, (qrCode, urlCode, client) => {\n setTimeout(async () => {\n this.sendMessage(client, {\n sender: this.sender,\n chatId: '',\n type: 'image',\n timestamp: 'qrcode',\n mimetype: 'image/png',\n caption: 'leia o qrCode',\n qrCode: qrCode.replace('data:image/png;base64,', ''),\n });\n }, 1000);\n });\n\n //assiona o evento do status\n eventEmitter.on(`status-${session}`, (client, status) => {\n this.sendMessage(client, {\n sender: this.sender,\n chatId: '',\n body: `wppconnect status: ${status} `,\n });\n });\n\n //assina o evento de mensagem\n eventEmitter.on(`mensagem-${session}`, (client, message) => {\n this.sendMessage(client, message);\n });\n }\n\n async sendMessage(client, message) {\n if (message.isGroupMsg || message.chatId.indexOf('@broadcast') > 0) return;\n let contact = await this.createContact(message);\n let conversation = await this.createConversation(contact, message.chatId.split('@')[0]);\n\n try {\n if (\n message.type == 'image' ||\n message.type == 'video' ||\n message.type == 'in' ||\n message.type == 'document' ||\n message.type == 'ptt' ||\n message.type == 'audio' ||\n message.type == 'sticker'\n ) {\n if (message.mimetype == 'image/webp') message.mimetype = 'image/jpeg';\n const extension = mime.extension(message.mimetype);\n let filename = `${message.timestamp}.${extension}`;\n let b64;\n\n if (message.qrCode) b64 = message.qrCode;\n else {\n let buffer = await client.decryptFile(message);\n b64 = await buffer.toString('base64');\n }\n\n let mediaData = Buffer.from(b64, 'base64');\n\n let data = new FormData();\n if (message.caption) {\n data.append('content', message.caption);\n }\n data.append('attachments[]', toStream(mediaData), {\n filename: filename,\n contentType: message.mimetype,\n });\n data.append('message_type', 'incoming');\n data.append('private', 'false');\n\n let configPost = Object.assign(\n {},\n {\n baseURL: this.config.baseURL,\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n api_access_token: this.config.token,\n },\n }\n );\n configPost.headers = { ...configPost.headers, ...data.getHeaders() };\n\n var result = await axios.post(\n `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,\n data,\n configPost\n );\n\n return result;\n } else {\n let body = {\n content: message.body,\n message_type: 'incoming',\n };\n const { data } = await this.api.post(\n `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,\n body\n );\n return data;\n }\n } catch (e) {\n return null;\n }\n }\n\n async findContact(query) {\n try {\n const { data } = await this.api.get(`api/v1/accounts/${this.account_id}/contacts/search/?q=${query}`);\n return data;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async createContact(message) {\n let body = {\n inbox_id: this.inbox_id,\n name: message.sender.isMyContact\n ? message.sender.formattedName\n : message.sender.pushname || message.sender.formattedName,\n phone_number: typeof message.sender.id == 'object' ? message.sender.id.user : message.sender.id.split('@')[0],\n };\n body.phone_number = `+${body.phone_number}`;\n var contact = await this.findContact(body.phone_number.replace('+', ''));\n if (contact && contact.meta.count > 0) return contact.payload[0];\n\n try {\n const data = await this.api.post(`api/v1/accounts/${this.account_id}/contacts`, body);\n return data.data.payload.contact;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async findConversation(contact) {\n try {\n const { data } = await this.api.get(\n `api/v1/accounts/${this.account_id}/conversations?inbox_id=${this.inbox_id}&status=all`\n );\n return data.data.payload.find((e) => e.meta.sender.id == contact.id && e.status != 'resolved');\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async createConversation(contact, source_id) {\n var conversation = await this.findConversation(contact);\n if (conversation) return conversation;\n\n let body = {\n source_id: source_id,\n inbox_id: this.inbox_id,\n contact_id: contact.id,\n status: 'open',\n };\n\n try {\n const { data } = await this.api.post(`api/v1/accounts/${this.account_id}/conversations`, body);\n return data;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n}\n"],"file":"chatWootClient.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/util/chatWootClient.js"],"names":["chatWootClient","constructor","config","session","mobile_name","mobile_number","sender","pushname","id","account_id","inbox_id","api","axios","create","baseURL","headers","api_access_token","token","eventEmitter","on","qrCode","urlCode","client","setTimeout","sendMessage","chatId","type","timestamp","mimetype","caption","replace","status","body","message","isGroupMsg","indexOf","contact","createContact","conversation","createConversation","split","extension","mime","filename","b64","buffer","decryptFile","toString","mediaData","Buffer","from","data","FormData","append","contentType","configPost","Object","assign","getHeaders","result","post","content","message_type","e","findContact","query","get","console","log","name","isMyContact","formattedName","phone_number","user","meta","count","payload","findConversation","find","source_id","contact_id"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport axios from 'axios';\nimport { default as FormData } from 'form-data';\nimport mime from 'mime-types';\nimport toStream from 'buffer-to-stream';\nimport { eventEmitter } from './sessionUtil';\n\nexport default class chatWootClient {\n constructor(config, session) {\n this.config = config;\n this.mobile_name = this.config.mobile_name ? this.config.mobile_name : `WPPConnect`;\n this.mobile_number = this.config.mobile_number ? this.config.mobile_number : '5511999999999';\n this.sender = {\n pushname: this.mobile_name,\n id: this.mobile_number,\n };\n this.account_id = this.config.account_id;\n this.inbox_id = this.config.inbox_id;\n this.api = axios.create({\n baseURL: this.config.baseURL,\n headers: { 'Content-Type': 'application/json;charset=utf-8', api_access_token: this.config.token },\n });\n\n //assina o evento do qrcode\n eventEmitter.on(`qrcode-${session}`, (qrCode, urlCode, client) => {\n setTimeout(async () => {\n this.sendMessage(client, {\n sender: this.sender,\n chatId: this.mobile_number + '@c.us',\n type: 'image',\n timestamp: 'qrcode',\n mimetype: 'image/png',\n caption: 'leia o qrCode',\n qrCode: qrCode.replace('data:image/png;base64,', ''),\n });\n }, 1000);\n });\n\n //assiona o evento do status\n eventEmitter.on(`status-${session}`, (client, status) => {\n this.sendMessage(client, {\n sender: this.sender,\n chatId: this.mobile_number + '@c.us',\n body: `wppconnect status: ${status} `,\n });\n });\n\n //assina o evento de mensagem\n eventEmitter.on(`mensagem-${session}`, (client, message) => {\n this.sendMessage(client, message);\n });\n }\n\n async sendMessage(client, message) {\n if (message.isGroupMsg || message.chatId.indexOf('@broadcast') > 0) return;\n let contact = await this.createContact(message);\n let conversation = await this.createConversation(contact, message.chatId.split('@')[0]);\n\n try {\n if (\n message.type == 'image' ||\n message.type == 'video' ||\n message.type == 'in' ||\n message.type == 'document' ||\n message.type == 'ptt' ||\n message.type == 'audio' ||\n message.type == 'sticker'\n ) {\n if (message.mimetype == 'image/webp') message.mimetype = 'image/jpeg';\n const extension = mime.extension(message.mimetype);\n let filename = `${message.timestamp}.${extension}`;\n let b64;\n\n if (message.qrCode) b64 = message.qrCode;\n else {\n let buffer = await client.decryptFile(message);\n b64 = await buffer.toString('base64');\n }\n\n let mediaData = Buffer.from(b64, 'base64');\n\n let data = new FormData();\n if (message.caption) {\n data.append('content', message.caption);\n }\n data.append('attachments[]', toStream(mediaData), {\n filename: filename,\n contentType: message.mimetype,\n });\n data.append('message_type', 'incoming');\n data.append('private', 'false');\n\n let configPost = Object.assign(\n {},\n {\n baseURL: this.config.baseURL,\n headers: {\n 'Content-Type': 'application/json;charset=utf-8',\n api_access_token: this.config.token,\n },\n }\n );\n configPost.headers = { ...configPost.headers, ...data.getHeaders() };\n\n var result = await axios.post(\n `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,\n data,\n configPost\n );\n\n return result;\n } else {\n let body = {\n content: message.body,\n message_type: 'incoming',\n };\n const { data } = await this.api.post(\n `api/v1/accounts/${this.account_id}/conversations/${conversation.id}/messages`,\n body\n );\n return data;\n }\n } catch (e) {\n return null;\n }\n }\n\n async findContact(query) {\n try {\n const { data } = await this.api.get(`api/v1/accounts/${this.account_id}/contacts/search/?q=${query}`);\n return data;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async createContact(message) {\n let body = {\n inbox_id: this.inbox_id,\n name: message.sender.isMyContact\n ? message.sender.formattedName\n : message.sender.pushname || message.sender.formattedName,\n phone_number: typeof message.sender.id == 'object' ? message.sender.id.user : message.sender.id.split('@')[0],\n };\n body.phone_number = `+${body.phone_number}`;\n var contact = await this.findContact(body.phone_number.replace('+', ''));\n if (contact && contact.meta.count > 0) return contact.payload[0];\n\n try {\n const data = await this.api.post(`api/v1/accounts/${this.account_id}/contacts`, body);\n return data.data.payload.contact;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async findConversation(contact) {\n try {\n const { data } = await this.api.get(\n `api/v1/accounts/${this.account_id}/conversations?inbox_id=${this.inbox_id}&status=all`\n );\n return data.data.payload.find((e) => e.meta.sender.id == contact.id && e.status != 'resolved');\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n\n async createConversation(contact, source_id) {\n var conversation = await this.findConversation(contact);\n if (conversation) return conversation;\n\n let body = {\n source_id: source_id,\n inbox_id: this.inbox_id,\n contact_id: contact.id,\n status: 'open',\n };\n\n try {\n const { data } = await this.api.post(`api/v1/accounts/${this.account_id}/conversations`, body);\n return data;\n } catch (e) {\n console.log(e);\n return null;\n }\n }\n}\n"],"file":"chatWootClient.js"}
|
package/dist/util/functions.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.callWebHook = callWebHook;exports.contactToArray = contactToArray;exports.createFolders = createFolders;exports.getIPAddress = getIPAddress;exports.groupNameToArray = groupNameToArray;exports.groupToArray = groupToArray;exports.startAllSessions = startAllSessions;exports.startHelper = startHelper;exports.strToBool = strToBool;exports.unlinkAsync = void 0;
|
|
1
|
+
"use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.callWebHook = callWebHook;exports.contactToArray = contactToArray;exports.createFolders = createFolders;exports.getIPAddress = getIPAddress;exports.groupNameToArray = groupNameToArray;exports.groupToArray = groupToArray;exports.setMaxListners = setMaxListners;exports.startAllSessions = startAllSessions;exports.startHelper = startHelper;exports.strToBool = strToBool;exports.unlinkAsync = void 0;
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
|
|
@@ -18,7 +18,8 @@ var _path = _interopRequireDefault(require("path"));
|
|
|
18
18
|
var _fs = _interopRequireDefault(require("fs"));
|
|
19
19
|
var _util = require("util");
|
|
20
20
|
var _index = require("../mapper/index");
|
|
21
|
-
var _config = _interopRequireDefault(require("../config.json"));
|
|
21
|
+
var _config = _interopRequireDefault(require("../config.json"));
|
|
22
|
+
var _sessionUtil = require("./sessionUtil"); /*
|
|
22
23
|
* Copyright 2021 WPPConnect Team
|
|
23
24
|
*
|
|
24
25
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -106,26 +107,30 @@ async function callWebHook(client, req, event, data) {
|
|
|
106
107
|
}
|
|
107
108
|
|
|
108
109
|
async function autoDownload(client, req, message) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
110
|
+
try {
|
|
111
|
+
if (message && (message['mimetype'] || message.isMedia || message.isMMS)) {
|
|
112
|
+
let buffer = await client.decryptFile(message);
|
|
113
|
+
if (req.serverOptions.webhook.uploadS3) {
|
|
114
|
+
var hashName = crypto.randomBytes(24).toString('hex');
|
|
115
|
+
var fileName = `${hashName}.${mime.extension(message.mimetype)}`;
|
|
116
|
+
|
|
117
|
+
const s3 = new aws.S3();
|
|
118
|
+
|
|
119
|
+
var params = {
|
|
120
|
+
Bucket: client.session,
|
|
121
|
+
Key: fileName,
|
|
122
|
+
Body: buffer,
|
|
123
|
+
ACL: 'public-read',
|
|
124
|
+
ContentType: message.mimetype };
|
|
125
|
+
|
|
126
|
+
const data = await s3.upload(params).promise();
|
|
127
|
+
message.fileUrl = data.Location;
|
|
128
|
+
} else {
|
|
129
|
+
message.body = await buffer.toString('base64');
|
|
130
|
+
}
|
|
128
131
|
}
|
|
132
|
+
} catch (e) {
|
|
133
|
+
req.logger.error(e);
|
|
129
134
|
}
|
|
130
135
|
}
|
|
131
136
|
|
|
@@ -171,8 +176,10 @@ async function archive(client, req) {
|
|
|
171
176
|
|
|
172
177
|
try {
|
|
173
178
|
let chats = await client.getAllChats();
|
|
174
|
-
chats
|
|
175
|
-
|
|
179
|
+
if (chats && Array.isArray(chats) && chats.length > 0) {
|
|
180
|
+
chats = chats.filter((c) => !c.archive);
|
|
181
|
+
}
|
|
182
|
+
if (chats && Array.isArray(chats) && chats.length > 0) {
|
|
176
183
|
for (let i = 0; i < chats.length; i++) {
|
|
177
184
|
let date = new Date(chats[i].t * 1000);
|
|
178
185
|
|
|
@@ -230,5 +237,11 @@ function getIPAddress() {
|
|
|
230
237
|
return '0.0.0.0';
|
|
231
238
|
}
|
|
232
239
|
|
|
240
|
+
function setMaxListners(serverOptions) {
|
|
241
|
+
if (serverOptions && Number.isInteger(serverOptions.maxListeners)) {
|
|
242
|
+
process.setMaxListeners(serverOptions.maxListeners);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
|
|
233
246
|
let unlinkAsync = (0, _util.promisify)(_fs.default.unlink);exports.unlinkAsync = unlinkAsync;
|
|
234
247
|
//# sourceMappingURL=functions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/util/functions.js"],"names":["mime","config","webhook","uploadS3","require","crypto","aws","contactToArray","number","isGroup","localArr","Array","isArray","contact","split","push","arrContacts","groupToArray","group","groupNameToArray","callWebHook","client","req","event","data","serverOptions","url","autoDownload","chatId","from","_serialized","Object","assign","session","mapper","enable","prefix","api","post","then","events","includes","readMessage","sendSeen","e","catch","logger","warn","error","message","isMedia","isMMS","buffer","decryptFile","hashName","randomBytes","toString","fileName","extension","mimetype","s3","S3","params","Bucket","Key","Body","ACL","ContentType","upload","promise","fileUrl","Location","body","startAllSessions","host","port","secretKey","startHelper","allUnreadOnStart","sendUnread","archive","info","chats","getAllChatsWithMessages","length","i","j","msgs","ex","sleep","time","Promise","resolve","setTimeout","getAllChats","filter","c","date","Date","t","DaysBetween","daysToArchive","archiveChat","id","Math","floor","random","waitTime","StartDate","endDate","oneDay","start","UTC","getFullYear","getMonth","getDate","end","createFolders","__dirname","path","dirname","dirFiles","fs","existsSync","mkdirSync","dirUpload","strToBool","s","test","getIPAddress","interfaces","networkInterfaces","devName","iface","alias","family","address","internal","unlinkAsync","unlink"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport api from 'axios';\nimport path from 'path';\nimport fs from 'fs';\nimport { promisify } from 'util';\nimport { convert } from '../mapper/index';\nimport config from '../config.json';\n\nlet mime = config.webhook.uploadS3 ? require('mime-types') : null;\nlet crypto = config.webhook.uploadS3 ? require('crypto') : null;\nlet aws = config.webhook.uploadS3 ? require('aws-sdk') : null;\n\nexport function contactToArray(number, isGroup) {\n let localArr = [];\n if (Array.isArray(number)) {\n for (let contact of number) {\n contact = contact.split('@')[0];\n if (contact !== '')\n if (isGroup) localArr.push(`${contact}@g.us`);\n else localArr.push(`${contact}@c.us`);\n }\n } else {\n let arrContacts = number.split(/\\s*[,;]\\s*/g);\n for (let contact of arrContacts) {\n contact = contact.split('@')[0];\n if (contact !== '')\n if (isGroup) localArr.push(`${contact}@g.us`);\n else localArr.push(`${contact}@c.us`);\n }\n }\n\n return localArr;\n}\n\nexport function groupToArray(group) {\n let localArr = [];\n if (Array.isArray(group)) {\n for (let contact of group) {\n contact = contact.split('@')[0];\n if (contact !== '') localArr.push(`${contact}@g.us`);\n }\n } else {\n let arrContacts = group.split(/\\s*[,;]\\s*/g);\n for (let contact of arrContacts) {\n contact = contact.split('@')[0];\n if (contact !== '') localArr.push(`${contact}@g.us`);\n }\n }\n\n return localArr;\n}\n\nexport function groupNameToArray(group) {\n let localArr = [];\n if (Array.isArray(group)) {\n for (const contact of group) {\n if (contact !== '') localArr.push(`${contact}`);\n }\n } else {\n let arrContacts = group.split(/\\s*[,;]\\s*/g);\n for (const contact of arrContacts) {\n if (contact !== '') localArr.push(`${contact}`);\n }\n }\n\n return localArr;\n}\n\nexport async function callWebHook(client, req, event, data) {\n const webhook = client?.config.webhook || req.serverOptions.webhook.url || false;\n if (webhook) {\n if (req.serverOptions.webhook.autoDownload) await autoDownload(client, req, data);\n try {\n const chatId = data.from || data.chatId || (data.chatId ? data.chatId._serialized : null);\n data = Object.assign({ event: event, session: client.session }, data);\n if (req.serverOptions.mapper.enable) data = await convert(req.serverOptions.mapper.prefix, data);\n api\n .post(webhook, data)\n .then(() => {\n try {\n const events = ['unreadmessages', 'onmessage'];\n if (events.includes(event) && req.serverOptions.webhook.readMessage) client.sendSeen(chatId);\n } catch (e) {}\n })\n .catch((e) => {\n req.logger.warn('Error calling Webhook.', e);\n });\n } catch (e) {\n req.logger.error(e);\n }\n }\n}\n\nasync function autoDownload(client, req, message) {\n if (message && (message['mimetype'] || message.isMedia || message.isMMS)) {\n let buffer = await client.decryptFile(message);\n if (req.serverOptions.webhook.uploadS3) {\n var hashName = crypto.randomBytes(24).toString('hex');\n var fileName = `${hashName}.${mime.extension(message.mimetype)}`;\n\n const s3 = new aws.S3();\n\n var params = {\n Bucket: client.session,\n Key: fileName,\n Body: buffer,\n ACL: 'public-read',\n ContentType: message.mimetype,\n };\n const data = await s3.upload(params).promise();\n message.fileUrl = data.Location;\n } else {\n message.body = await buffer.toString('base64');\n }\n }\n}\n\nexport async function startAllSessions(config, logger) {\n try {\n await api.post(`${config.host}:${config.port}/api/${config.secretKey}/start-all`);\n } catch (e) {\n logger.error(e);\n }\n}\n\nexport async function startHelper(client, req) {\n if (req.serverOptions.webhook.allUnreadOnStart) await sendUnread(client, req);\n\n if (req.serverOptions.archive.enable) await archive(client, req);\n}\n\nasync function sendUnread(client, req) {\n req.logger.info(`${client.session} : Inicio enviar mensagens não lidas`);\n\n try {\n const chats = await client.getAllChatsWithMessages(true);\n\n if (chats && chats.length > 0) {\n for (let i = 0; i < chats.length; i++)\n for (let j = 0; j < chats[i].msgs.length; j++) {\n callWebHook(client, req, 'unreadmessages', chats[i].msgs[j]);\n }\n }\n\n req.logger.info(`${client.session} : Fim enviar mensagens não lidas`);\n } catch (ex) {\n req.logger.error(ex);\n }\n}\n\nasync function archive(client, req) {\n async function sleep(time) {\n return new Promise((resolve) => setTimeout(resolve, time * 10));\n }\n\n req.logger.info(`${client.session} : Inicio arquivando chats`);\n\n try {\n let chats = await client.getAllChats();\n chats = chats.filter((c) => !c.archive);\n if (chats && chats.length > 0) {\n for (let i = 0; i < chats.length; i++) {\n let date = new Date(chats[i].t * 1000);\n\n if (DaysBetween(date) > req.serverOptions.archive.daysToArchive) {\n await client.archiveChat(chats[i].id.id || chats[i].id._serialized, true);\n await sleep(Math.floor(Math.random() * req.serverOptions.archive.waitTime + 1));\n }\n }\n }\n req.logger.info(`${client.session} : Fim arquivando chats`);\n } catch (ex) {\n req.logger.error(ex);\n }\n}\n\nfunction DaysBetween(StartDate) {\n let endDate = new Date();\n // The number of milliseconds in all UTC days (no DST)\n const oneDay = 1000 * 60 * 60 * 24;\n\n // A day in UTC always lasts 24 hours (unlike in other time formats)\n const start = Date.UTC(endDate.getFullYear(), endDate.getMonth(), endDate.getDate());\n const end = Date.UTC(StartDate.getFullYear(), StartDate.getMonth(), StartDate.getDate());\n\n // so it's safe to divide by 24 hours\n return (start - end) / oneDay;\n}\n\nexport function createFolders() {\n const __dirname = path.resolve(path.dirname(''));\n let dirFiles = path.resolve(__dirname, 'WhatsAppImages');\n if (!fs.existsSync(dirFiles)) {\n fs.mkdirSync(dirFiles);\n }\n\n let dirUpload = path.resolve(__dirname, 'uploads');\n if (!fs.existsSync(dirUpload)) {\n fs.mkdirSync(dirUpload);\n }\n}\n\nexport function strToBool(s) {\n return /^(true|1)$/i.test(s);\n}\n\nexport function getIPAddress() {\n var interfaces = require('os').networkInterfaces();\n for (var devName in interfaces) {\n var iface = interfaces[devName];\n for (var i = 0; i < iface.length; i++) {\n var alias = iface[i];\n if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) return alias.address;\n }\n }\n return '0.0.0.0';\n}\n\nexport let unlinkAsync = promisify(fs.unlink);\n"],"file":"functions.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/util/functions.js"],"names":["mime","config","webhook","uploadS3","require","crypto","aws","contactToArray","number","isGroup","localArr","Array","isArray","contact","split","push","arrContacts","groupToArray","group","groupNameToArray","callWebHook","client","req","event","data","serverOptions","url","autoDownload","chatId","from","_serialized","Object","assign","session","mapper","enable","prefix","api","post","then","events","includes","readMessage","sendSeen","e","catch","logger","warn","error","message","isMedia","isMMS","buffer","decryptFile","hashName","randomBytes","toString","fileName","extension","mimetype","s3","S3","params","Bucket","Key","Body","ACL","ContentType","upload","promise","fileUrl","Location","body","startAllSessions","host","port","secretKey","startHelper","allUnreadOnStart","sendUnread","archive","info","chats","getAllChatsWithMessages","length","i","j","msgs","ex","sleep","time","Promise","resolve","setTimeout","getAllChats","filter","c","date","Date","t","DaysBetween","daysToArchive","archiveChat","id","Math","floor","random","waitTime","StartDate","endDate","oneDay","start","UTC","getFullYear","getMonth","getDate","end","createFolders","__dirname","path","dirname","dirFiles","fs","existsSync","mkdirSync","dirUpload","strToBool","s","test","getIPAddress","interfaces","networkInterfaces","devName","iface","alias","family","address","internal","setMaxListners","Number","isInteger","maxListeners","process","setMaxListeners","unlinkAsync","unlink"],"mappings":"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","sourcesContent":["/*\n * Copyright 2021 WPPConnect Team\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport api from 'axios';\nimport path from 'path';\nimport fs from 'fs';\nimport { promisify } from 'util';\nimport { convert } from '../mapper/index';\nimport config from '../config.json';\nimport { eventEmitter } from './sessionUtil';\n\nlet mime = config.webhook.uploadS3 ? require('mime-types') : null;\nlet crypto = config.webhook.uploadS3 ? require('crypto') : null;\nlet aws = config.webhook.uploadS3 ? require('aws-sdk') : null;\n\nexport function contactToArray(number, isGroup) {\n let localArr = [];\n if (Array.isArray(number)) {\n for (let contact of number) {\n contact = contact.split('@')[0];\n if (contact !== '')\n if (isGroup) localArr.push(`${contact}@g.us`);\n else localArr.push(`${contact}@c.us`);\n }\n } else {\n let arrContacts = number.split(/\\s*[,;]\\s*/g);\n for (let contact of arrContacts) {\n contact = contact.split('@')[0];\n if (contact !== '')\n if (isGroup) localArr.push(`${contact}@g.us`);\n else localArr.push(`${contact}@c.us`);\n }\n }\n\n return localArr;\n}\n\nexport function groupToArray(group) {\n let localArr = [];\n if (Array.isArray(group)) {\n for (let contact of group) {\n contact = contact.split('@')[0];\n if (contact !== '') localArr.push(`${contact}@g.us`);\n }\n } else {\n let arrContacts = group.split(/\\s*[,;]\\s*/g);\n for (let contact of arrContacts) {\n contact = contact.split('@')[0];\n if (contact !== '') localArr.push(`${contact}@g.us`);\n }\n }\n\n return localArr;\n}\n\nexport function groupNameToArray(group) {\n let localArr = [];\n if (Array.isArray(group)) {\n for (const contact of group) {\n if (contact !== '') localArr.push(`${contact}`);\n }\n } else {\n let arrContacts = group.split(/\\s*[,;]\\s*/g);\n for (const contact of arrContacts) {\n if (contact !== '') localArr.push(`${contact}`);\n }\n }\n\n return localArr;\n}\n\nexport async function callWebHook(client, req, event, data) {\n const webhook = client?.config.webhook || req.serverOptions.webhook.url || false;\n if (webhook) {\n if (req.serverOptions.webhook.autoDownload) await autoDownload(client, req, data);\n try {\n const chatId = data.from || data.chatId || (data.chatId ? data.chatId._serialized : null);\n data = Object.assign({ event: event, session: client.session }, data);\n if (req.serverOptions.mapper.enable) data = await convert(req.serverOptions.mapper.prefix, data);\n api\n .post(webhook, data)\n .then(() => {\n try {\n const events = ['unreadmessages', 'onmessage'];\n if (events.includes(event) && req.serverOptions.webhook.readMessage) client.sendSeen(chatId);\n } catch (e) {}\n })\n .catch((e) => {\n req.logger.warn('Error calling Webhook.', e);\n });\n } catch (e) {\n req.logger.error(e);\n }\n }\n}\n\nasync function autoDownload(client, req, message) {\n try {\n if (message && (message['mimetype'] || message.isMedia || message.isMMS)) {\n let buffer = await client.decryptFile(message);\n if (req.serverOptions.webhook.uploadS3) {\n var hashName = crypto.randomBytes(24).toString('hex');\n var fileName = `${hashName}.${mime.extension(message.mimetype)}`;\n\n const s3 = new aws.S3();\n\n var params = {\n Bucket: client.session,\n Key: fileName,\n Body: buffer,\n ACL: 'public-read',\n ContentType: message.mimetype,\n };\n const data = await s3.upload(params).promise();\n message.fileUrl = data.Location;\n } else {\n message.body = await buffer.toString('base64');\n }\n }\n } catch (e) {\n req.logger.error(e);\n }\n}\n\nexport async function startAllSessions(config, logger) {\n try {\n await api.post(`${config.host}:${config.port}/api/${config.secretKey}/start-all`);\n } catch (e) {\n logger.error(e);\n }\n}\n\nexport async function startHelper(client, req) {\n if (req.serverOptions.webhook.allUnreadOnStart) await sendUnread(client, req);\n\n if (req.serverOptions.archive.enable) await archive(client, req);\n}\n\nasync function sendUnread(client, req) {\n req.logger.info(`${client.session} : Inicio enviar mensagens não lidas`);\n\n try {\n const chats = await client.getAllChatsWithMessages(true);\n\n if (chats && chats.length > 0) {\n for (let i = 0; i < chats.length; i++)\n for (let j = 0; j < chats[i].msgs.length; j++) {\n callWebHook(client, req, 'unreadmessages', chats[i].msgs[j]);\n }\n }\n\n req.logger.info(`${client.session} : Fim enviar mensagens não lidas`);\n } catch (ex) {\n req.logger.error(ex);\n }\n}\n\nasync function archive(client, req) {\n async function sleep(time) {\n return new Promise((resolve) => setTimeout(resolve, time * 10));\n }\n\n req.logger.info(`${client.session} : Inicio arquivando chats`);\n\n try {\n let chats = await client.getAllChats();\n if (chats && Array.isArray(chats) && chats.length > 0) {\n chats = chats.filter((c) => !c.archive);\n }\n if (chats && Array.isArray(chats) && chats.length > 0) {\n for (let i = 0; i < chats.length; i++) {\n let date = new Date(chats[i].t * 1000);\n\n if (DaysBetween(date) > req.serverOptions.archive.daysToArchive) {\n await client.archiveChat(chats[i].id.id || chats[i].id._serialized, true);\n await sleep(Math.floor(Math.random() * req.serverOptions.archive.waitTime + 1));\n }\n }\n }\n req.logger.info(`${client.session} : Fim arquivando chats`);\n } catch (ex) {\n req.logger.error(ex);\n }\n}\n\nfunction DaysBetween(StartDate) {\n let endDate = new Date();\n // The number of milliseconds in all UTC days (no DST)\n const oneDay = 1000 * 60 * 60 * 24;\n\n // A day in UTC always lasts 24 hours (unlike in other time formats)\n const start = Date.UTC(endDate.getFullYear(), endDate.getMonth(), endDate.getDate());\n const end = Date.UTC(StartDate.getFullYear(), StartDate.getMonth(), StartDate.getDate());\n\n // so it's safe to divide by 24 hours\n return (start - end) / oneDay;\n}\n\nexport function createFolders() {\n const __dirname = path.resolve(path.dirname(''));\n let dirFiles = path.resolve(__dirname, 'WhatsAppImages');\n if (!fs.existsSync(dirFiles)) {\n fs.mkdirSync(dirFiles);\n }\n\n let dirUpload = path.resolve(__dirname, 'uploads');\n if (!fs.existsSync(dirUpload)) {\n fs.mkdirSync(dirUpload);\n }\n}\n\nexport function strToBool(s) {\n return /^(true|1)$/i.test(s);\n}\n\nexport function getIPAddress() {\n var interfaces = require('os').networkInterfaces();\n for (var devName in interfaces) {\n var iface = interfaces[devName];\n for (var i = 0; i < iface.length; i++) {\n var alias = iface[i];\n if (alias.family === 'IPv4' && alias.address !== '127.0.0.1' && !alias.internal) return alias.address;\n }\n }\n return '0.0.0.0';\n}\n\nexport function setMaxListners(serverOptions) {\n if (serverOptions && Number.isInteger(serverOptions.maxListeners)) {\n process.setMaxListeners(serverOptions.maxListeners);\n }\n}\n\nexport let unlinkAsync = promisify(fs.unlink);\n"],"file":"functions.js"}
|
|
@@ -21,7 +21,7 @@ var MongodbTokenStore = function (client) {
|
|
|
21
21
|
|
|
22
22
|
if (tk) {
|
|
23
23
|
token._id = tk._id;
|
|
24
|
-
return (await
|
|
24
|
+
return (await _token.default.updateOne({ _id: tk._id }, token)) ? true : false;
|
|
25
25
|
} else {
|
|
26
26
|
return (await token.save()) ? true : false;
|
|
27
27
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/util/tokenStore/mongodbTokenStory.js"],"names":["MongodbTokenStore","client","tokenStore","getToken","sessionName","result","Token","findOne","JSON","parse","stringify","config","webhook","setToken","tokenData","token","tk","_id","updateOne","save","removeToken","deleteOne","listTokens","find","map","m","module","exports"],"mappings":"kGAAA;;AAEA,IAAIA,iBAAiB,GAAG,UAAUC,MAAV,EAAkB;AACxC,OAAKC,UAAL,GAAkB;AAChBC,IAAAA,QAAQ,EAAE,OAAOC,WAAP,KAAuB;AAC/B,UAAIC,MAAM,GAAG,MAAMC,eAAMC,OAAN,CAAc,EAAEH,WAAF,EAAd,CAAnB;AACA,UAAIC,MAAM,KAAK,IAAf,EAAqB,OAAOA,MAAP;AACrBA,MAAAA,MAAM,GAAGG,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAeL,MAAf,CAAX,CAAT;AACAA,MAAAA,MAAM,CAACM,MAAP,GAAgBH,IAAI,CAACC,KAAL,CAAWJ,MAAM,CAACM,MAAlB,CAAhB;AACAN,MAAAA,MAAM,CAACM,MAAP,CAAcC,OAAd,GAAwBP,MAAM,CAACO,OAA/B;AACAX,MAAAA,MAAM,CAACU,MAAP,GAAgBN,MAAM,CAACM,MAAvB;AACA,aAAON,MAAP;AACD,KATe;AAUhBQ,IAAAA,QAAQ,EAAE,OAAOT,WAAP,EAAoBU,SAApB,KAAkC;AAC1C,YAAMC,KAAK,GAAG,IAAIT,cAAJ,CAAUQ,SAAV,CAAd;AACAC,MAAAA,KAAK,CAACX,WAAN,GAAoBA,WAApB;AACAW,MAAAA,KAAK,CAACH,OAAN,GAAgBX,MAAM,CAACU,MAAP,CAAcC,OAA9B;AACAG,MAAAA,KAAK,CAACJ,MAAN,GAAeH,IAAI,CAACE,SAAL,CAAeT,MAAM,CAACU,MAAtB,CAAf;;AAEA,UAAIK,EAAE,GAAG,MAAMV,eAAMC,OAAN,CAAc,EAAEH,WAAF,EAAd,CAAf;;AAEA,UAAIY,EAAJ,EAAQ;AACND,QAAAA,KAAK,CAACE,GAAN,GAAYD,EAAE,CAACC,GAAf;AACA,eAAO,CAAC,
|
|
1
|
+
{"version":3,"sources":["../../../src/util/tokenStore/mongodbTokenStory.js"],"names":["MongodbTokenStore","client","tokenStore","getToken","sessionName","result","Token","findOne","JSON","parse","stringify","config","webhook","setToken","tokenData","token","tk","_id","updateOne","save","removeToken","deleteOne","listTokens","find","map","m","module","exports"],"mappings":"kGAAA;;AAEA,IAAIA,iBAAiB,GAAG,UAAUC,MAAV,EAAkB;AACxC,OAAKC,UAAL,GAAkB;AAChBC,IAAAA,QAAQ,EAAE,OAAOC,WAAP,KAAuB;AAC/B,UAAIC,MAAM,GAAG,MAAMC,eAAMC,OAAN,CAAc,EAAEH,WAAF,EAAd,CAAnB;AACA,UAAIC,MAAM,KAAK,IAAf,EAAqB,OAAOA,MAAP;AACrBA,MAAAA,MAAM,GAAGG,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAeL,MAAf,CAAX,CAAT;AACAA,MAAAA,MAAM,CAACM,MAAP,GAAgBH,IAAI,CAACC,KAAL,CAAWJ,MAAM,CAACM,MAAlB,CAAhB;AACAN,MAAAA,MAAM,CAACM,MAAP,CAAcC,OAAd,GAAwBP,MAAM,CAACO,OAA/B;AACAX,MAAAA,MAAM,CAACU,MAAP,GAAgBN,MAAM,CAACM,MAAvB;AACA,aAAON,MAAP;AACD,KATe;AAUhBQ,IAAAA,QAAQ,EAAE,OAAOT,WAAP,EAAoBU,SAApB,KAAkC;AAC1C,YAAMC,KAAK,GAAG,IAAIT,cAAJ,CAAUQ,SAAV,CAAd;AACAC,MAAAA,KAAK,CAACX,WAAN,GAAoBA,WAApB;AACAW,MAAAA,KAAK,CAACH,OAAN,GAAgBX,MAAM,CAACU,MAAP,CAAcC,OAA9B;AACAG,MAAAA,KAAK,CAACJ,MAAN,GAAeH,IAAI,CAACE,SAAL,CAAeT,MAAM,CAACU,MAAtB,CAAf;;AAEA,UAAIK,EAAE,GAAG,MAAMV,eAAMC,OAAN,CAAc,EAAEH,WAAF,EAAd,CAAf;;AAEA,UAAIY,EAAJ,EAAQ;AACND,QAAAA,KAAK,CAACE,GAAN,GAAYD,EAAE,CAACC,GAAf;AACA,eAAO,CAAC,MAAMX,eAAMY,SAAN,CAAgB,EAAED,GAAG,EAAED,EAAE,CAACC,GAAV,EAAhB,EAAiCF,KAAjC,CAAP,IAAkD,IAAlD,GAAyD,KAAhE;AACD,OAHD,MAGO;AACL,eAAO,CAAC,MAAMA,KAAK,CAACI,IAAN,EAAP,IAAuB,IAAvB,GAA8B,KAArC;AACD;AACF,KAxBe;AAyBhBC,IAAAA,WAAW,EAAE,OAAOhB,WAAP,KAAuB;AAClC,aAAO,CAAC,MAAME,eAAMe,SAAN,CAAgB,EAAEjB,WAAF,EAAhB,CAAP,IAA2C,IAA3C,GAAkD,KAAzD;AACD,KA3Be;AA4BhBkB,IAAAA,UAAU,EAAE,YAAY;AACtB,YAAMjB,MAAM,GAAG,MAAMC,eAAMiB,IAAN,EAArB;AACA,aAAOlB,MAAM,CAACmB,GAAP,CAAW,CAACC,CAAD,KAAOA,CAAC,CAACrB,WAApB,CAAP;AACD,KA/Be,EAAlB;;AAiCD,CAlCD;;AAoCAsB,MAAM,CAACC,OAAP,GAAiB3B,iBAAjB","sourcesContent":["import Token from './model/token';\n\nvar MongodbTokenStore = function (client) {\n this.tokenStore = {\n getToken: async (sessionName) => {\n let result = await Token.findOne({ sessionName });\n if (result === null) return result;\n result = JSON.parse(JSON.stringify(result));\n result.config = JSON.parse(result.config);\n result.config.webhook = result.webhook;\n client.config = result.config;\n return result;\n },\n setToken: async (sessionName, tokenData) => {\n const token = new Token(tokenData);\n token.sessionName = sessionName;\n token.webhook = client.config.webhook;\n token.config = JSON.stringify(client.config);\n\n let tk = await Token.findOne({ sessionName });\n\n if (tk) {\n token._id = tk._id;\n return (await Token.updateOne({ _id: tk._id }, token)) ? true : false;\n } else {\n return (await token.save()) ? true : false;\n }\n },\n removeToken: async (sessionName) => {\n return (await Token.deleteOne({ sessionName })) ? true : false;\n },\n listTokens: async () => {\n const result = await Token.find();\n return result.map((m) => m.sessionName);\n },\n };\n};\n\nmodule.exports = MongodbTokenStore;\n"],"file":"mongodbTokenStory.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wppconnect/server",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.22",
|
|
4
4
|
"description": "Projeto feito para autenticar a automomacao do WhatsappWeb com multi-clientes de forma dinamica. Backend feito em Nodejs(express, socketio), FrontEnd (ReactJS)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"author": "kingaspx",
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@wppconnect-team/wppconnect": "^1.12.
|
|
33
|
-
"axios": "^0.
|
|
32
|
+
"@wppconnect-team/wppconnect": "^1.12.7",
|
|
33
|
+
"axios": "^0.26.0",
|
|
34
34
|
"bcrypt": "^5.0.1",
|
|
35
35
|
"cors": "^2.8.5",
|
|
36
|
-
"dotenv": "^
|
|
36
|
+
"dotenv": "^16.0.0",
|
|
37
37
|
"express": "^4.17.1",
|
|
38
38
|
"form-data": "^4.0.0",
|
|
39
39
|
"express-query-boolean": "^2.0.0",
|