alicezetion 1.7.1 → 1.7.2
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/.cache/replit/__replit_disk_meta.json +1 -1
- package/.cache/replit/nix/env.json +1 -1
- package/Extra/Database/index.js +399 -0
- package/Extra/Database/methods.js +286 -0
- package/Extra/ExtraAddons.js +213 -0
- package/Extra/ExtraGetThread.js +1 -0
- package/Extra/ExtraUptimeRobot.js +59 -0
- package/Extra/PM2/ecosystem.config.js +23 -0
- package/Extra/Src/Last-Run.js +48 -0
- package/Language/index.json +151 -0
- package/StateCrypt.js +22 -0
- package/broadcast.js +42 -0
- package/index.js +654 -119
- package/logger.js +21 -0
- package/package.json +37 -25
- package/replit.nix +3 -4
- package/src/addExternalModule.js +13 -5
- package/src/addUserToGroup.js +36 -12
- package/src/changeAdminStatus.js +85 -37
- package/src/changeArchivedStatus.js +15 -9
- package/src/changeAvt.js +91 -0
- package/src/changeBio.js +13 -8
- package/src/changeBlockedStatus.js +14 -8
- package/src/changeGroupImage.js +28 -13
- package/src/changeNickname.js +22 -11
- package/src/changeThreadColor.js +16 -10
- package/src/changeThreadEmoji.js +18 -9
- package/src/chat.js +401 -280
- package/src/createNewGroup.js +18 -10
- package/src/createPoll.js +17 -11
- package/src/deleteMessage.js +17 -10
- package/src/deleteThread.js +17 -10
- package/src/forwardAttachment.js +15 -9
- package/src/getAccessToken.js +32 -0
- package/src/getCurrentUserID.js +1 -1
- package/src/getEmojiUrl.js +3 -2
- package/src/getFriendsList.js +18 -10
- package/src/getMessage.js +84 -0
- package/src/getThreadHistory.js +156 -59
- package/src/getThreadHistoryDeprecated.js +26 -15
- package/src/getThreadInfo.js +68 -42
- package/src/getThreadInfoDeprecated.js +25 -13
- package/src/getThreadList.js +112 -53
- package/src/getThreadListDeprecated.js +30 -12
- package/src/getThreadPictures.js +25 -13
- package/src/getUserID.js +9 -7
- package/src/getUserInfo.js +12 -10
- package/src/getUserInfoV2.js +35 -0
- package/src/handleFriendRequest.js +36 -35
- package/src/handleMessageRequest.js +18 -10
- package/src/httpGet.js +20 -13
- package/src/httpPost.js +19 -13
- package/src/httpPostFormData.js +46 -0
- package/src/listenMqtt.js +1224 -621
- package/src/logout.js +18 -13
- package/src/markAsDelivered.js +17 -10
- package/src/markAsRead.js +36 -24
- package/src/markAsSeen.js +22 -12
- package/src/muteThread.js +15 -9
- package/src/{setMessageReaction.js → react.js} +20 -9
- package/src/removeUserFromGroup.js +38 -11
- package/src/resolvePhotoUrl.js +9 -6
- package/src/searchForThread.js +14 -8
- package/src/{markAsReadAll.js → seen.js} +17 -10
- package/src/sendTypingIndicator.js +44 -19
- package/src/setPostReaction.js +63 -22
- package/src/setTitle.js +22 -12
- package/src/threadColors.js +17 -19
- package/src/unfriend.js +15 -9
- package/src/{unsendMessage.js → unsend.js} +9 -8
- package/utils.js +120 -27
- package/.travis.yml +0 -6
- package/src/forwardMessage.js +0 -0
- package/src/listen.js +0 -553
- package/src/listenMqtt-Test.js +0 -687
- package/src/sendMessage.js +0 -315
- package/test/data/shareAttach.js +0 -146
- package/test/data/something.mov +0 -0
- package/test/data/test.png +0 -0
- package/test/data/test.txt +0 -7
- package/test/example-config.json +0 -18
- package/test/test-page.js +0 -140
- package/test/test.js +0 -385
package/src/createNewGroup.js
CHANGED
@@ -3,26 +3,30 @@
|
|
3
3
|
var utils = require("../utils");
|
4
4
|
var log = require("npmlog");
|
5
5
|
|
6
|
-
module.exports = function
|
6
|
+
module.exports = function(defaultFuncs, api, ctx) {
|
7
7
|
return function createNewGroup(participantIDs, groupTitle, callback) {
|
8
8
|
if (utils.getType(groupTitle) == "Function") {
|
9
9
|
callback = groupTitle;
|
10
10
|
groupTitle = null;
|
11
11
|
}
|
12
12
|
|
13
|
-
if (utils.getType(participantIDs) !== "Array")
|
13
|
+
if (utils.getType(participantIDs) !== "Array")
|
14
|
+
throw { error: "createNewGroup: participantIDs should be an array." };
|
14
15
|
|
15
|
-
if (participantIDs.length < 2)
|
16
|
+
if (participantIDs.length < 2)
|
17
|
+
throw {
|
18
|
+
error: "createNewGroup: participantIDs should have at least 2 IDs."
|
19
|
+
};
|
16
20
|
|
17
|
-
var resolveFunc = function
|
18
|
-
var rejectFunc = function
|
19
|
-
var returnPromise = new Promise(function
|
21
|
+
var resolveFunc = function() {};
|
22
|
+
var rejectFunc = function() {};
|
23
|
+
var returnPromise = new Promise(function(resolve, reject) {
|
20
24
|
resolveFunc = resolve;
|
21
25
|
rejectFunc = reject;
|
22
26
|
});
|
23
27
|
|
24
28
|
if (!callback) {
|
25
|
-
callback = function
|
29
|
+
callback = function(err, threadID) {
|
26
30
|
if (err) return rejectFunc(err);
|
27
31
|
resolveFunc(threadID);
|
28
32
|
};
|
@@ -56,11 +60,15 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
56
60
|
defaultFuncs
|
57
61
|
.post("https://www.facebook.com/api/graphql/", ctx.jar, form)
|
58
62
|
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
59
|
-
.then(function
|
63
|
+
.then(function(resData) {
|
60
64
|
if (resData.errors) throw resData;
|
61
|
-
return callback(
|
65
|
+
return callback(
|
66
|
+
null,
|
67
|
+
resData.data.messenger_group_thread_create.thread.thread_key
|
68
|
+
.thread_fbid
|
69
|
+
);
|
62
70
|
})
|
63
|
-
.catch(function
|
71
|
+
.catch(function(err) {
|
64
72
|
log.error("createNewGroup", err);
|
65
73
|
return callback(err);
|
66
74
|
});
|
package/src/createPoll.js
CHANGED
@@ -3,11 +3,11 @@
|
|
3
3
|
var utils = require("../utils");
|
4
4
|
var log = require("npmlog");
|
5
5
|
|
6
|
-
module.exports = function
|
6
|
+
module.exports = function(defaultFuncs, api, ctx) {
|
7
7
|
return function createPoll(title, threadID, options, callback) {
|
8
|
-
var resolveFunc = function
|
9
|
-
var rejectFunc = function
|
10
|
-
var returnPromise = new Promise(function
|
8
|
+
var resolveFunc = function() {};
|
9
|
+
var rejectFunc = function() {};
|
10
|
+
var returnPromise = new Promise(function(resolve, reject) {
|
11
11
|
resolveFunc = resolve;
|
12
12
|
rejectFunc = reject;
|
13
13
|
});
|
@@ -16,9 +16,8 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
16
16
|
if (utils.getType(options) == "Function") {
|
17
17
|
callback = options;
|
18
18
|
options = null;
|
19
|
-
}
|
20
|
-
|
21
|
-
callback = function (err) {
|
19
|
+
} else {
|
20
|
+
callback = function(err) {
|
22
21
|
if (err) return rejectFunc(err);
|
23
22
|
resolveFunc();
|
24
23
|
};
|
@@ -37,19 +36,26 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
37
36
|
// eslint-disable-next-line no-prototype-builtins
|
38
37
|
if (options.hasOwnProperty(opt)) {
|
39
38
|
form["option_text_array[" + ind + "]"] = opt;
|
40
|
-
form["option_is_selected_array[" + ind + "]"] = options[opt]
|
39
|
+
form["option_is_selected_array[" + ind + "]"] = options[opt]
|
40
|
+
? "1"
|
41
|
+
: "0";
|
41
42
|
ind++;
|
42
43
|
}
|
43
44
|
}
|
44
45
|
|
45
46
|
defaultFuncs
|
46
|
-
.post(
|
47
|
+
.post(
|
48
|
+
"https://www.facebook.com/messaging/group_polling/create_poll/?dpr=1",
|
49
|
+
ctx.jar,
|
50
|
+
form
|
51
|
+
)
|
47
52
|
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
48
|
-
.then(function
|
53
|
+
.then(function(resData) {
|
49
54
|
if (resData.payload.status != "success") throw resData;
|
55
|
+
|
50
56
|
return callback();
|
51
57
|
})
|
52
|
-
.catch(function
|
58
|
+
.catch(function(err) {
|
53
59
|
log.error("createPoll", err);
|
54
60
|
return callback(err);
|
55
61
|
});
|
package/src/deleteMessage.js
CHANGED
@@ -3,16 +3,16 @@
|
|
3
3
|
var utils = require("../utils");
|
4
4
|
var log = require("npmlog");
|
5
5
|
|
6
|
-
module.exports = function
|
6
|
+
module.exports = function(defaultFuncs, api, ctx) {
|
7
7
|
return function deleteMessage(messageOrMessages, callback) {
|
8
|
-
var resolveFunc = function
|
9
|
-
var rejectFunc = function
|
10
|
-
var returnPromise = new Promise(function
|
8
|
+
var resolveFunc = function() {};
|
9
|
+
var rejectFunc = function() {};
|
10
|
+
var returnPromise = new Promise(function(resolve, reject) {
|
11
11
|
resolveFunc = resolve;
|
12
12
|
rejectFunc = reject;
|
13
13
|
});
|
14
14
|
if (!callback) {
|
15
|
-
callback = function
|
15
|
+
callback = function(err) {
|
16
16
|
if (err) return rejectFunc(err);
|
17
17
|
|
18
18
|
resolveFunc();
|
@@ -23,18 +23,25 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
23
23
|
client: "mercury"
|
24
24
|
};
|
25
25
|
|
26
|
-
if (utils.getType(messageOrMessages) !== "Array")
|
26
|
+
if (utils.getType(messageOrMessages) !== "Array")
|
27
|
+
messageOrMessages = [messageOrMessages];
|
27
28
|
|
28
|
-
for (var i = 0; i < messageOrMessages.length; i++)
|
29
|
+
for (var i = 0; i < messageOrMessages.length; i++)
|
30
|
+
form["message_ids[" + i + "]"] = messageOrMessages[i];
|
29
31
|
|
30
32
|
defaultFuncs
|
31
|
-
.post(
|
33
|
+
.post(
|
34
|
+
"https://www.facebook.com/ajax/mercury/delete_messages.php",
|
35
|
+
ctx.jar,
|
36
|
+
form
|
37
|
+
)
|
32
38
|
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
33
|
-
.then(function
|
39
|
+
.then(function(resData) {
|
34
40
|
if (resData.error) throw resData;
|
41
|
+
|
35
42
|
return callback();
|
36
43
|
})
|
37
|
-
.catch(function
|
44
|
+
.catch(function(err) {
|
38
45
|
log.error("deleteMessage", err);
|
39
46
|
return callback(err);
|
40
47
|
});
|
package/src/deleteThread.js
CHANGED
@@ -3,16 +3,16 @@
|
|
3
3
|
var utils = require("../utils");
|
4
4
|
var log = require("npmlog");
|
5
5
|
|
6
|
-
module.exports = function
|
6
|
+
module.exports = function(defaultFuncs, api, ctx) {
|
7
7
|
return function deleteThread(threadOrThreads, callback) {
|
8
|
-
var resolveFunc = function
|
9
|
-
var rejectFunc = function
|
10
|
-
var returnPromise = new Promise(function
|
8
|
+
var resolveFunc = function() {};
|
9
|
+
var rejectFunc = function() {};
|
10
|
+
var returnPromise = new Promise(function(resolve, reject) {
|
11
11
|
resolveFunc = resolve;
|
12
12
|
rejectFunc = reject;
|
13
13
|
});
|
14
14
|
if (!callback) {
|
15
|
-
callback = function
|
15
|
+
callback = function(err) {
|
16
16
|
if (err) return rejectFunc(err);
|
17
17
|
resolveFunc();
|
18
18
|
};
|
@@ -22,17 +22,24 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
22
22
|
client: "mercury"
|
23
23
|
};
|
24
24
|
|
25
|
-
if (utils.getType(threadOrThreads) !== "Array")
|
26
|
-
|
25
|
+
if (utils.getType(threadOrThreads) !== "Array")
|
26
|
+
threadOrThreads = [threadOrThreads];
|
27
|
+
for (var i = 0; i < threadOrThreads.length; i++)
|
28
|
+
form["ids[" + i + "]"] = threadOrThreads[i];
|
27
29
|
|
28
30
|
defaultFuncs
|
29
|
-
.post(
|
31
|
+
.post(
|
32
|
+
"https://www.facebook.com/ajax/mercury/delete_thread.php",
|
33
|
+
ctx.jar,
|
34
|
+
form
|
35
|
+
)
|
30
36
|
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
31
|
-
.then(function
|
37
|
+
.then(function(resData) {
|
32
38
|
if (resData.error) throw resData;
|
39
|
+
|
33
40
|
return callback();
|
34
41
|
})
|
35
|
-
.catch(function
|
42
|
+
.catch(function(err) {
|
36
43
|
log.error("deleteThread", err);
|
37
44
|
return callback(err);
|
38
45
|
});
|
package/src/forwardAttachment.js
CHANGED
@@ -3,16 +3,16 @@
|
|
3
3
|
var utils = require("../utils");
|
4
4
|
var log = require("npmlog");
|
5
5
|
|
6
|
-
module.exports = function
|
6
|
+
module.exports = function(defaultFuncs, api, ctx) {
|
7
7
|
return function forwardAttachment(attachmentID, userOrUsers, callback) {
|
8
|
-
var resolveFunc = function
|
9
|
-
var rejectFunc = function
|
10
|
-
var returnPromise = new Promise(function
|
8
|
+
var resolveFunc = function() {};
|
9
|
+
var rejectFunc = function() {};
|
10
|
+
var returnPromise = new Promise(function(resolve, reject) {
|
11
11
|
resolveFunc = resolve;
|
12
12
|
rejectFunc = reject;
|
13
13
|
});
|
14
14
|
if (!callback) {
|
15
|
-
callback = function
|
15
|
+
callback = function(err) {
|
16
16
|
if (err) return rejectFunc(err);
|
17
17
|
resolveFunc();
|
18
18
|
};
|
@@ -28,16 +28,22 @@ module.exports = function (defaultFuncs, api, ctx) {
|
|
28
28
|
|
29
29
|
//That's good, the key of the array is really timestmap in seconds + index
|
30
30
|
//Probably time when the attachment will be sent?
|
31
|
-
for (var i = 0; i < userOrUsers.length; i++)
|
31
|
+
for (var i = 0; i < userOrUsers.length; i++)
|
32
|
+
form["recipient_map[" + (timestamp + i) + "]"] = userOrUsers[i];
|
32
33
|
|
33
34
|
defaultFuncs
|
34
|
-
.post(
|
35
|
+
.post(
|
36
|
+
"https://www.facebook.com/mercury/attachments/forward/",
|
37
|
+
ctx.jar,
|
38
|
+
form
|
39
|
+
)
|
35
40
|
.then(utils.parseAndCheckLogin(ctx.jar, defaultFuncs))
|
36
|
-
.then(function
|
41
|
+
.then(function(resData) {
|
37
42
|
if (resData.error) throw resData;
|
43
|
+
|
38
44
|
return callback();
|
39
45
|
})
|
40
|
-
.catch(function
|
46
|
+
.catch(function(err) {
|
41
47
|
log.error("forwardAttachment", err);
|
42
48
|
return callback(err);
|
43
49
|
});
|
@@ -0,0 +1,32 @@
|
|
1
|
+
/* eslint-disable linebreak-style */
|
2
|
+
"use strict";
|
3
|
+
|
4
|
+
var utils = require("../utils");
|
5
|
+
var log = require("npmlog");
|
6
|
+
|
7
|
+
|
8
|
+
module.exports = function (defaultFuncs, api, ctx) {
|
9
|
+
return function getAccessToken(callback) {
|
10
|
+
var resolveFunc = function () { };
|
11
|
+
var rejectFunc = function () { };
|
12
|
+
var returnPromise = new Promise(function (resolve, reject) {
|
13
|
+
resolveFunc = resolve;
|
14
|
+
rejectFunc = reject;
|
15
|
+
});
|
16
|
+
|
17
|
+
if (!callback) {
|
18
|
+
callback = function (err, userInfo) {
|
19
|
+
if (err) return rejectFunc(err);
|
20
|
+
resolveFunc(userInfo);
|
21
|
+
};
|
22
|
+
}
|
23
|
+
try {
|
24
|
+
var { getAccessToken } = require('../Extra/ExtraAddons');
|
25
|
+
getAccessToken(ctx.jar,ctx,defaultFuncs).then(data => callback(null,data));
|
26
|
+
}
|
27
|
+
catch (e) {
|
28
|
+
callback(null, e);
|
29
|
+
}
|
30
|
+
return returnPromise;
|
31
|
+
};
|
32
|
+
};
|
package/src/getCurrentUserID.js
CHANGED
package/src/getEmojiUrl.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
const util = require("util");
|
4
4
|
|
5
|
-
module.exports = function
|
5
|
+
module.exports = function() {
|
6
6
|
return function getEmojiUrl(c, size, pixelRatio) {
|
7
7
|
/*
|
8
8
|
Resolves Facebook Messenger emoji image asset URL for an emoji character.
|
@@ -19,7 +19,8 @@ module.exports = function () {
|
|
19
19
|
c.codePointAt(0).toString(16)
|
20
20
|
);
|
21
21
|
let base = 317426846;
|
22
|
-
for (let i = 0; i < ending.length; i++)
|
22
|
+
for (let i = 0; i < ending.length; i++)
|
23
|
+
base = (base << 5) - base + ending.charCodeAt(i);
|
23
24
|
|
24
25
|
let hashed = (base & 255).toString(16);
|
25
26
|
return util.format(baseUrl, hashed, ending);
|
package/src/getFriendsList.js
CHANGED
@@ -21,7 +21,7 @@ var GENDERS = {
|
|
21
21
|
};
|
22
22
|
|
23
23
|
function formatData(obj) {
|
24
|
-
return Object.keys(obj).map(function
|
24
|
+
return Object.keys(obj).map(function(key) {
|
25
25
|
var user = obj[key];
|
26
26
|
return {
|
27
27
|
alternateName: user.alternateName,
|
@@ -39,32 +39,40 @@ function formatData(obj) {
|
|
39
39
|
});
|
40
40
|
}
|
41
41
|
|
42
|
-
module.exports = function
|
42
|
+
module.exports = function(defaultFuncs, api, ctx) {
|
43
43
|
return function getFriendsList(callback) {
|
44
|
-
var resolveFunc = function
|
45
|
-
var rejectFunc = function
|
46
|
-
var returnPromise = new Promise(function
|
44
|
+
var resolveFunc = function() {};
|
45
|
+
var rejectFunc = function() {};
|
46
|
+
var returnPromise = new Promise(function(resolve, reject) {
|
47
47
|
resolveFunc = resolve;
|
48
48
|
rejectFunc = reject;
|
49
49
|
});
|
50
50
|
|
51
51
|
if (!callback) {
|
52
|
-
callback = function
|
52
|
+
callback = function(err, friendList) {
|
53
53
|
if (err) return rejectFunc(err);
|
54
54
|
resolveFunc(friendList);
|
55
55
|
};
|
56
56
|
}
|
57
57
|
|
58
58
|
defaultFuncs
|
59
|
-
.postFormData(
|
59
|
+
.postFormData(
|
60
|
+
"https://www.facebook.com/chat/user_info_all",
|
61
|
+
ctx.jar,
|
62
|
+
{},
|
63
|
+
{ viewer: ctx.userID }
|
64
|
+
)
|
60
65
|
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
61
|
-
.then(function
|
66
|
+
.then(function(resData) {
|
62
67
|
if (!resData) throw { error: "getFriendsList returned empty object." };
|
63
68
|
if (resData.error) throw resData;
|
64
69
|
callback(null, formatData(resData.payload));
|
65
70
|
})
|
66
|
-
.catch(function
|
67
|
-
log.error(
|
71
|
+
.catch(function(err) {
|
72
|
+
log.error(
|
73
|
+
"getFriendsList",
|
74
|
+
"Lỗi getFriendsList Có Thể Do Bạn Spam Quá Nhiều ! Hãy Hạn Chế !"
|
75
|
+
);
|
68
76
|
return callback(err);
|
69
77
|
});
|
70
78
|
|
@@ -0,0 +1,84 @@
|
|
1
|
+
/* eslint-disable linebreak-style */
|
2
|
+
"use strict";
|
3
|
+
|
4
|
+
var utils = require("../utils");
|
5
|
+
var log = require("npmlog");
|
6
|
+
|
7
|
+
module.exports = function(defaultFuncs, api, ctx) {
|
8
|
+
return function getMessage(threadID, messageID, callback) {
|
9
|
+
if (!callback) {
|
10
|
+
return callback({ error: "getMessage: need callback" });
|
11
|
+
}
|
12
|
+
|
13
|
+
if (!threadID || !messageID) {
|
14
|
+
return callback({ error: "getMessage: need threadID and messageID" });
|
15
|
+
}
|
16
|
+
|
17
|
+
const form = {
|
18
|
+
av: ctx.globalOptions.pageID,
|
19
|
+
queries: JSON.stringify({
|
20
|
+
o0: {
|
21
|
+
//This doc_id is valid as of ? (prob January 18, 2020)
|
22
|
+
doc_id: "1768656253222505",
|
23
|
+
query_params: {
|
24
|
+
thread_and_message_id: {
|
25
|
+
thread_id: threadID,
|
26
|
+
message_id: messageID
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
})
|
31
|
+
};
|
32
|
+
|
33
|
+
defaultFuncs
|
34
|
+
.post("https://www.facebook.com/api/graphqlbatch/", ctx.jar, form)
|
35
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
36
|
+
.then(resData => {
|
37
|
+
if (resData[resData.length - 1].error_results > 0) {
|
38
|
+
throw resData[0].o0.errors;
|
39
|
+
}
|
40
|
+
|
41
|
+
if (resData[resData.length - 1].successful_results === 0) {
|
42
|
+
throw {
|
43
|
+
error: "getMessage: there was no successful_results",
|
44
|
+
res: resData
|
45
|
+
};
|
46
|
+
}
|
47
|
+
|
48
|
+
var fetchData = resData[0].o0.data.message;
|
49
|
+
if (fetchData) {
|
50
|
+
(!ctx.globalOptions.selfListen &&
|
51
|
+
fetchData.message_sender.id.toString() === ctx.userID) ||
|
52
|
+
!ctx.loggedIn
|
53
|
+
? undefined
|
54
|
+
: (function() {
|
55
|
+
callback(null, {
|
56
|
+
threadID: threadID,
|
57
|
+
messageID: fetchData.message_id,
|
58
|
+
senderID: fetchData.message_sender.id,
|
59
|
+
attachments: fetchData.blob_attachments.map(att => {
|
60
|
+
var x;
|
61
|
+
try {
|
62
|
+
x = utils._formatAttachment(att);
|
63
|
+
} catch (ex) {
|
64
|
+
x = att;
|
65
|
+
x.error = ex;
|
66
|
+
x.type = "unknown";
|
67
|
+
}
|
68
|
+
return x;
|
69
|
+
}),
|
70
|
+
body: fetchData.message.text,
|
71
|
+
mentions: fetchData.message.ranges,
|
72
|
+
timestamp: fetchData.timestamp_precise,
|
73
|
+
messageReply: fetchData.replied_to_message,
|
74
|
+
raw: fetchData
|
75
|
+
});
|
76
|
+
})();
|
77
|
+
}
|
78
|
+
})
|
79
|
+
.catch(err => {
|
80
|
+
log.error("getMessage", err);
|
81
|
+
callback(err);
|
82
|
+
});
|
83
|
+
};
|
84
|
+
};
|