@wppconnect/server 1.1.18 → 1.1.21
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/deviceController.js +23 -26
- package/dist/controller/deviceController.js.map +1 -1
- package/dist/controller/sessionController.js +32 -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/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,
|
|
@@ -220,34 +220,32 @@ async function getBlockList(req, res) {
|
|
|
220
220
|
}
|
|
221
221
|
|
|
222
222
|
async function deleteChat(req, res) {
|
|
223
|
-
const { phone
|
|
223
|
+
const { phone } = req.body;
|
|
224
|
+
const session = req.session;
|
|
224
225
|
|
|
225
226
|
try {
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
await req.client.deleteChat(`${phone}@c.us`);
|
|
227
|
+
let results = {};
|
|
228
|
+
for (const contato of phone) {
|
|
229
|
+
results[contato] = await req.client.deleteChat(contato);
|
|
230
230
|
}
|
|
231
|
-
|
|
232
|
-
} catch (
|
|
233
|
-
req
|
|
234
|
-
return res.status(500).json({ status: 'error', message: 'Erro ao deletada conversa' });
|
|
231
|
+
returnSucess(res, session, phone, results);
|
|
232
|
+
} catch (error) {
|
|
233
|
+
returnError(req, res, session, error);
|
|
235
234
|
}
|
|
236
235
|
}
|
|
237
236
|
|
|
238
237
|
async function clearChat(req, res) {
|
|
239
|
-
const { phone
|
|
238
|
+
const { phone } = req.body;
|
|
239
|
+
const session = req.session;
|
|
240
240
|
|
|
241
241
|
try {
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
await req.client.clearChat(`${phone}@c.us`);
|
|
242
|
+
let results = {};
|
|
243
|
+
for (const contato of phone) {
|
|
244
|
+
results[contato] = await req.client.clearChat(contato);
|
|
246
245
|
}
|
|
247
|
-
|
|
248
|
-
} catch (
|
|
249
|
-
req
|
|
250
|
-
return res.status(500).json({ status: 'error', message: 'Error clearing conversation' });
|
|
246
|
+
returnSucess(res, session, phone, results);
|
|
247
|
+
} catch (error) {
|
|
248
|
+
returnError(req, res, session, error);
|
|
251
249
|
}
|
|
252
250
|
}
|
|
253
251
|
|
|
@@ -483,18 +481,17 @@ async function sendMute(req, res) {
|
|
|
483
481
|
}
|
|
484
482
|
|
|
485
483
|
async function sendSeen(req, res) {
|
|
486
|
-
const { phone
|
|
484
|
+
const { phone } = req.body;
|
|
485
|
+
const session = req.session;
|
|
487
486
|
|
|
488
487
|
try {
|
|
489
|
-
let
|
|
490
|
-
for (const contato of
|
|
491
|
-
|
|
488
|
+
let results = [];
|
|
489
|
+
for (const contato of phone) {
|
|
490
|
+
results.push(await req.client.sendSeen(contato));
|
|
492
491
|
}
|
|
493
|
-
|
|
494
|
-
return res.status(200).json({ status: 'success', response: response });
|
|
492
|
+
returnSucess(res, session, phone, results);
|
|
495
493
|
} catch (error) {
|
|
496
|
-
req
|
|
497
|
-
return res.status(500).json({ status: 'error', message: 'Error on send seen' });
|
|
494
|
+
returnError(req, res, session, error);
|
|
498
495
|
}
|
|
499
496
|
}
|
|
500
497
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/controller/deviceController.js"],"names":["returnSucess","res","session","phone","data","status","json","response","message","contact","returnError","req","error","logger","log","setProfileName","name","body","result","client","showAllContacts","contacts","getAllContacts","getAllChats","mapper","e","getAllChatsWithMessages","getAllMessagesInChat","params","isGroup","includeMe","includeNotifications","query","contato","getAllNewMessages","getAllUnreadMessages","getChatById","allMessages","dir","fs","existsSync","mkdirSync","map","type","serverOptions","host","port","t","mime","extension","mimetype","getMessageById","messageId","chatId","user","getBatteryLevel","getHostDevice","phoneNumber","getWid","getPhoneNumber","getBlockList","blocked","split","deleteChat","clearChat","archiveChat","value","deleteMessage","reply","text","messageid","forwardMessages","markUnseenMessage","blockContact","unblockContact","pinChat","state","setProfilePic","file","path","pathFile","getUnreadMessages","getChatIsOnline","getLastSeen","getListMutes","loadAndGetAllMessagesInChat","loadEarlierMessages","sendContactVcard","contactsId","sendMute","time","sendSeen","setChatState","chatstate","setTemporaryMessages","setTyping","startTyping","stopTyping","checkNumberStatus","getContact","getNumberProfile","getProfilePicFromServer","getStatus","setProfileStatus","starMessage","star","chatWoot","clientsArray","isConnected","event","private","message_type","conversation","meta","sender","phone_number","replace","messages","attachments","base_url","config","baseURL","data_url","substring","indexOf","sendFile","content","sendText","console"],"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 fs from 'fs';\nimport { download } from './sessionController';\nimport { contactToArray, unlinkAsync } from '../util/functions';\nimport mime from 'mime-types';\nimport { clientsArray } from '../util/sessionUtil';\n\nfunction returnSucess(res, session, phone, data) {\n res.status(201).json({\n status: 'Success',\n response: {\n message: 'Information retrieved successfully.',\n contact: phone,\n session: session,\n data: data,\n },\n });\n}\n\nfunction returnError(req, res, session, error) {\n req.logger.error(error);\n res.status(400).json({\n status: 'Error',\n response: {\n message: 'Error retrieving information',\n session: session,\n log: error,\n },\n });\n}\n\nexport async function setProfileName(req, res) {\n const { name } = req.body;\n\n if (!name) return res.status(400).json({ status: 'error', message: 'Parameter name is required!' });\n\n try {\n const result = await req.client.setProfileName(name);\n return res.status(200).json({ status: 'success', response: result });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error on set profile name.' });\n }\n}\n\nexport async function showAllContacts(req, res) {\n try {\n const contacts = await req.client.getAllContacts();\n res.status(200).json({ status: 'success', response: contacts });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error fetching contacts' });\n }\n}\n\nexport async function getAllChats(req, res) {\n try {\n const response = await req.client.getAllChats();\n return res.status(200).json({ status: 'success', response: response, mapper: 'chat' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats' });\n }\n}\n\nexport async function getAllChatsWithMessages(req, res) {\n try {\n const response = await req.client.getAllChatsWithMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats whit messages' });\n }\n}\n\nexport async function getAllMessagesInChat(req, res) {\n try {\n let { phone } = req.params;\n const { isGroup = false, includeMe = true, includeNotifications = true } = req.query;\n\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.getAllMessagesInChat(contato, includeMe, includeNotifications);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getAllNewMessages(req, res) {\n try {\n const response = await req.client.getAllNewMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getAllUnreadMessages(req, res) {\n try {\n const response = await req.client.getAllUnreadMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getChatById(req, res) {\n const { phone } = req.params;\n const { isGroup } = req.query;\n\n try {\n let allMessages = {};\n\n if (isGroup) {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@g.us`, true, true);\n } else {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@c.us`, true, true);\n }\n\n let dir = './WhatsAppImages';\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir);\n }\n\n allMessages.map((message) => {\n if (message.type === 'sticker') {\n download(message, req.client, req.logger);\n message.body = `${req.serverOptions.host}:${req.serverOptions.port}/files/file${message.t}.${mime.extension(\n message.mimetype\n )}`;\n }\n });\n\n return res.status(200).json({ status: 'success', response: allMessages });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing chat by Id' });\n }\n}\n\nexport async function getMessageById(req, res) {\n const session = req.session;\n const { messageId } = req.params;\n\n try {\n let result;\n\n result = await req.client.getMessageById(messageId);\n\n returnSucess(res, session, result.chatId.user, result);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function getBatteryLevel(req, res) {\n try {\n let response = await req.client.getBatteryLevel();\n return res.status(200).json({ status: 'Success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving battery status' });\n }\n}\n\nexport async function getHostDevice(req, res) {\n try {\n const response = await req.client.getHostDevice();\n const phoneNumber = await req.client.getWid();\n return res.status(200).json({ status: 'success', response: { ...response, phoneNumber }, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Erro ao recuperar dados do telefone' });\n }\n}\n\nexport async function getPhoneNumber(req, res) {\n try {\n const phoneNumber = await req.client.getWid();\n return res.status(200).json({ status: 'success', response: phoneNumber, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving phone number' });\n }\n}\n\nexport async function getBlockList(req, res) {\n let response = await req.client.getBlockList();\n\n try {\n const blocked = response.map((contato) => {\n return { phone: contato ? contato.split('@')[0] : '' };\n });\n\n return res.status(200).json({ status: 'success', response: blocked });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving blocked contact list' });\n }\n}\n\nexport async function deleteChat(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n if (isGroup) {\n await req.client.deleteChat(`${phone}@g.us`);\n } else {\n await req.client.deleteChat(`${phone}@c.us`);\n }\n return res.status(200).json({ status: 'success', response: { message: 'Conversa deleteada com sucesso' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Erro ao deletada conversa' });\n }\n}\n\nexport async function clearChat(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n if (isGroup) {\n await req.client.clearChat(`${phone}@g.us`);\n } else {\n await req.client.clearChat(`${phone}@c.us`);\n }\n return res.status(200).json({ status: 'success', response: { message: 'Successfully cleared conversation' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error clearing conversation' });\n }\n}\n\nexport async function archiveChat(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n\n try {\n let response;\n if (isGroup) {\n response = await req.client.archiveChat(`${phone}@g.us`, value);\n } else {\n response = await req.client.archiveChat(`${phone}@c.us`, value);\n }\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on archive chat' });\n }\n}\n\nexport async function deleteMessage(req, res) {\n const { phone, messageId } = req.body;\n\n try {\n await req.client.deleteMessage(`${phone}@c.us`, [messageId]);\n\n return res.status(200).json({ status: 'success', response: { message: 'Message deleted' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on delete message' });\n }\n}\n\nexport async function reply(req, res) {\n const { phone, text, messageid } = req.body;\n\n try {\n let response = await req.client.reply(`${phone}@c.us`, text, messageid);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error replying message' });\n }\n}\n\nexport async function forwardMessages(req, res) {\n const { phone, messageId, isGroup = false } = req.body;\n\n try {\n let response;\n\n if (!isGroup) {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n } else {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n }\n\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error forwarding message' });\n }\n}\n\nexport async function markUnseenMessage(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n if (isGroup) {\n await req.client.markUnseenMessage(`${phone}@g.us`);\n } else {\n await req.client.markUnseenMessage(`${phone}@c.us`);\n }\n return res.status(200).json({ status: 'success', response: { message: 'unseen checked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on mark unseen' });\n }\n}\n\nexport async function blockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.blockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact blocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on block contact' });\n }\n}\n\nexport async function unblockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.unblockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact UnBlocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on unlock contact' });\n }\n}\n\nexport async function pinChat(req, res) {\n const { phone, state } = req.body;\n\n try {\n for (const contato of phone) {\n await req.client.pinChat(contato, state === 'true', false);\n }\n\n return res.status(200).json({ status: 'success', response: { message: 'Chat fixed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: e.text || 'Error on pin chat' });\n }\n}\n\nexport async function setProfilePic(req, res) {\n if (!req.file) return res.status(400).json({ status: 'Error', message: 'File parameter is required!' });\n\n try {\n const { path: pathFile } = req.file;\n\n await req.client.setProfilePic(pathFile);\n await unlinkAsync(pathFile);\n\n return res.status(200).json({ status: 'success', response: { message: 'Profile photo successfully changed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing profile photo' });\n }\n}\n\nexport async function getUnreadMessages(req, res) {\n try {\n const response = await req.client.getUnreadMessages(false, false, true);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on open list' });\n }\n}\n\nexport async function getChatIsOnline(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getChatIsOnline(`${phone}@c.us`);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on get chat is online' });\n }\n}\n\nexport async function getLastSeen(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getLastSeen(`${phone}@c.us`);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get chat last seen' });\n }\n}\n\nexport async function getListMutes(req, res) {\n const { type = 'all' } = req.params;\n try {\n const response = await req.client.getListMutes(type);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get list mutes' });\n }\n}\n\nexport async function loadAndGetAllMessagesInChat(req, res) {\n const { phone, includeMe = true, includeNotifications = false } = req.params;\n try {\n const response = await req.client.loadAndGetAllMessagesInChat(`${phone}@c.us`, includeMe, includeNotifications);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on open list' });\n }\n}\nexport async function loadEarlierMessages(req, res) {\n const { phone, includeMe = true, includeNotifications = false } = req.params;\n\n try {\n const response = await req.client.loadEarlierMessages(`${phone}`, includeMe, includeNotifications);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(401).json({ status: 'error', response: 'Error on open list' });\n }\n}\n\nexport async function sendContactVcard(req, res) {\n const { phone, contactsId, name = null, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendContactVcard(`${contato}`, contactsId, name);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send contact vcard' });\n }\n}\n\nexport async function sendMute(req, res) {\n const { phone, time, type = 'hours', isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendMute(`${contato}`, time, type);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send mute' });\n }\n}\n\nexport async function sendSeen(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendSeen(`${contato}`);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send seen' });\n }\n}\n\nexport async function setChatState(req, res) {\n const { phone, chatstate, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setChatState(`${contato}`, chatstate);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send chat state' });\n }\n}\n\nexport async function setTemporaryMessages(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setTemporaryMessages(`${contato}`, value);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set temporary messages' });\n }\n}\n\nexport async function setTyping(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n if (value) response = await req.client.startTyping(contato);\n else response = await req.client.stopTyping(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set typing' });\n }\n}\n\nexport async function checkNumberStatus(req, res) {\n const { phone } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.checkNumberStatus(`${contato}`);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on check number status' });\n }\n}\n\nexport async function getContact(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getContact(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get contact' });\n }\n}\n\nexport async function getAllContacts(req, res) {\n try {\n const response = await req.client.getAllContacts();\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get all constacts' });\n }\n}\n\nexport async function getNumberProfile(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getNumberProfile(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get number profile' });\n }\n}\n\nexport async function getProfilePicFromServer(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getProfilePicFromServer(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get profile pic' });\n }\n}\n\nexport async function getStatus(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getStatus(contato);\n }\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get status' });\n }\n}\n\nexport async function setProfileStatus(req, res) {\n const { status } = req.body;\n try {\n let response = await req.client.setProfileStatus(status);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on set profile status' });\n }\n}\n\nexport async function starMessage(req, res) {\n const { messageId, star = true } = req.body;\n try {\n let response = await req.client.starMessage(messageId, star);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on start message' });\n }\n}\n\nexport async function chatWoot(req, res) {\n const { session } = req.params;\n const client = clientsArray[session];\n if (client == null || client.status !== 'CONNECTED') return;\n try {\n if (await client.isConnected()) {\n const event = req.body.event;\n\n if (event == 'conversation_status_changed' || event == 'conversation_resolved' || req.body.private) {\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n\n const {\n message_type,\n phone = req.body.conversation.meta.sender.phone_number.replace('+', ''),\n message = req.body.conversation.messages[0],\n } = req.body;\n\n if (event != 'message_created' && message_type != 'outgoing') return res.status(200);\n for (const contato of contactToArray(phone, false)) {\n if (message_type == 'outgoing') {\n if (message.attachments) {\n let base_url = `${client.config.chatWoot.baseURL}/${message.attachments[0].data_url.substring(\n message.attachments[0].data_url.indexOf('/rails/') + 1\n )}`;\n await client.sendFile(`${contato}`, base_url, 'file', message.content);\n } else {\n await client.sendText(contato, message.content);\n }\n }\n }\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n } catch (e) {\n console.log(e);\n return res.status(400).json({ status: 'error', message: 'Error on receive chatwoot' });\n }\n}\n"],"file":"deviceController.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/controller/deviceController.js"],"names":["returnSucess","res","session","phone","data","status","json","response","message","contact","returnError","req","error","logger","log","setProfileName","name","body","result","client","showAllContacts","contacts","getAllContacts","getAllChats","mapper","e","getAllChatsWithMessages","getAllMessagesInChat","params","isGroup","includeMe","includeNotifications","query","contato","getAllNewMessages","getAllUnreadMessages","getChatById","allMessages","dir","fs","existsSync","mkdirSync","map","type","serverOptions","host","port","t","mime","extension","mimetype","getMessageById","messageId","chatId","user","getBatteryLevel","getHostDevice","phoneNumber","getWid","getPhoneNumber","getBlockList","blocked","split","deleteChat","results","clearChat","archiveChat","value","deleteMessage","reply","text","messageid","forwardMessages","markUnseenMessage","blockContact","unblockContact","pinChat","state","setProfilePic","file","path","pathFile","getUnreadMessages","getChatIsOnline","getLastSeen","getListMutes","loadAndGetAllMessagesInChat","loadEarlierMessages","sendContactVcard","contactsId","sendMute","time","sendSeen","push","setChatState","chatstate","setTemporaryMessages","setTyping","startTyping","stopTyping","checkNumberStatus","getContact","getNumberProfile","getProfilePicFromServer","getStatus","setProfileStatus","starMessage","star","chatWoot","clientsArray","isConnected","event","private","message_type","conversation","meta","sender","phone_number","replace","messages","attachments","base_url","config","baseURL","data_url","substring","indexOf","sendFile","content","sendText","console"],"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 fs from 'fs';\nimport { download } from './sessionController';\nimport { contactToArray, unlinkAsync } from '../util/functions';\nimport mime from 'mime-types';\nimport { clientsArray } from '../util/sessionUtil';\n\nfunction returnSucess(res, session, phone, data) {\n res.status(201).json({\n status: 'Success',\n response: {\n message: 'Information retrieved successfully.',\n contact: phone,\n session: session,\n data: data,\n },\n });\n}\n\nfunction returnError(req, res, session, error) {\n req.logger.error(error);\n res.status(400).json({\n status: 'Error',\n response: {\n message: 'Error retrieving information',\n session: session,\n log: error,\n },\n });\n}\n\nexport async function setProfileName(req, res) {\n const { name } = req.body;\n\n if (!name) return res.status(400).json({ status: 'error', message: 'Parameter name is required!' });\n\n try {\n const result = await req.client.setProfileName(name);\n return res.status(200).json({ status: 'success', response: result });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error on set profile name.' });\n }\n}\n\nexport async function showAllContacts(req, res) {\n try {\n const contacts = await req.client.getAllContacts();\n res.status(200).json({ status: 'success', response: contacts });\n } catch (error) {\n req.logger.error(error);\n res.status(500).json({ status: 'error', message: 'Error fetching contacts' });\n }\n}\n\nexport async function getAllChats(req, res) {\n try {\n const response = await req.client.getAllChats();\n return res.status(200).json({ status: 'success', response: response, mapper: 'chat' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats' });\n }\n}\n\nexport async function getAllChatsWithMessages(req, res) {\n try {\n const response = await req.client.getAllChatsWithMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all chats whit messages' });\n }\n}\n\nexport async function getAllMessagesInChat(req, res) {\n try {\n let { phone } = req.params;\n const { isGroup = false, includeMe = true, includeNotifications = true } = req.query;\n\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.getAllMessagesInChat(contato, includeMe, includeNotifications);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getAllNewMessages(req, res) {\n try {\n const response = await req.client.getAllNewMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getAllUnreadMessages(req, res) {\n try {\n const response = await req.client.getAllUnreadMessages();\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on get all messages in chat' });\n }\n}\n\nexport async function getChatById(req, res) {\n const { phone } = req.params;\n const { isGroup } = req.query;\n\n try {\n let allMessages = {};\n\n if (isGroup) {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@g.us`, true, true);\n } else {\n allMessages = await req.client.getAllMessagesInChat(`${phone}@c.us`, true, true);\n }\n\n let dir = './WhatsAppImages';\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir);\n }\n\n allMessages.map((message) => {\n if (message.type === 'sticker') {\n download(message, req.client, req.logger);\n message.body = `${req.serverOptions.host}:${req.serverOptions.port}/files/file${message.t}.${mime.extension(\n message.mimetype\n )}`;\n }\n });\n\n return res.status(200).json({ status: 'success', response: allMessages });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing chat by Id' });\n }\n}\n\nexport async function getMessageById(req, res) {\n const session = req.session;\n const { messageId } = req.params;\n\n try {\n let result;\n\n result = await req.client.getMessageById(messageId);\n\n returnSucess(res, session, result.chatId.user, result);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function getBatteryLevel(req, res) {\n try {\n let response = await req.client.getBatteryLevel();\n return res.status(200).json({ status: 'Success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving battery status' });\n }\n}\n\nexport async function getHostDevice(req, res) {\n try {\n const response = await req.client.getHostDevice();\n const phoneNumber = await req.client.getWid();\n return res.status(200).json({ status: 'success', response: { ...response, phoneNumber }, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Erro ao recuperar dados do telefone' });\n }\n}\n\nexport async function getPhoneNumber(req, res) {\n try {\n const phoneNumber = await req.client.getWid();\n return res.status(200).json({ status: 'success', response: phoneNumber, mapper: 'device' });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving phone number' });\n }\n}\n\nexport async function getBlockList(req, res) {\n let response = await req.client.getBlockList();\n\n try {\n const blocked = response.map((contato) => {\n return { phone: contato ? contato.split('@')[0] : '' };\n });\n\n return res.status(200).json({ status: 'success', response: blocked });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error retrieving blocked contact list' });\n }\n}\n\nexport async function deleteChat(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = {};\n for (const contato of phone) {\n results[contato] = await req.client.deleteChat(contato);\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function clearChat(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = {};\n for (const contato of phone) {\n results[contato] = await req.client.clearChat(contato);\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function archiveChat(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n\n try {\n let response;\n if (isGroup) {\n response = await req.client.archiveChat(`${phone}@g.us`, value);\n } else {\n response = await req.client.archiveChat(`${phone}@c.us`, value);\n }\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on archive chat' });\n }\n}\n\nexport async function deleteMessage(req, res) {\n const { phone, messageId } = req.body;\n\n try {\n await req.client.deleteMessage(`${phone}@c.us`, [messageId]);\n\n return res.status(200).json({ status: 'success', response: { message: 'Message deleted' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on delete message' });\n }\n}\n\nexport async function reply(req, res) {\n const { phone, text, messageid } = req.body;\n\n try {\n let response = await req.client.reply(`${phone}@c.us`, text, messageid);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error replying message' });\n }\n}\n\nexport async function forwardMessages(req, res) {\n const { phone, messageId, isGroup = false } = req.body;\n\n try {\n let response;\n\n if (!isGroup) {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n } else {\n response = await req.client.forwardMessages(`${phone}`, [messageId], false);\n }\n\n return res.status(201).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error forwarding message' });\n }\n}\n\nexport async function markUnseenMessage(req, res) {\n const { phone, isGroup = false } = req.body;\n\n try {\n if (isGroup) {\n await req.client.markUnseenMessage(`${phone}@g.us`);\n } else {\n await req.client.markUnseenMessage(`${phone}@c.us`);\n }\n return res.status(200).json({ status: 'success', response: { message: 'unseen checked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on mark unseen' });\n }\n}\n\nexport async function blockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.blockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact blocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on block contact' });\n }\n}\n\nexport async function unblockContact(req, res) {\n const { phone } = req.body;\n\n try {\n await req.client.unblockContact(`${phone}`);\n return res.status(200).json({ status: 'success', response: { message: 'Contact UnBlocked' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on unlock contact' });\n }\n}\n\nexport async function pinChat(req, res) {\n const { phone, state } = req.body;\n\n try {\n for (const contato of phone) {\n await req.client.pinChat(contato, state === 'true', false);\n }\n\n return res.status(200).json({ status: 'success', response: { message: 'Chat fixed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: e.text || 'Error on pin chat' });\n }\n}\n\nexport async function setProfilePic(req, res) {\n if (!req.file) return res.status(400).json({ status: 'Error', message: 'File parameter is required!' });\n\n try {\n const { path: pathFile } = req.file;\n\n await req.client.setProfilePic(pathFile);\n await unlinkAsync(pathFile);\n\n return res.status(200).json({ status: 'success', response: { message: 'Profile photo successfully changed' } });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error changing profile photo' });\n }\n}\n\nexport async function getUnreadMessages(req, res) {\n try {\n const response = await req.client.getUnreadMessages(false, false, true);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on open list' });\n }\n}\n\nexport async function getChatIsOnline(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getChatIsOnline(`${phone}@c.us`);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', response: 'Error on get chat is online' });\n }\n}\n\nexport async function getLastSeen(req, res) {\n const { phone } = req.params;\n try {\n const response = await req.client.getLastSeen(`${phone}@c.us`);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get chat last seen' });\n }\n}\n\nexport async function getListMutes(req, res) {\n const { type = 'all' } = req.params;\n try {\n const response = await req.client.getListMutes(type);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on get list mutes' });\n }\n}\n\nexport async function loadAndGetAllMessagesInChat(req, res) {\n const { phone, includeMe = true, includeNotifications = false } = req.params;\n try {\n const response = await req.client.loadAndGetAllMessagesInChat(`${phone}@c.us`, includeMe, includeNotifications);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', response: 'Error on open list' });\n }\n}\nexport async function loadEarlierMessages(req, res) {\n const { phone, includeMe = true, includeNotifications = false } = req.params;\n\n try {\n const response = await req.client.loadEarlierMessages(`${phone}`, includeMe, includeNotifications);\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(401).json({ status: 'error', response: 'Error on open list' });\n }\n}\n\nexport async function sendContactVcard(req, res) {\n const { phone, contactsId, name = null, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendContactVcard(`${contato}`, contactsId, name);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send contact vcard' });\n }\n}\n\nexport async function sendMute(req, res) {\n const { phone, time, type = 'hours', isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.sendMute(`${contato}`, time, type);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send mute' });\n }\n}\n\nexport async function sendSeen(req, res) {\n const { phone } = req.body;\n const session = req.session;\n\n try {\n let results = [];\n for (const contato of phone) {\n results.push(await req.client.sendSeen(contato));\n }\n returnSucess(res, session, phone, results);\n } catch (error) {\n returnError(req, res, session, error);\n }\n}\n\nexport async function setChatState(req, res) {\n const { phone, chatstate, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setChatState(`${contato}`, chatstate);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on send chat state' });\n }\n}\n\nexport async function setTemporaryMessages(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n response = await req.client.setTemporaryMessages(`${contato}`, value);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set temporary messages' });\n }\n}\n\nexport async function setTyping(req, res) {\n const { phone, value = true, isGroup = false } = req.body;\n try {\n let response;\n for (const contato of contactToArray(phone, isGroup)) {\n if (value) response = await req.client.startTyping(contato);\n else response = await req.client.stopTyping(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on set typing' });\n }\n}\n\nexport async function checkNumberStatus(req, res) {\n const { phone } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.checkNumberStatus(`${contato}`);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on check number status' });\n }\n}\n\nexport async function getContact(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getContact(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get contact' });\n }\n}\n\nexport async function getAllContacts(req, res) {\n try {\n const response = await req.client.getAllContacts();\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get all constacts' });\n }\n}\n\nexport async function getNumberProfile(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getNumberProfile(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get number profile' });\n }\n}\n\nexport async function getProfilePicFromServer(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getProfilePicFromServer(contato);\n }\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get profile pic' });\n }\n}\n\nexport async function getStatus(req, res) {\n const { phone = true } = req.params;\n try {\n let response;\n for (const contato of contactToArray(phone, false)) {\n response = await req.client.getStatus(contato);\n }\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on get status' });\n }\n}\n\nexport async function setProfileStatus(req, res) {\n const { status } = req.body;\n try {\n let response = await req.client.setProfileStatus(status);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (e) {\n req.logger.error(e);\n return res.status(500).json({ status: 'error', message: 'Error on set profile status' });\n }\n}\n\nexport async function starMessage(req, res) {\n const { messageId, star = true } = req.body;\n try {\n let response = await req.client.starMessage(messageId, star);\n\n return res.status(200).json({ status: 'success', response: response });\n } catch (error) {\n req.logger.error(error);\n return res.status(500).json({ status: 'error', message: 'Error on start message' });\n }\n}\n\nexport async function chatWoot(req, res) {\n const { session } = req.params;\n const client = clientsArray[session];\n if (client == null || client.status !== 'CONNECTED') return;\n try {\n if (await client.isConnected()) {\n const event = req.body.event;\n\n if (event == 'conversation_status_changed' || event == 'conversation_resolved' || req.body.private) {\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n\n const {\n message_type,\n phone = req.body.conversation.meta.sender.phone_number.replace('+', ''),\n message = req.body.conversation.messages[0],\n } = req.body;\n\n if (event != 'message_created' && message_type != 'outgoing') return res.status(200);\n for (const contato of contactToArray(phone, false)) {\n if (message_type == 'outgoing') {\n if (message.attachments) {\n let base_url = `${client.config.chatWoot.baseURL}/${message.attachments[0].data_url.substring(\n message.attachments[0].data_url.indexOf('/rails/') + 1\n )}`;\n await client.sendFile(`${contato}`, base_url, 'file', message.content);\n } else {\n await client.sendText(contato, message.content);\n }\n }\n }\n return res.status(200).json({ status: 'success', message: 'Success on receive chatwoot' });\n }\n } catch (e) {\n console.log(e);\n return res.status(400).json({ status: 'error', message: 'Error on receive chatwoot' });\n }\n}\n"],"file":"deviceController.js"}
|
|
@@ -198,23 +198,40 @@ async function checkConnectionSession(req, res) {
|
|
|
198
198
|
}
|
|
199
199
|
|
|
200
200
|
async function downloadMediaByMessage(req, res) {
|
|
201
|
+
const client = req.client;
|
|
201
202
|
const { messageId } = req.body;
|
|
202
203
|
|
|
203
|
-
let
|
|
204
|
-
|
|
205
|
-
if (messageId.isMedia === true) {
|
|
206
|
-
await download(messageId, req.client, req.logger, req.logger);
|
|
207
|
-
result = `${req.serverOptions.host}:${req.serverOptions.port}/files/file${messageId.t}.${_mimeTypes.default.extension(
|
|
208
|
-
messageId.mimetype)
|
|
209
|
-
}`;
|
|
210
|
-
} else if (messageId.type === 'ptt' || messageId.type === 'sticker') {
|
|
211
|
-
await download(messageId, req.client);
|
|
212
|
-
result = `${req.serverOptions.host}:${req.serverOptions.port}/files/file${messageId.t}.${_mimeTypes.default.extension(
|
|
213
|
-
messageId.mimetype)
|
|
214
|
-
}`;
|
|
215
|
-
}
|
|
204
|
+
let message;
|
|
216
205
|
|
|
217
|
-
|
|
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' });
|
|
217
|
+
|
|
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' });
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
const buffer = await client.decryptFile(message);
|
|
226
|
+
|
|
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' });
|
|
233
|
+
|
|
234
|
+
}
|
|
218
235
|
}
|
|
219
236
|
|
|
220
237
|
async function getMediaByMessage(req, res) {
|
|
@@ -238,7 +255,7 @@ async function getMediaByMessage(req, res) {
|
|
|
238
255
|
|
|
239
256
|
const buffer = await client.decryptFile(message);
|
|
240
257
|
|
|
241
|
-
return res.status(200).json(
|
|
258
|
+
return res.status(200).json({ base64: buffer.toString('base64'), mimetype: message.mimetype });
|
|
242
259
|
} catch (ex) {
|
|
243
260
|
req.logger.error(ex);
|
|
244
261
|
return res.status(500).json({ status: 'error', message: 'The session is not active' });
|
|
@@ -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","host","port","getMediaByMessage","getMessageById","isMMS","toString","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 { messageId } = req.body;\n\n let result = '';\n\n if (messageId.isMedia === true) {\n await download(messageId, req.client, req.logger, req.logger);\n result = `${req.serverOptions.host}:${req.serverOptions.port}/files/file${messageId.t}.${mime.extension(\n messageId.mimetype\n )}`;\n } else if (messageId.type === 'ptt' || messageId.type === 'sticker') {\n await download(messageId, req.client);\n result = `${req.serverOptions.host}:${req.serverOptions.port}/files/file${messageId.t}.${mime.extension(\n messageId.mimetype\n )}`;\n }\n\n return res.status(200).json(result);\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(await buffer.toString('base64'));\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"}
|
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.21",
|
|
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.6",
|
|
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",
|