bb-fca 2.0.8 → 2.0.10
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/dist/core/models/buildAPI.js +3 -3
- package/dist/core/models/buildAPI.js.map +1 -1
- package/dist/core/models/loginHelper.js +29 -28
- package/dist/core/models/loginHelper.js.map +1 -1
- package/dist/deltas/apis/create.js +9 -0
- package/dist/deltas/apis/create.js.map +1 -1
- package/dist/deltas/apis/messaging/editMessage.js +13 -24
- package/dist/deltas/apis/messaging/editMessage.js.map +1 -1
- package/dist/deltas/apis/messaging/emoji.js +34 -88
- package/dist/deltas/apis/messaging/emoji.js.map +1 -1
- package/dist/deltas/apis/messaging/gcmember.js +48 -101
- package/dist/deltas/apis/messaging/gcmember.js.map +1 -1
- package/dist/deltas/apis/messaging/gcname.js +28 -79
- package/dist/deltas/apis/messaging/gcname.js.map +1 -1
- package/dist/deltas/apis/messaging/gcrule.js +47 -105
- package/dist/deltas/apis/messaging/gcrule.js.map +1 -1
- package/dist/deltas/apis/messaging/markAsDelivered.js +10 -12
- package/dist/deltas/apis/messaging/markAsDelivered.js.map +1 -1
- package/dist/deltas/apis/messaging/markAsRead.js +25 -60
- package/dist/deltas/apis/messaging/markAsRead.js.map +1 -1
- package/dist/deltas/apis/messaging/markAsReadAll.js +9 -11
- package/dist/deltas/apis/messaging/markAsReadAll.js.map +1 -1
- package/dist/deltas/apis/messaging/markAsSeen.js +10 -37
- package/dist/deltas/apis/messaging/markAsSeen.js.map +1 -1
- package/dist/deltas/apis/messaging/nickname.js +38 -98
- package/dist/deltas/apis/messaging/nickname.js.map +1 -1
- package/dist/deltas/apis/messaging/notes.js +52 -90
- package/dist/deltas/apis/messaging/notes.js.map +1 -1
- package/dist/deltas/apis/messaging/resolvePhotoUrl.js +17 -42
- package/dist/deltas/apis/messaging/resolvePhotoUrl.js.map +1 -1
- package/dist/deltas/apis/messaging/sendMessage.js +14 -15
- package/dist/deltas/apis/messaging/sendMessage.js.map +1 -1
- package/dist/deltas/apis/messaging/sendTypingIndicator.js +7 -13
- package/dist/deltas/apis/messaging/sendTypingIndicator.js.map +1 -1
- package/dist/deltas/apis/messaging/setMessageReaction.js +24 -14
- package/dist/deltas/apis/messaging/setMessageReaction.js.map +1 -1
- package/dist/deltas/apis/messaging/shareContact.js +14 -12
- package/dist/deltas/apis/messaging/shareContact.js.map +1 -1
- package/dist/deltas/apis/messaging/stickers.js +4 -5
- package/dist/deltas/apis/messaging/stickers.js.map +1 -1
- package/dist/deltas/apis/messaging/theme.js +142 -213
- package/dist/deltas/apis/messaging/theme.js.map +1 -1
- package/dist/deltas/apis/messaging/unsendMessage.js +14 -7
- package/dist/deltas/apis/messaging/unsendMessage.js.map +1 -1
- package/dist/deltas/apis/posting/group.js +22 -129
- package/dist/deltas/apis/posting/group.js.map +1 -1
- package/dist/deltas/apis/posting/post.js +805 -12
- package/dist/deltas/apis/posting/post.js.map +1 -1
- package/dist/index.d.ts +35 -58
- package/dist/types/deltas/apis/create.d.ts +9 -0
- package/dist/types/deltas/apis/messaging/editMessage.d.ts +4 -5
- package/dist/types/deltas/apis/messaging/emoji.d.ts +7 -1
- package/dist/types/deltas/apis/messaging/gcmember.d.ts +7 -1
- package/dist/types/deltas/apis/messaging/gcname.d.ts +9 -1
- package/dist/types/deltas/apis/messaging/gcrule.d.ts +7 -1
- package/dist/types/deltas/apis/messaging/markAsDelivered.d.ts +1 -2
- package/dist/types/deltas/apis/messaging/markAsRead.d.ts +1 -1
- package/dist/types/deltas/apis/messaging/markAsReadAll.d.ts +1 -2
- package/dist/types/deltas/apis/messaging/markAsSeen.d.ts +1 -1
- package/dist/types/deltas/apis/messaging/nickname.d.ts +7 -1
- package/dist/types/deltas/apis/messaging/notes.d.ts +13 -11
- package/dist/types/deltas/apis/messaging/resolvePhotoUrl.d.ts +4 -6
- package/dist/types/deltas/apis/messaging/sendMessage.d.ts +1 -1
- package/dist/types/deltas/apis/messaging/sendTypingIndicator.d.ts +1 -1
- package/dist/types/deltas/apis/messaging/setMessageReaction.d.ts +6 -1
- package/dist/types/deltas/apis/messaging/shareContact.d.ts +1 -2
- package/dist/types/deltas/apis/messaging/stickers.d.ts +1 -1
- package/dist/types/deltas/apis/messaging/theme.d.ts +8 -1
- package/dist/types/deltas/apis/messaging/unsendMessage.d.ts +6 -1
- package/dist/types/deltas/apis/posting/group.d.ts +1 -23
- package/dist/types/deltas/apis/posting/post.d.ts +23 -0
- package/dist/types/utils/constants.d.ts +26 -16
- package/dist/utils/constants.js +42 -29
- package/dist/utils/constants.js.map +1 -1
- package/package.json +1 -1
- package/src/core/models/buildAPI.ts +3 -3
- package/src/core/models/loginHelper.ts +32 -30
- package/src/deltas/apis/create.ts +10 -0
- package/src/deltas/apis/messaging/editMessage.ts +16 -26
- package/src/deltas/apis/messaging/emoji.ts +45 -97
- package/src/deltas/apis/messaging/gcmember.ts +68 -113
- package/src/deltas/apis/messaging/gcname.ts +42 -91
- package/src/deltas/apis/messaging/gcrule.ts +61 -111
- package/src/deltas/apis/messaging/markAsDelivered.ts +19 -14
- package/src/deltas/apis/messaging/markAsRead.ts +45 -72
- package/src/deltas/apis/messaging/markAsReadAll.ts +17 -17
- package/src/deltas/apis/messaging/markAsSeen.ts +17 -41
- package/src/deltas/apis/messaging/nickname.ts +50 -116
- package/src/deltas/apis/messaging/notes.ts +59 -95
- package/src/deltas/apis/messaging/resolvePhotoUrl.ts +27 -50
- package/src/deltas/apis/messaging/sendMessage.ts +28 -26
- package/src/deltas/apis/messaging/sendTypingIndicator.ts +13 -12
- package/src/deltas/apis/messaging/setMessageReaction.ts +45 -20
- package/src/deltas/apis/messaging/shareContact.ts +25 -15
- package/src/deltas/apis/messaging/stickers.ts +4 -4
- package/src/deltas/apis/messaging/theme.ts +172 -259
- package/src/deltas/apis/messaging/unsendMessage.ts +23 -7
- package/src/deltas/apis/posting/group.ts +56 -172
- package/src/deltas/apis/posting/post.ts +932 -33
- package/src/types/index.d.ts +35 -58
- package/src/utils/constants.ts +84 -57
- package/a.html +0 -537
- package/a.json +0 -5915
- package/src/utils/formatters.old.ts +0 -1049
- package/task.txt +0 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markAsDelivered.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/markAsDelivered.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"markAsDelivered.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/markAsDelivered.ts"],"names":[],"mappings":";;AAQA,kCA2CC;AAnDD,iBAAiB;AACjB,wCAAyC;AAEzC;;;;GAIG;AACH,SAAwB,eAAe,CACrC,YAAiB,EACjB,GAAQ,EACR,GAAQ;IAER;;;;;OAKG;IACH,OAAO,KAAK,UAAU,eAAe,CACnC,QAAgB,EAChB,SAAiB;QAEjB,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,6CAA6C,CAAC;YAC1D,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,MAAM,IAAI,GAAwB,EAAE,CAAC;QACrC,IAAI,CAAC,gBAAgB,CAAC,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,YAAY;iBAC/B,IAAI,CACH,6DAA6D,EAC7D,GAAG,CAAC,GAAG,EACP,IAAI,CACL;iBACA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAChC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;YAErD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,OAAO,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;YACpC,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default =
|
|
3
|
+
exports.default = markAsRead;
|
|
4
4
|
// @ChoruOfficial
|
|
5
5
|
const utils = require("../../../utils");
|
|
6
6
|
/**
|
|
@@ -8,77 +8,42 @@ const utils = require("../../../utils");
|
|
|
8
8
|
* @param {Object} api
|
|
9
9
|
* @param {Object} ctx
|
|
10
10
|
*/
|
|
11
|
-
function
|
|
11
|
+
function markAsRead(defaultFuncs, api, ctx) {
|
|
12
12
|
/**
|
|
13
|
-
* Marks a thread as read.
|
|
13
|
+
* Marks a thread as read or unread.
|
|
14
14
|
* @param {string} threadID - The ID of the thread to mark as read.
|
|
15
|
-
* @param {boolean} [read=true] - Whether to mark as read (true) or unread (false).
|
|
16
|
-
* @
|
|
17
|
-
* @returns {Promise<null|Error>} A Promise that resolves with null on success, or rejects with an Error.
|
|
15
|
+
* @param {boolean} [read=true] - Whether to mark as read (true) or unread (false).
|
|
16
|
+
* @returns {Promise<null>}
|
|
18
17
|
*/
|
|
19
|
-
return async function markAsRead(threadID, read
|
|
20
|
-
if (utils.getType(read) === "Function" ||
|
|
21
|
-
utils.getType(read) === "AsyncFunction") {
|
|
22
|
-
callback = read;
|
|
23
|
-
read = true;
|
|
24
|
-
}
|
|
25
|
-
if (read == undefined) {
|
|
26
|
-
read = true;
|
|
27
|
-
}
|
|
28
|
-
if (!callback) {
|
|
29
|
-
callback = () => { };
|
|
30
|
-
}
|
|
18
|
+
return async function markAsRead(threadID, read = true) {
|
|
31
19
|
const form = {};
|
|
32
|
-
if (typeof ctx.globalOptions.pageID !==
|
|
33
|
-
form[
|
|
34
|
-
form[
|
|
35
|
-
form[
|
|
36
|
-
form[
|
|
37
|
-
form[
|
|
38
|
-
form[
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
.then(utils.saveCookies(ctx.jar))
|
|
44
|
-
.then(utils.parseAndCheckLogin(ctx, defaultFuncs));
|
|
45
|
-
}
|
|
46
|
-
catch (e) {
|
|
47
|
-
callback(e);
|
|
48
|
-
return e;
|
|
49
|
-
}
|
|
20
|
+
if (typeof ctx.globalOptions.pageID !== 'undefined') {
|
|
21
|
+
form['source'] = 'PagesManagerMessagesInterface';
|
|
22
|
+
form['request_user_id'] = ctx.globalOptions.pageID;
|
|
23
|
+
form['ids[' + threadID + ']'] = read;
|
|
24
|
+
form['watermarkTimestamp'] = new Date().getTime();
|
|
25
|
+
form['shouldSendReadReceipt'] = true;
|
|
26
|
+
form['commerce_last_message_type'] = '';
|
|
27
|
+
const resData = await defaultFuncs
|
|
28
|
+
.post('https://www.facebook.com/ajax/mercury/change_read_status.php', ctx.jar, form)
|
|
29
|
+
.then(utils.saveCookies(ctx.jar))
|
|
30
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs));
|
|
50
31
|
if (resData.error) {
|
|
51
32
|
const err = resData.error;
|
|
52
|
-
utils.error(
|
|
53
|
-
|
|
54
|
-
return err;
|
|
33
|
+
utils.error('markAsRead', err);
|
|
34
|
+
throw new Error(err);
|
|
55
35
|
}
|
|
56
|
-
callback();
|
|
57
36
|
return null;
|
|
58
37
|
}
|
|
59
38
|
else {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
mark: "read",
|
|
65
|
-
state: read,
|
|
66
|
-
}), { qos: 1, retain: false }, r));
|
|
67
|
-
if (err)
|
|
68
|
-
throw err;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
throw {
|
|
72
|
-
error: "You can only use this function after you start listening.",
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
catch (e) {
|
|
77
|
-
callback(e);
|
|
78
|
-
return e;
|
|
39
|
+
if (!ctx.mqttClient) {
|
|
40
|
+
throw {
|
|
41
|
+
error: 'You can only use this function after you start listening.',
|
|
42
|
+
};
|
|
79
43
|
}
|
|
44
|
+
await new Promise((resolve, reject) => ctx.mqttClient.publish('/mark_thread', JSON.stringify({ threadID, mark: 'read', state: read }), { qos: 1, retain: false }, (err) => (err ? reject(err) : resolve())));
|
|
80
45
|
}
|
|
46
|
+
return null;
|
|
81
47
|
};
|
|
82
48
|
}
|
|
83
|
-
;
|
|
84
49
|
//# sourceMappingURL=markAsRead.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markAsRead.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/markAsRead.ts"],"names":[],"mappings":";;AAQA,
|
|
1
|
+
{"version":3,"file":"markAsRead.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/markAsRead.ts"],"names":[],"mappings":";;AAQA,6BA0DC;AAlED,iBAAiB;AACjB,wCAAyC;AAEzC;;;;GAIG;AACH,SAAwB,UAAU,CAChC,YAAiB,EACjB,GAAQ,EACR,GAAQ;IAER;;;;;OAKG;IACH,OAAO,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,OAAgB,IAAI;QAEpB,MAAM,IAAI,GAAwB,EAAE,CAAC;QAErC,IAAI,OAAO,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;YACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,+BAA+B,CAAC;YACjD,IAAI,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,MAAM,GAAG,QAAQ,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,oBAAoB,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAClD,IAAI,CAAC,uBAAuB,CAAC,GAAG,IAAI,CAAC;YACrC,IAAI,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC;YAExC,MAAM,OAAO,GAAG,MAAM,YAAY;iBAC/B,IAAI,CACH,8DAA8D,EAC9D,GAAG,CAAC,GAAG,EACP,IAAI,CACL;iBACA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAChC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;YAErD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC1B,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM;oBACJ,KAAK,EAAE,2DAA2D;iBACnE,CAAC;YACJ,CAAC;YACD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAC1C,GAAG,CAAC,UAAU,CAAC,OAAO,CACpB,cAAc,EACd,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACvD,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EACzB,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CACzC,CACF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default =
|
|
3
|
+
exports.default = markAsReadAll;
|
|
4
4
|
const utils = require("../../../utils");
|
|
5
5
|
// @ChoruOfficial
|
|
6
6
|
/**
|
|
7
7
|
* @param {Object} defaultFuncs
|
|
8
8
|
* @param {Object} api
|
|
9
9
|
* @param {Object} ctx
|
|
10
|
-
* @returns {function(): Promise<void>}
|
|
11
10
|
*/
|
|
12
|
-
function
|
|
11
|
+
function markAsReadAll(defaultFuncs, api, ctx) {
|
|
13
12
|
/**
|
|
13
|
+
* Marks all messages in the inbox as read.
|
|
14
14
|
* @returns {Promise<void>}
|
|
15
15
|
*/
|
|
16
16
|
return async function markAsReadAll() {
|
|
17
|
-
const form = {
|
|
18
|
-
folder: 'inbox',
|
|
19
|
-
};
|
|
17
|
+
const form = { folder: 'inbox' };
|
|
20
18
|
try {
|
|
21
|
-
const resData = await defaultFuncs
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
19
|
+
const resData = await defaultFuncs
|
|
20
|
+
.post('https://www.facebook.com/ajax/mercury/mark_folder_as_read.php', ctx.jar, form)
|
|
21
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs));
|
|
22
|
+
if (resData.error) {
|
|
23
|
+
throw resData;
|
|
25
24
|
}
|
|
26
|
-
return;
|
|
27
25
|
}
|
|
28
26
|
catch (err) {
|
|
29
27
|
utils.error('markAsReadAll', err);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markAsReadAll.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/markAsReadAll.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"markAsReadAll.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/markAsReadAll.ts"],"names":[],"mappings":";;AAQA,gCA6BC;AArCD,wCAAyC;AAEzC,iBAAiB;AACjB;;;;GAIG;AACH,SAAwB,aAAa,CACnC,YAAiB,EACjB,GAAQ,EACR,GAAQ;IAER;;;OAGG;IACH,OAAO,KAAK,UAAU,aAAa;QACjC,MAAM,IAAI,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAEjC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,YAAY;iBAC/B,IAAI,CACH,+DAA+D,EAC/D,GAAG,CAAC,GAAG,EACP,IAAI,CACL;iBACA,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;YAErD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,OAAO,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YAClC,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default =
|
|
3
|
+
exports.default = markAsSeen;
|
|
4
4
|
// @ChoruOfficial
|
|
5
5
|
const utils = require("../../../utils");
|
|
6
6
|
/**
|
|
@@ -8,57 +8,30 @@ const utils = require("../../../utils");
|
|
|
8
8
|
* @param {Object} api
|
|
9
9
|
* @param {Object} ctx
|
|
10
10
|
*/
|
|
11
|
-
function
|
|
11
|
+
function markAsSeen(defaultFuncs, api, ctx) {
|
|
12
12
|
/**
|
|
13
13
|
* Marks all messages as "seen" up to a specific timestamp.
|
|
14
|
-
* @param {number} [seen_timestamp=Date.now()] - The timestamp (in
|
|
15
|
-
* @
|
|
16
|
-
* @returns {Promise<void>} A Promise that resolves on success or rejects with an error.
|
|
14
|
+
* @param {number} [seen_timestamp=Date.now()] - The timestamp (in ms) up to which messages should be marked as seen.
|
|
15
|
+
* @returns {Promise<void>}
|
|
17
16
|
*/
|
|
18
|
-
return async function
|
|
19
|
-
|
|
20
|
-
let rejectFunc = function () { };
|
|
21
|
-
const returnPromise = new Promise(function (resolve, reject) {
|
|
22
|
-
resolveFunc = resolve;
|
|
23
|
-
rejectFunc = reject;
|
|
24
|
-
});
|
|
25
|
-
if (utils.getType(seen_timestamp) == "Function" || utils.getType(seen_timestamp) == "AsyncFunction") {
|
|
26
|
-
callback = seen_timestamp;
|
|
27
|
-
seen_timestamp = Date.now();
|
|
28
|
-
}
|
|
29
|
-
else if (seen_timestamp === undefined) {
|
|
30
|
-
seen_timestamp = Date.now();
|
|
31
|
-
}
|
|
32
|
-
if (!callback) {
|
|
33
|
-
callback = function (err, friendList) {
|
|
34
|
-
if (err) {
|
|
35
|
-
return rejectFunc(err);
|
|
36
|
-
}
|
|
37
|
-
resolveFunc(friendList);
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
const form = {
|
|
41
|
-
seen_timestamp: seen_timestamp,
|
|
42
|
-
};
|
|
17
|
+
return async function markAsSeen(seen_timestamp = Date.now()) {
|
|
18
|
+
const form = { seen_timestamp };
|
|
43
19
|
try {
|
|
44
20
|
const resData = await defaultFuncs
|
|
45
|
-
.post(
|
|
21
|
+
.post('https://www.facebook.com/ajax/mercury/mark_seen.php', ctx.jar, form)
|
|
46
22
|
.then(utils.saveCookies(ctx.jar))
|
|
47
23
|
.then(utils.parseAndCheckLogin(ctx, defaultFuncs));
|
|
48
24
|
if (resData.error) {
|
|
49
25
|
throw resData;
|
|
50
26
|
}
|
|
51
|
-
return callback();
|
|
52
27
|
}
|
|
53
28
|
catch (err) {
|
|
54
|
-
utils.error(
|
|
55
|
-
if (utils.getType(err)
|
|
29
|
+
utils.error('markAsSeen', err);
|
|
30
|
+
if (utils.getType(err) === 'Object' && err.error === 'Not logged in.') {
|
|
56
31
|
ctx.loggedIn = false;
|
|
57
32
|
}
|
|
58
|
-
|
|
33
|
+
throw err;
|
|
59
34
|
}
|
|
60
|
-
return returnPromise;
|
|
61
35
|
};
|
|
62
36
|
}
|
|
63
|
-
;
|
|
64
37
|
//# sourceMappingURL=markAsSeen.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markAsSeen.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/markAsSeen.ts"],"names":[],"mappings":";;AAQA,
|
|
1
|
+
{"version":3,"file":"markAsSeen.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/markAsSeen.ts"],"names":[],"mappings":";;AAQA,6BAoCC;AA5CD,iBAAiB;AACjB,wCAAyC;AAEzC;;;;GAIG;AACH,SAAwB,UAAU,CAChC,YAAiB,EACjB,GAAQ,EACR,GAAQ;IAER;;;;OAIG;IACH,OAAO,KAAK,UAAU,UAAU,CAC9B,iBAAyB,IAAI,CAAC,GAAG,EAAE;QAEnC,MAAM,IAAI,GAAG,EAAE,cAAc,EAAE,CAAC;QAEhC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,YAAY;iBAC/B,IAAI,CACH,qDAAqD,EACrD,GAAG,CAAC,GAAG,EACP,IAAI,CACL;iBACA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAChC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;YAErD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM,OAAO,CAAC;YAChB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAK,GAAW,CAAC,KAAK,KAAK,gBAAgB,EAAE,CAAC;gBAC/E,GAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;YACvB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,93 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default =
|
|
3
|
+
exports.default = nickname;
|
|
4
4
|
const utils = require("../../../utils");
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* @module nickname
|
|
7
|
+
* @param {Object} defaultFuncs
|
|
8
|
+
* @param {Object} api
|
|
9
|
+
* @param {Object} ctx
|
|
10
|
+
*/
|
|
11
|
+
function nickname(defaultFuncs, api, ctx) {
|
|
6
12
|
/**
|
|
7
|
-
* Made by Choru Official
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
* @param {string}
|
|
12
|
-
* @
|
|
13
|
-
* @param {string} participantID The ID of the participant whose nickname will be changed. Defaults to the current user's ID if not provided or a function.
|
|
14
|
-
* @param {Function} [callback] Optional callback function to be invoked upon completion.
|
|
15
|
-
* @param {string} [initiatorID] The ID of the user who initiated the nickname change (e.g., from event.senderID).
|
|
16
|
-
* @returns {Promise<object>} A promise that resolves with a structured event object on success or rejects on error.
|
|
13
|
+
* Made by Choru Official — Sets a nickname for a participant in a thread via MQTT.
|
|
14
|
+
* @param {string} nickname - The new nickname to set.
|
|
15
|
+
* @param {string} threadID - The ID of the thread.
|
|
16
|
+
* @param {string} [participantID] - The ID of the participant. Defaults to the bot's own ID.
|
|
17
|
+
* @param {string} [initiatorID] - The ID of the user initiating the change.
|
|
18
|
+
* @returns {Promise<object>}
|
|
17
19
|
*/
|
|
18
|
-
return function setNickname(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
if (utils.getType(callback) === 'Function' ||
|
|
28
|
-
utils.getType(callback) === 'AsyncFunction') {
|
|
29
|
-
_callback = callback;
|
|
30
|
-
_initiatorID = initiatorID;
|
|
31
|
-
}
|
|
32
|
-
else if (utils.getType(threadID) === 'Function' ||
|
|
33
|
-
utils.getType(threadID) === 'AsyncFunction') {
|
|
34
|
-
_callback = threadID;
|
|
35
|
-
threadID = null;
|
|
36
|
-
_initiatorID = callback;
|
|
37
|
-
}
|
|
38
|
-
else if (utils.getType(participantID) === 'Function' ||
|
|
39
|
-
utils.getType(participantID) === 'AsyncFunction') {
|
|
40
|
-
_callback = participantID;
|
|
41
|
-
participantID = ctx.userID;
|
|
42
|
-
_initiatorID = callback;
|
|
43
|
-
}
|
|
44
|
-
else if (utils.getType(callback) === 'string') {
|
|
45
|
-
_initiatorID = callback;
|
|
46
|
-
_callback = undefined;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
_callback = undefined;
|
|
50
|
-
_initiatorID = undefined;
|
|
51
|
-
}
|
|
52
|
-
if (!_callback) {
|
|
53
|
-
_callback = function (__err, __data) {
|
|
54
|
-
if (__err)
|
|
55
|
-
_rejectPromise(__err);
|
|
56
|
-
else
|
|
57
|
-
_resolvePromise(__data);
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
const originalCallback = _callback;
|
|
62
|
-
_callback = function (__err, __data) {
|
|
63
|
-
if (__err) {
|
|
64
|
-
originalCallback(__err);
|
|
65
|
-
_rejectPromise(__err);
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
originalCallback(null, __data);
|
|
69
|
-
_resolvePromise(__data);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
_initiatorID = _initiatorID || ctx.userID;
|
|
74
|
-
threadID = threadID || ctx.threadID;
|
|
75
|
-
participantID = participantID || ctx.userID;
|
|
76
|
-
if (!threadID) {
|
|
77
|
-
return _callback(new Error('threadID is required to set a nickname.'));
|
|
78
|
-
}
|
|
79
|
-
if (typeof nickname !== 'string') {
|
|
80
|
-
return _callback(new Error('nickname must be a string.'));
|
|
81
|
-
}
|
|
82
|
-
if (!ctx.mqttClient) {
|
|
83
|
-
return _callback(new Error('Not connected to MQTT'));
|
|
84
|
-
}
|
|
20
|
+
return async function setNickname(nicknameStr, threadID, participantID, initiatorID) {
|
|
21
|
+
const _initiatorID = initiatorID || ctx.userID;
|
|
22
|
+
const _participantID = participantID || ctx.userID;
|
|
23
|
+
if (!threadID)
|
|
24
|
+
throw new TypeError('threadID is required to set a nickname.');
|
|
25
|
+
if (typeof nicknameStr !== 'string')
|
|
26
|
+
throw new TypeError('nickname must be a string.');
|
|
27
|
+
if (!ctx.mqttClient)
|
|
28
|
+
throw new Error('Not connected to MQTT');
|
|
85
29
|
ctx.wsReqNumber += 1;
|
|
86
30
|
ctx.wsTaskNumber += 1;
|
|
87
31
|
const queryPayload = {
|
|
88
32
|
thread_key: threadID.toString(),
|
|
89
|
-
contact_id:
|
|
90
|
-
nickname:
|
|
33
|
+
contact_id: _participantID.toString(),
|
|
34
|
+
nickname: nicknameStr,
|
|
91
35
|
sync_group: 1,
|
|
92
36
|
};
|
|
93
37
|
const query = {
|
|
@@ -100,7 +44,7 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
100
44
|
const context = {
|
|
101
45
|
app_id: ctx.appID,
|
|
102
46
|
payload: {
|
|
103
|
-
epoch_id: parseInt(utils.generateOfflineThreadingID()),
|
|
47
|
+
epoch_id: Number.parseInt(utils.generateOfflineThreadingID()),
|
|
104
48
|
tasks: [query],
|
|
105
49
|
version_id: '24631415369801570',
|
|
106
50
|
},
|
|
@@ -108,22 +52,18 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
108
52
|
type: 3,
|
|
109
53
|
};
|
|
110
54
|
context.payload = JSON.stringify(context.payload);
|
|
111
|
-
ctx.mqttClient.publish('/ls_req', JSON.stringify(context), { qos: 1, retain: false }, (err) =>
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
};
|
|
124
|
-
_callback(null, nicknameChangeEvent);
|
|
125
|
-
});
|
|
126
|
-
return returnPromise;
|
|
55
|
+
await new Promise((resolve, reject) => ctx.mqttClient.publish('/ls_req', JSON.stringify(context), { qos: 1, retain: false }, (err) => err
|
|
56
|
+
? reject(new Error(`MQTT publish failed for setNickname: ${err.message || err}`))
|
|
57
|
+
: resolve()));
|
|
58
|
+
return {
|
|
59
|
+
type: 'thread_nickname_update',
|
|
60
|
+
threadID,
|
|
61
|
+
participantID: _participantID,
|
|
62
|
+
newNickname: nicknameStr,
|
|
63
|
+
senderID: _initiatorID,
|
|
64
|
+
BotID: ctx.userID,
|
|
65
|
+
timestamp: Date.now(),
|
|
66
|
+
};
|
|
127
67
|
};
|
|
128
68
|
}
|
|
129
69
|
//# sourceMappingURL=nickname.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nickname.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/nickname.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"nickname.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/nickname.ts"],"names":[],"mappings":";;AAQA,2BA8EC;AAtFD,wCAAyC;AAEzC;;;;;GAKG;AACH,SAAwB,QAAQ,CAC9B,YAAiB,EACjB,GAAQ,EACR,GAAQ;IAER;;;;;;;OAOG;IACH,OAAO,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,QAAgB,EAChB,aAAsB,EACtB,WAAoB;QAEpB,MAAM,YAAY,GAAG,WAAW,IAAI,GAAG,CAAC,MAAM,CAAC;QAC/C,MAAM,cAAc,GAAG,aAAa,IAAI,GAAG,CAAC,MAAM,CAAC;QAEnD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;QAC9E,IAAI,OAAO,WAAW,KAAK,QAAQ;YAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAE9D,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC;QACrB,GAAG,CAAC,YAAY,IAAI,CAAC,CAAC;QAEtB,MAAM,YAAY,GAAG;YACnB,UAAU,EAAE,QAAQ,CAAC,QAAQ,EAAE;YAC/B,UAAU,EAAE,cAAc,CAAC,QAAQ,EAAE;YACrC,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,CAAC;SACd,CAAC;QAEF,MAAM,KAAK,GAAG;YACZ,aAAa,EAAE,IAAI;YACnB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YACrC,UAAU,EAAE,6BAA6B;YACzC,OAAO,EAAE,GAAG,CAAC,YAAY;SAC1B,CAAC;QAEF,MAAM,OAAO,GAAQ;YACnB,MAAM,EAAE,GAAG,CAAC,KAAK;YACjB,OAAO,EAAE;gBACP,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,0BAA0B,EAAE,CAAC;gBAC7D,KAAK,EAAE,CAAC,KAAK,CAAC;gBACd,UAAU,EAAE,mBAAmB;aAChC;YACD,UAAU,EAAE,GAAG,CAAC,WAAW;YAC3B,IAAI,EAAE,CAAC;SACR,CAAC;QACF,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAElD,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAC1C,GAAG,CAAC,UAAU,CAAC,OAAO,CACpB,SAAS,EACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EACvB,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EACzB,CAAC,GAAG,EAAE,EAAE,CACN,GAAG;YACD,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wCAAwC,GAAG,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAC;YACjF,CAAC,CAAC,OAAO,EAAE,CAChB,CACF,CAAC;QAEF,OAAO;YACL,IAAI,EAAE,wBAAwB;YAC9B,QAAQ;YACR,aAAa,EAAE,cAAc;YAC7B,WAAW,EAAE,WAAW;YACxB,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,GAAG,CAAC,MAAM;YACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,58 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default =
|
|
3
|
+
exports.default = notes;
|
|
4
4
|
const utils = require("../../../utils");
|
|
5
5
|
/**
|
|
6
|
-
* @
|
|
7
|
-
* @description
|
|
8
|
-
* @param {Object} defaultFuncs
|
|
9
|
-
* @param {Object} api
|
|
10
|
-
* @param {Object} ctx
|
|
11
|
-
* @returns {Object} An object containing methods to create, delete, recreate, and check notes.
|
|
6
|
+
* @module notes
|
|
7
|
+
* @description Interacts with Facebook Messenger Notes (temporary status-like notes).
|
|
8
|
+
* @param {Object} defaultFuncs
|
|
9
|
+
* @param {Object} api
|
|
10
|
+
* @param {Object} ctx
|
|
12
11
|
*/
|
|
13
|
-
function
|
|
14
|
-
/**
|
|
15
|
-
* @callback notesCallback
|
|
16
|
-
* @param {Error|null} error An error object if the request fails, otherwise null.
|
|
17
|
-
* @param {Object} [data] The data returned from the API.
|
|
18
|
-
*/
|
|
12
|
+
function notes(defaultFuncs, api, ctx) {
|
|
19
13
|
/**
|
|
20
14
|
* Checks for the currently active note for the logged-in user.
|
|
21
|
-
* @
|
|
15
|
+
* @returns {Promise<object|null>}
|
|
22
16
|
*/
|
|
23
|
-
function checkNote(
|
|
24
|
-
if (typeof callback !== 'function') {
|
|
25
|
-
callback = () => { };
|
|
26
|
-
}
|
|
17
|
+
async function checkNote() {
|
|
27
18
|
const form = {
|
|
28
19
|
fb_api_caller_class: 'RelayModern',
|
|
29
20
|
fb_api_req_friendly_name: 'MWInboxTrayNoteCreationDialogQuery',
|
|
30
21
|
variables: JSON.stringify({ scale: 2 }),
|
|
31
22
|
doc_id: '30899655739648624',
|
|
32
23
|
};
|
|
33
|
-
defaultFuncs
|
|
24
|
+
const resData = await defaultFuncs
|
|
34
25
|
.post('https://www.facebook.com/api/graphql/', ctx.jar, form)
|
|
35
|
-
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
})
|
|
42
|
-
.catch((err) => {
|
|
43
|
-
utils.error('notes.checkNote', err);
|
|
44
|
-
callback(err);
|
|
45
|
-
});
|
|
26
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs));
|
|
27
|
+
if (resData?.errors) {
|
|
28
|
+
utils.error('notes.checkNote', resData.errors[0]);
|
|
29
|
+
throw resData.errors[0];
|
|
30
|
+
}
|
|
31
|
+
return resData?.data?.viewer?.actor?.msgr_user_rich_status ?? null;
|
|
46
32
|
}
|
|
47
33
|
/**
|
|
48
|
-
* Creates a new note with the provided text. The note lasts for 24 hours
|
|
49
|
-
* @param {string} text The content of the note.
|
|
50
|
-
* @param {
|
|
34
|
+
* Creates a new note with the provided text. The note lasts for 24 hours.
|
|
35
|
+
* @param {string} text - The content of the note.
|
|
36
|
+
* @param {string} [privacy="EVERYONE"] - Privacy setting.
|
|
37
|
+
* @returns {Promise<object>}
|
|
51
38
|
*/
|
|
52
|
-
function createNote(text, privacy = 'EVERYONE'
|
|
53
|
-
if (typeof callback !== 'function') {
|
|
54
|
-
callback = () => { };
|
|
55
|
-
}
|
|
39
|
+
async function createNote(text, privacy = 'EVERYONE') {
|
|
56
40
|
const variables = {
|
|
57
41
|
input: {
|
|
58
42
|
client_mutation_id: Math.round(Math.random() * 10).toString(),
|
|
@@ -70,31 +54,24 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
70
54
|
variables: JSON.stringify(variables),
|
|
71
55
|
doc_id: '24060573783603122',
|
|
72
56
|
};
|
|
73
|
-
defaultFuncs
|
|
57
|
+
const resData = await defaultFuncs
|
|
74
58
|
.post('https://www.facebook.com/api/graphql/', ctx.jar, form)
|
|
75
|
-
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
.catch((err) => {
|
|
85
|
-
utils.error('notes.createNote', err);
|
|
86
|
-
callback(err);
|
|
87
|
-
});
|
|
59
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs));
|
|
60
|
+
if (resData?.errors) {
|
|
61
|
+
utils.error('notes.createNote', resData.errors[0]);
|
|
62
|
+
throw resData.errors[0];
|
|
63
|
+
}
|
|
64
|
+
const status = resData?.data?.xfb_rich_status_create?.status;
|
|
65
|
+
if (!status)
|
|
66
|
+
throw new Error('Could not find note status in the server response.');
|
|
67
|
+
return status;
|
|
88
68
|
}
|
|
89
69
|
/**
|
|
90
70
|
* Deletes a specific note by its ID.
|
|
91
|
-
* @param {string} noteID The ID of the note to
|
|
92
|
-
* @
|
|
71
|
+
* @param {string} noteID - The ID of the note to delete.
|
|
72
|
+
* @returns {Promise<object>}
|
|
93
73
|
*/
|
|
94
|
-
function deleteNote(noteID
|
|
95
|
-
if (typeof callback !== 'function') {
|
|
96
|
-
callback = () => { };
|
|
97
|
-
}
|
|
74
|
+
async function deleteNote(noteID) {
|
|
98
75
|
const variables = {
|
|
99
76
|
input: {
|
|
100
77
|
client_mutation_id: Math.round(Math.random() * 10).toString(),
|
|
@@ -108,43 +85,28 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
108
85
|
variables: JSON.stringify(variables),
|
|
109
86
|
doc_id: '9532619970198958',
|
|
110
87
|
};
|
|
111
|
-
defaultFuncs
|
|
88
|
+
const resData = await defaultFuncs
|
|
112
89
|
.post('https://www.facebook.com/api/graphql/', ctx.jar, form)
|
|
113
|
-
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
.catch((err) => {
|
|
123
|
-
utils.error('notes.deleteNote', err);
|
|
124
|
-
callback(err);
|
|
125
|
-
});
|
|
90
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs));
|
|
91
|
+
if (resData?.errors) {
|
|
92
|
+
utils.error('notes.deleteNote', resData.errors[0]);
|
|
93
|
+
throw resData.errors[0];
|
|
94
|
+
}
|
|
95
|
+
const deletedStatus = resData?.data?.xfb_rich_status_delete;
|
|
96
|
+
if (!deletedStatus)
|
|
97
|
+
throw new Error('Could not find deletion status in the server response.');
|
|
98
|
+
return deletedStatus;
|
|
126
99
|
}
|
|
127
100
|
/**
|
|
128
|
-
*
|
|
129
|
-
* @param {string} oldNoteID The ID of the note to delete.
|
|
130
|
-
* @param {string} newText The text for the new note.
|
|
131
|
-
* @
|
|
101
|
+
* Deletes an old note and creates a new one.
|
|
102
|
+
* @param {string} oldNoteID - The ID of the note to delete.
|
|
103
|
+
* @param {string} newText - The text for the new note.
|
|
104
|
+
* @returns {Promise<{ deleted: object, created: object }>}
|
|
132
105
|
*/
|
|
133
|
-
function recreateNote(oldNoteID, newText
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
}
|
|
137
|
-
deleteNote(oldNoteID, (err, deleted) => {
|
|
138
|
-
if (err) {
|
|
139
|
-
return callback(err);
|
|
140
|
-
}
|
|
141
|
-
createNote(newText, undefined, (err, created) => {
|
|
142
|
-
if (err) {
|
|
143
|
-
return callback(err);
|
|
144
|
-
}
|
|
145
|
-
callback(null, { deleted, created });
|
|
146
|
-
});
|
|
147
|
-
});
|
|
106
|
+
async function recreateNote(oldNoteID, newText) {
|
|
107
|
+
const deleted = await deleteNote(oldNoteID);
|
|
108
|
+
const created = await createNote(newText);
|
|
109
|
+
return { deleted, created };
|
|
148
110
|
}
|
|
149
111
|
return {
|
|
150
112
|
create: createNote,
|