@cexy/hoonfca 1.0.0 → 1.0.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/.travis.yml +6 -0
- package/LICENSE-MIT +21 -0
- package/index.d.ts +620 -0
- package/index.js +745 -433
- package/package.json +45 -6
- package/src/addExternalModule.js +14 -16
- package/src/addUserToGroup.js +45 -30
- package/src/changeAdminStatus.js +39 -42
- package/src/changeApprovalMode.js +79 -0
- package/src/changeArchivedStatus.js +19 -15
- package/src/changeBio.js +18 -16
- package/src/changeBlockedStatus.js +14 -12
- package/src/changeBlockedStatusMqtt.js +38 -17
- package/src/changeGroupImage.js +100 -77
- package/src/changeNickname.js +12 -11
- package/src/changeThreadColor.js +25 -16
- package/src/changeThreadEmoji.js +11 -10
- package/src/createNewGroup.js +21 -14
- package/src/createPoll.js +87 -21
- package/src/deleteMessage.js +18 -17
- package/src/deleteThread.js +18 -17
- package/src/editMessage.js +28 -31
- package/src/forwardAttachment.js +22 -19
- package/src/forwardMessage.js +63 -0
- package/src/getCurrentUserID.js +4 -2
- package/src/getEmojiUrl.js +20 -9
- package/src/getFriendsList.js +21 -18
- package/src/getGroupsList.js +83 -0
- package/src/getMarketplace.js +84 -0
- package/src/getNotifications.js +86 -0
- package/src/getPagesList.js +83 -0
- package/src/getStories.js +88 -0
- package/src/getThreadHistory.js +277 -126
- package/src/getThreadInfo.js +143 -115
- package/src/getThreadList.js +216 -143
- package/src/getThreadPictures.js +26 -32
- package/src/getUserID.js +13 -14
- package/src/getUserInfo.js +107 -68
- package/src/handleFriendRequest.js +16 -15
- package/src/handleMessageRequest.js +15 -15
- package/src/httpGet.js +36 -31
- package/src/httpPost.js +36 -31
- package/src/listenMqtt.js +705 -370
- package/src/logout.js +26 -28
- package/src/markAsDelivered.js +22 -17
- package/src/markAsRead.js +63 -49
- package/src/markAsReadAll.js +17 -13
- package/src/markAsSeen.js +23 -19
- package/src/muteThread.js +17 -14
- package/src/pinMessage.js +23 -22
- package/src/removeUserFromGroup.js +42 -22
- package/src/resolvePhotoUrl.js +15 -17
- package/src/searchForThread.js +18 -20
- package/src/searchUsers.js +89 -0
- package/src/sendComment.js +161 -0
- package/src/sendMessage.js +65 -52
- package/src/sendTypingIndicator.js +173 -48
- package/src/setBio.js +86 -0
- package/src/setMessageReaction.js +76 -16
- package/src/setPostReaction.js +29 -61
- package/src/setTheme.js +313 -0
- package/src/setTitle.js +27 -37
- package/src/shareContact.js +34 -82
- package/src/shareLink.js +56 -99
- package/src/threadColors.js +35 -97
- package/src/unfriend.js +15 -20
- package/src/unsendMessage.js +71 -18
- package/utils.js +1000 -472
- package/README.md +0 -83
- package/replit.nix +0 -3
- package/src/changeAvatar.js +0 -89
- package/src/changeCover.js +0 -92
- package/src/changeName.js +0 -106
- package/src/changeUsername.js +0 -80
- package/src/createCommentPost.js +0 -196
- package/src/createPost.js +0 -285
- package/src/data/getThreadInfo.json +0 -1
- package/src/follow.js +0 -71
- package/src/getAccess.js +0 -130
- package/src/getAvatarUser.js +0 -88
- package/src/getBotInitialData.js +0 -59
- package/src/getCtx.js +0 -5
- package/src/getMessage.js +0 -827
- package/src/getOptions.js +0 -5
- package/src/getRegion.js +0 -7
- package/src/getThreadHistoryDeprecated.js +0 -95
- package/src/getThreadInfoDeprecated.js +0 -77
- package/src/getThreadListDeprecated.js +0 -86
- package/src/httpPostFormData.js +0 -58
- package/src/listenNotification.js +0 -96
- package/src/refreshFb_dtsg.js +0 -75
- package/src/searchStickers.js +0 -59
- package/src/sendMessageMqtt.js +0 -326
- package/src/setMessageReactionMqtt.js +0 -74
- package/src/setProfileGuard.js +0 -66
- package/src/setStoryReaction.js +0 -97
- package/src/stopListenMqtt.js +0 -47
- package/src/uploadAttachment.js +0 -98
package/src/shareLink.js
CHANGED
|
@@ -1,105 +1,62 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var utils = require("../utils");
|
|
4
|
+
var log = require("npmlog");
|
|
4
5
|
|
|
5
6
|
module.exports = function (defaultFuncs, api, ctx) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
task_id: Math.floor(Math.random() * 1001),
|
|
62
|
-
failure_count: null,
|
|
63
|
-
}],
|
|
64
|
-
epoch_id: parseInt(utils.generateOfflineThreadingID()),
|
|
65
|
-
version_id: '7191105584331330',
|
|
66
|
-
}),
|
|
67
|
-
"request_id": currentReqID,
|
|
68
|
-
"type": 3
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
ctx.callback_Task[currentReqID] = {
|
|
72
|
-
callback,
|
|
73
|
-
type: "shareLink"
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
// fallback trigger to reqCallbacks if used by the library
|
|
77
|
-
if (ctx.reqCallbacks) {
|
|
78
|
-
ctx.reqCallbacks[currentReqID] = callback;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
ctx.mqttClient.publish(
|
|
82
|
-
'/ls_req',
|
|
83
|
-
JSON.stringify(payload),
|
|
84
|
-
{
|
|
85
|
-
qos: 1,
|
|
86
|
-
retain: false,
|
|
87
|
-
},
|
|
88
|
-
function (err, data) {
|
|
89
|
-
if (err) {
|
|
90
|
-
utils.error("shareLink", err);
|
|
91
|
-
// clean up callback store on error
|
|
92
|
-
delete ctx.callback_Task[currentReqID];
|
|
93
|
-
if (ctx.reqCallbacks) delete ctx.reqCallbacks[currentReqID];
|
|
94
|
-
return callback(err);
|
|
95
|
-
}
|
|
96
|
-
// if there is no global listener, execute immediately on success
|
|
97
|
-
if (!ctx.reqCallbacks && ctx.callback_Task[currentReqID]) {
|
|
98
|
-
callback(null, data);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
);
|
|
102
|
-
|
|
103
|
-
return returnPromise;
|
|
104
|
-
};
|
|
7
|
+
return async function shareLink(text, url, threadID, callback) {
|
|
8
|
+
if (!ctx.mqttClient) {
|
|
9
|
+
throw new Error("Not connected to MQTT");
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
var resolveFunc = function () {};
|
|
13
|
+
var rejectFunc = function () {};
|
|
14
|
+
var returnPromise = new Promise(function (resolve, reject) {
|
|
15
|
+
resolveFunc = resolve;
|
|
16
|
+
rejectFunc = reject;
|
|
17
|
+
});
|
|
18
|
+
if (!callback) {
|
|
19
|
+
callback = function (err, data) {
|
|
20
|
+
if (err) return rejectFunc(err);
|
|
21
|
+
resolveFunc(data);
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
let count_req = 0;
|
|
25
|
+
ctx.mqttClient.publish(
|
|
26
|
+
"/ls_req",
|
|
27
|
+
JSON.stringify({
|
|
28
|
+
app_id: "2220391788200892",
|
|
29
|
+
payload: JSON.stringify({
|
|
30
|
+
tasks: [
|
|
31
|
+
{
|
|
32
|
+
label: 46,
|
|
33
|
+
payload: JSON.stringify({
|
|
34
|
+
otid: utils.generateOfflineThreadingID(),
|
|
35
|
+
source: 524289,
|
|
36
|
+
sync_group: 1,
|
|
37
|
+
send_type: 6,
|
|
38
|
+
mark_thread_read: 0,
|
|
39
|
+
url: url || "",
|
|
40
|
+
text: text || "",
|
|
41
|
+
thread_id: threadID,
|
|
42
|
+
initiating_source: 0,
|
|
43
|
+
}),
|
|
44
|
+
queue_name: threadID,
|
|
45
|
+
task_id: (Math.random() * 1001) << 0,
|
|
46
|
+
failure_count: null,
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
epoch_id: utils.generateOfflineThreadingID(),
|
|
50
|
+
version_id: "7191105584331330",
|
|
51
|
+
}),
|
|
52
|
+
request_id: ++count_req,
|
|
53
|
+
type: 3,
|
|
54
|
+
}),
|
|
55
|
+
{
|
|
56
|
+
qos: 1,
|
|
57
|
+
retain: false,
|
|
58
|
+
},
|
|
59
|
+
);
|
|
60
|
+
return returnPromise;
|
|
61
|
+
};
|
|
105
62
|
};
|
package/src/threadColors.js
CHANGED
|
@@ -1,20 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
module.exports = function (_defaultFuncs, _api, _ctx) {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
// Currently the only colors that can be passed to api.changeThreadColor(); may change if Facebook adds more
|
|
5
|
+
return {
|
|
6
|
+
//Old hex colors.
|
|
7
|
+
////MessengerBlue: null,
|
|
8
|
+
////Viking: "#44bec7",
|
|
9
|
+
////GoldenPoppy: "#ffc300",
|
|
10
|
+
////RadicalRed: "#fa3c4c",
|
|
11
|
+
////Shocking: "#d696bb",
|
|
12
|
+
////PictonBlue: "#6699cc",
|
|
13
|
+
////FreeSpeechGreen: "#13cf13",
|
|
14
|
+
////Pumpkin: "#ff7e29",
|
|
15
|
+
////LightCoral: "#e68585",
|
|
16
|
+
////MediumSlateBlue: "#7646ff",
|
|
17
|
+
////DeepSkyBlue: "#20cef5",
|
|
18
|
+
////Fern: "#67b868",
|
|
19
|
+
////Cameo: "#d4a88c",
|
|
20
|
+
////BrilliantRose: "#ff5ca1",
|
|
21
|
+
////BilobaFlower: "#a695c7"
|
|
22
|
+
|
|
23
|
+
//#region This part is for backward compatibly
|
|
24
|
+
//trying to match the color one-by-one. kill me plz
|
|
25
|
+
MessengerBlue: "196241301102133", //DefaultBlue
|
|
26
|
+
Viking: "1928399724138152", //TealBlue
|
|
27
|
+
GoldenPoppy: "174636906462322", //Yellow
|
|
28
|
+
RadicalRed: "2129984390566328", //Red
|
|
29
|
+
Shocking: "2058653964378557", //LavenderPurple
|
|
30
|
+
FreeSpeechGreen: "2136751179887052", //Green
|
|
31
|
+
Pumpkin: "175615189761153", //Orange
|
|
32
|
+
LightCoral: "980963458735625", //CoralPink
|
|
33
|
+
MediumSlateBlue: "234137870477637", //BrightPurple
|
|
34
|
+
DeepSkyBlue: "2442142322678320", //AquaBlue
|
|
35
|
+
BrilliantRose: "169463077092846", //HotPink
|
|
36
|
+
//i've tried my best, everything else can't be mapped. (or is it?) -UIRI 2020
|
|
37
|
+
//#endregion
|
|
18
38
|
|
|
19
39
|
DefaultBlue: "196241301102133",
|
|
20
40
|
HotPink: "169463077092846",
|
|
@@ -32,88 +52,6 @@ module.exports = function (_defaultFuncs, _api, _ctx) {
|
|
|
32
52
|
Berry: "164535220883264",
|
|
33
53
|
Citrus: "370940413392601",
|
|
34
54
|
Candy: "205488546921017",
|
|
35
|
-
|
|
36
|
-
Earth: "1833559466821043",
|
|
37
|
-
Support: "365557122117011",
|
|
38
|
-
Music: "339021464972092",
|
|
39
|
-
Pride: "1652456634878319",
|
|
40
|
-
DoctorStrange: "538280997628317",
|
|
41
|
-
LoFi: "1060619084701625",
|
|
42
|
-
Sky: "3190514984517598",
|
|
43
|
-
LunarNewYear: "357833546030778",
|
|
44
|
-
Celebration: "627144732056021",
|
|
45
|
-
Chill: "390127158985345",
|
|
46
|
-
StrangerThings: "1059859811490132",
|
|
47
|
-
Dune: "1455149831518874",
|
|
48
|
-
Care: "275041734441112",
|
|
49
|
-
Astrology: "3082966625307060",
|
|
50
|
-
JBalvin: "184305226956268",
|
|
51
|
-
Birthday: "621630955405500",
|
|
52
|
-
Cottagecore: "539927563794799",
|
|
53
|
-
Ocean: "736591620215564",
|
|
54
|
-
Love: "741311439775765",
|
|
55
|
-
TieDye: "230032715012014",
|
|
56
|
-
Monochrome: "788274591712841",
|
|
57
|
-
Default: "3259963564026002",
|
|
58
|
-
Rocket: "582065306070020",
|
|
59
|
-
Berry2: "724096885023603",
|
|
60
|
-
Candy2: "624266884847972",
|
|
61
|
-
Unicorn: "273728810607574",
|
|
62
|
-
Tropical: "262191918210707",
|
|
63
|
-
Maple: "2533652183614000",
|
|
64
|
-
Sushi: "909695489504566",
|
|
65
|
-
Citrus2: "557344741607350",
|
|
66
|
-
Lollipop: "280333826736184",
|
|
67
|
-
Shadow: "271607034185782",
|
|
68
|
-
Rose: "1257453361255152",
|
|
69
|
-
Lavender: "571193503540759",
|
|
70
|
-
Tulip: "2873642949430623",
|
|
71
|
-
Classic: "3273938616164733",
|
|
72
|
-
Peach: "3022526817824329",
|
|
73
|
-
Honey: "672058580051520",
|
|
74
|
-
Kiwi: "3151463484918004",
|
|
75
|
-
Grape: "193497045377796",
|
|
76
|
-
|
|
77
|
-
NonBinary: "737761000603635",
|
|
78
|
-
|
|
79
|
-
ThankfulForFriends: "1318983195536293",
|
|
80
|
-
Transgender: "504518465021637",
|
|
81
|
-
TaylorSwift: "769129927636836",
|
|
82
|
-
NationalComingOutDay: "788102625833584",
|
|
83
|
-
Autumn: "822549609168155",
|
|
84
|
-
Cyberpunk2077: "780962576430091",
|
|
85
|
-
|
|
86
|
-
MothersDay: "1288506208402340",
|
|
87
|
-
APAHM: "121771470870245",
|
|
88
|
-
Parenthood: "810978360551741",
|
|
89
|
-
StarWars: "1438011086532622",
|
|
90
|
-
GuardianOfTheGalaxy: "101275642962533",
|
|
91
|
-
Bloom: "158263147151440",
|
|
92
|
-
BubbleTea: "195296273246380",
|
|
93
|
-
Basketball: "6026716157422736",
|
|
94
|
-
ElephantsAndFlowers: "693996545771691"
|
|
55
|
+
//StarWars: "809305022860427" Removed.
|
|
95
56
|
};
|
|
96
|
-
|
|
97
|
-
// কেস-ইনসেনসিটিভ সার্চ বা ফলব্যাকের সুবিধাসহ অবজেক্টটি রিটার্ন করা হচ্ছে
|
|
98
|
-
const themeMap = { ...themes };
|
|
99
|
-
|
|
100
|
-
// ডাইনামিকালি আইডি বের করার একটি হেল্পার মেথড
|
|
101
|
-
themeMap.getThemeID = function (name) {
|
|
102
|
-
if (!name) return themes.DefaultBlue;
|
|
103
|
-
const searchName = name.toString().toLowerCase().replace(/\s+/g, "");
|
|
104
|
-
|
|
105
|
-
// থিমের অবজেক্ট থেকে মিলিয়ে দেখা হচ্ছে
|
|
106
|
-
for (const key of Object.keys(themes)) {
|
|
107
|
-
if (key.toLowerCase() === searchName) {
|
|
108
|
-
return themes[key];
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
// যদি আইডি সরাসরি পাস করা হয়, সেটিই ফেরত যাবে
|
|
112
|
-
if (/^\d+$/.test(name)) {
|
|
113
|
-
return name.toString();
|
|
114
|
-
}
|
|
115
|
-
return themes.DefaultBlue;
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
return themeMap;
|
|
119
57
|
};
|
package/src/unfriend.js
CHANGED
|
@@ -1,55 +1,50 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var utils = require("../utils");
|
|
4
|
+
var log = require("npmlog");
|
|
4
5
|
|
|
5
|
-
module.exports = function(defaultFuncs, api, ctx) {
|
|
6
|
-
return function
|
|
7
|
-
var resolveFunc = function(){};
|
|
8
|
-
var rejectFunc = function(){};
|
|
6
|
+
module.exports = function (defaultFuncs, api, ctx) {
|
|
7
|
+
return function unsendMessage(userID, callback) {
|
|
8
|
+
var resolveFunc = function () {};
|
|
9
|
+
var rejectFunc = function () {};
|
|
9
10
|
var returnPromise = new Promise(function (resolve, reject) {
|
|
10
11
|
resolveFunc = resolve;
|
|
11
12
|
rejectFunc = reject;
|
|
12
13
|
});
|
|
13
14
|
|
|
14
15
|
if (!callback) {
|
|
15
|
-
callback = function (err,
|
|
16
|
+
callback = function (err, friendList) {
|
|
16
17
|
if (err) {
|
|
17
18
|
return rejectFunc(err);
|
|
18
19
|
}
|
|
19
|
-
resolveFunc(
|
|
20
|
+
resolveFunc(friendList);
|
|
20
21
|
};
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
if (!userID) {
|
|
24
|
-
return callback({ error: "unFriend: userID is required." });
|
|
25
|
-
}
|
|
26
|
-
|
|
27
24
|
var form = {
|
|
28
|
-
uid: userID
|
|
25
|
+
uid: userID,
|
|
29
26
|
unref: "bd_friends_tab",
|
|
30
27
|
floc: "friends_tab",
|
|
31
|
-
"nctr[_mod]":
|
|
28
|
+
"nctr[_mod]":
|
|
29
|
+
"pagelet_timeline_app_collection_" + ctx.userID + ":2356318349:2",
|
|
32
30
|
};
|
|
33
31
|
|
|
34
32
|
defaultFuncs
|
|
35
33
|
.post(
|
|
36
34
|
"https://www.facebook.com/ajax/profile/removefriendconfirm.php",
|
|
37
35
|
ctx.jar,
|
|
38
|
-
form
|
|
36
|
+
form,
|
|
39
37
|
)
|
|
40
38
|
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
|
41
|
-
.then(function(resData) {
|
|
42
|
-
if (!resData) {
|
|
43
|
-
throw { error: "unFriend returned empty response." };
|
|
44
|
-
}
|
|
39
|
+
.then(function (resData) {
|
|
45
40
|
if (resData.error) {
|
|
46
41
|
throw resData;
|
|
47
42
|
}
|
|
48
43
|
|
|
49
|
-
return callback(
|
|
44
|
+
return callback();
|
|
50
45
|
})
|
|
51
|
-
.catch(function(err) {
|
|
52
|
-
|
|
46
|
+
.catch(function (err) {
|
|
47
|
+
log.error("unfriend", err);
|
|
53
48
|
return callback(err);
|
|
54
49
|
});
|
|
55
50
|
|
package/src/unsendMessage.js
CHANGED
|
@@ -1,51 +1,104 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var utils = require("../utils");
|
|
4
|
+
var log = require("npmlog");
|
|
5
|
+
const { generateOfflineThreadingID } = require("../utils");
|
|
4
6
|
|
|
5
7
|
module.exports = function (defaultFuncs, api, ctx) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
function unsendMessageNoMqtt(messageID, callback) {
|
|
9
|
+
var resolveFunc = function () {};
|
|
10
|
+
var rejectFunc = function () {};
|
|
11
|
+
var returnPromise = new Promise(function (resolve, reject) {
|
|
10
12
|
resolveFunc = resolve;
|
|
11
13
|
rejectFunc = reject;
|
|
12
14
|
});
|
|
13
15
|
|
|
14
16
|
if (!callback) {
|
|
15
|
-
callback = function (err,
|
|
17
|
+
callback = function (err, friendList) {
|
|
16
18
|
if (err) {
|
|
17
19
|
return rejectFunc(err);
|
|
18
20
|
}
|
|
19
|
-
resolveFunc(
|
|
21
|
+
resolveFunc(friendList);
|
|
20
22
|
};
|
|
21
23
|
}
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const form = {
|
|
28
|
-
message_id: messageID.toString(),
|
|
25
|
+
var form = {
|
|
26
|
+
message_id: messageID,
|
|
29
27
|
};
|
|
30
28
|
|
|
31
29
|
defaultFuncs
|
|
32
30
|
.post("https://www.facebook.com/messaging/unsend_message/", ctx.jar, form)
|
|
33
31
|
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
|
34
32
|
.then(function (resData) {
|
|
35
|
-
if (!resData) {
|
|
36
|
-
throw { error: "unsendMessage returned empty response." };
|
|
37
|
-
}
|
|
38
33
|
if (resData.error) {
|
|
39
34
|
throw resData;
|
|
40
35
|
}
|
|
41
36
|
|
|
42
|
-
return callback(
|
|
37
|
+
return callback();
|
|
43
38
|
})
|
|
44
39
|
.catch(function (err) {
|
|
45
|
-
|
|
40
|
+
log.error("unsendMessage", err);
|
|
46
41
|
return callback(err);
|
|
47
42
|
});
|
|
48
43
|
|
|
49
44
|
return returnPromise;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function unsendMessageMqtt(messageID, threadID, callback) {
|
|
48
|
+
if (!ctx.mqttClient) {
|
|
49
|
+
throw new Error("Not connected to MQTT");
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
ctx.wsReqNumber += 1;
|
|
53
|
+
ctx.wsTaskNumber += 1;
|
|
54
|
+
|
|
55
|
+
const label = "33";
|
|
56
|
+
|
|
57
|
+
const taskPayload = {
|
|
58
|
+
message_id: messageID,
|
|
59
|
+
thread_key: threadID,
|
|
60
|
+
sync_group: 1,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
const payload = JSON.stringify(taskPayload);
|
|
64
|
+
const version = "25393437286970779";
|
|
65
|
+
|
|
66
|
+
const task = {
|
|
67
|
+
failure_count: null,
|
|
68
|
+
label: label,
|
|
69
|
+
payload: payload,
|
|
70
|
+
queue_name: "unsend_message",
|
|
71
|
+
task_id: ctx.wsTaskNumber,
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const content = {
|
|
75
|
+
app_id: "2220391788200892",
|
|
76
|
+
payload: JSON.stringify({
|
|
77
|
+
tasks: [task],
|
|
78
|
+
epoch_id: parseInt(generateOfflineThreadingID()),
|
|
79
|
+
version_id: version,
|
|
80
|
+
}),
|
|
81
|
+
request_id: ctx.wsReqNumber,
|
|
82
|
+
type: 3,
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
// if (isCallable(callback)) {
|
|
86
|
+
// // to be implemented
|
|
87
|
+
// }
|
|
88
|
+
|
|
89
|
+
ctx.mqttClient.publish("/ls_req", JSON.stringify(content), {
|
|
90
|
+
qos: 1,
|
|
91
|
+
retain: false,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
return function unsendMessage(messageID, threadID, callback) {
|
|
96
|
+
if (ctx.mqttClient) {
|
|
97
|
+
try {
|
|
98
|
+
unsendMessageMqtt(messageID, threadID, callback);
|
|
99
|
+
} catch (e) {
|
|
100
|
+
unsendMessageNoMqtt(messageID, callback);
|
|
101
|
+
}
|
|
102
|
+
} else unsendMessageNoMqtt(messageID, callback);
|
|
50
103
|
};
|
|
51
104
|
};
|