bb-fca 2.0.9 → 2.0.11
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/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 +440 -11
- package/dist/deltas/apis/posting/group.js.map +1 -1
- package/dist/index.d.ts +18 -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 +88 -0
- package/package.json +1 -1
- 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 +516 -11
- package/src/types/index.d.ts +18 -0
- package/request.txt +0 -60
|
@@ -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,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notes.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/notes.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"notes.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/notes.ts"],"names":[],"mappings":";;AASA,wBAuHC;AAhID,wCAAyC;AAEzC;;;;;;GAMG;AACH,SAAwB,KAAK,CAC3B,YAAiB,EACjB,GAAQ,EACR,GAAQ;IAER;;;OAGG;IACH,KAAK,UAAU,SAAS;QACtB,MAAM,IAAI,GAAG;YACX,mBAAmB,EAAE,aAAa;YAClC,wBAAwB,EAAE,oCAAoC;YAC9D,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACvC,MAAM,EAAE,mBAAmB;SAC5B,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,YAAY;aAC/B,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;aAC5D,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QAErD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,qBAAqB,IAAI,IAAI,CAAC;IACrE,CAAC;IAED;;;;;OAKG;IACH,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,OAAO,GAAG,UAAU;QAC1D,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE;gBACL,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAC7D,QAAQ,EAAE,GAAG,CAAC,MAAM;gBACpB,WAAW,EAAE,IAAI;gBACjB,QAAQ,EAAE,KAAK,EAAE,sBAAsB;gBACvC,SAAS,EAAE,WAAW;gBACtB,OAAO;gBACP,UAAU,EAAE,KAAK,CAAC,OAAO,EAAE;aAC5B;SACF,CAAC;QACF,MAAM,IAAI,GAAG;YACX,mBAAmB,EAAE,aAAa;YAClC,wBAAwB,EAAE,0DAA0D;YACpF,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACpC,MAAM,EAAE,mBAAmB;SAC5B,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,YAAY;aAC/B,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;aAC5D,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QAErD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,CAAC;QAC7D,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACnF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,UAAU,UAAU,CAAC,MAAc;QACtC,MAAM,SAAS,GAAG;YAChB,KAAK,EAAE;gBACL,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;gBAC7D,QAAQ,EAAE,GAAG,CAAC,MAAM;gBACpB,cAAc,EAAE,MAAM;aACvB;SACF,CAAC;QACF,MAAM,IAAI,GAAG;YACX,mBAAmB,EAAE,aAAa;YAClC,wBAAwB,EAAE,kCAAkC;YAC5D,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACpC,MAAM,EAAE,kBAAkB;SAC3B,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,YAAY;aAC/B,IAAI,CAAC,uCAAuC,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;aAC5D,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QAErD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,EAAE,IAAI,EAAE,sBAAsB,CAAC;QAC5D,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC9F,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;;;OAKG;IACH,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,OAAe;QAC5D,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,YAAY;QACtB,KAAK,EAAE,SAAS;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -1,55 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.default =
|
|
3
|
+
exports.default = resolvePhotoUrl;
|
|
4
4
|
const utils = require("../../../utils");
|
|
5
5
|
/**
|
|
6
6
|
* @module resolvePhotoUrl
|
|
7
|
-
* @
|
|
8
|
-
* @param {Object}
|
|
9
|
-
* @param {Object}
|
|
10
|
-
* @param {Object} ctx - Context object containing cookies (jar) and other session info.
|
|
11
|
-
* @returns {Function} resolvePhotoUrl - A function that takes a photo ID and optional callback, and returns a Promise resolving to the photo URL.
|
|
7
|
+
* @param {Object} defaultFuncs
|
|
8
|
+
* @param {Object} api
|
|
9
|
+
* @param {Object} ctx
|
|
12
10
|
*/
|
|
13
|
-
function
|
|
11
|
+
function resolvePhotoUrl(defaultFuncs, api, ctx) {
|
|
14
12
|
/**
|
|
15
|
-
*
|
|
16
|
-
* @param {string} photoID - The ID of the Facebook photo
|
|
17
|
-
* @
|
|
18
|
-
* @returns {Promise<string>} A Promise that resolves to the direct photo URL.
|
|
13
|
+
* Fetches the direct URL of a Facebook photo by its photo ID.
|
|
14
|
+
* @param {string} photoID - The ID of the Facebook photo.
|
|
15
|
+
* @returns {Promise<string>} Resolves to the direct photo URL.
|
|
19
16
|
*/
|
|
20
|
-
return function resolvePhotoUrl(photoID
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
const returnPromise = new Promise(function (resolve, reject) {
|
|
24
|
-
resolveFunc = resolve;
|
|
25
|
-
rejectFunc = reject;
|
|
26
|
-
});
|
|
27
|
-
if (!callback) {
|
|
28
|
-
callback = function (err, photoUrl) {
|
|
29
|
-
if (err) {
|
|
30
|
-
return rejectFunc(err);
|
|
31
|
-
}
|
|
32
|
-
resolveFunc(photoUrl);
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
defaultFuncs
|
|
36
|
-
.get("https://www.facebook.com/mercury/attachments/photo", ctx.jar, {
|
|
17
|
+
return async function resolvePhotoUrl(photoID) {
|
|
18
|
+
const resData = await defaultFuncs
|
|
19
|
+
.get('https://www.facebook.com/mercury/attachments/photo', ctx.jar, {
|
|
37
20
|
photo_id: photoID,
|
|
38
21
|
})
|
|
39
|
-
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return callback(null, photoUrl);
|
|
46
|
-
})
|
|
47
|
-
.catch((err) => {
|
|
48
|
-
utils.error("resolvePhotoUrl", err);
|
|
49
|
-
return callback(err);
|
|
50
|
-
});
|
|
51
|
-
return returnPromise;
|
|
22
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs));
|
|
23
|
+
if (resData.error) {
|
|
24
|
+
utils.error('resolvePhotoUrl', resData.error);
|
|
25
|
+
throw resData;
|
|
26
|
+
}
|
|
27
|
+
return resData.jsmods.require[0][3][0];
|
|
52
28
|
};
|
|
53
29
|
}
|
|
54
|
-
;
|
|
55
30
|
//# sourceMappingURL=resolvePhotoUrl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvePhotoUrl.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/resolvePhotoUrl.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"resolvePhotoUrl.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/resolvePhotoUrl.ts"],"names":[],"mappings":";;AAQA,kCAwBC;AAhCD,wCAAyC;AAEzC;;;;;GAKG;AACH,SAAwB,eAAe,CACrC,YAAiB,EACjB,GAAQ,EACR,GAAQ;IAER;;;;OAIG;IACH,OAAO,KAAK,UAAU,eAAe,CAAC,OAAe;QACnD,MAAM,OAAO,GAAG,MAAM,YAAY;aAC/B,GAAG,CAAC,oDAAoD,EAAE,GAAG,CAAC,GAAG,EAAE;YAClE,QAAQ,EAAE,OAAO;SAClB,CAAC;aACD,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;QAErD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,KAAK,CAAC,KAAK,CAAC,iBAAiB,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAC9C,MAAM,OAAO,CAAC;QAChB,CAAC;QAED,OAAO,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,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 = sendMessage;
|
|
4
4
|
const utils = require("../../../utils");
|
|
5
5
|
// @NethWs3Dev
|
|
6
6
|
const allowedProperties = {
|
|
@@ -13,10 +13,10 @@ const allowedProperties = {
|
|
|
13
13
|
mentions: true,
|
|
14
14
|
location: true,
|
|
15
15
|
};
|
|
16
|
-
function
|
|
16
|
+
function sendMessage(defaultFuncs, api, ctx) {
|
|
17
17
|
async function uploadAttachment(attachments) {
|
|
18
|
-
|
|
19
|
-
for (
|
|
18
|
+
const uploads = [];
|
|
19
|
+
for (let i = 0; i < attachments.length; i++) {
|
|
20
20
|
if (!utils.isReadableStream(attachments[i])) {
|
|
21
21
|
throw new Error('Attachment should be a readable stream and not ' +
|
|
22
22
|
utils.getType(attachments[i]) +
|
|
@@ -47,14 +47,14 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
47
47
|
throw new Error(resData);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
async function sendContent(form, threadID, isSingleUser, messageAndOTID
|
|
50
|
+
async function sendContent(form, threadID, isSingleUser, messageAndOTID) {
|
|
51
51
|
// There are three cases here:
|
|
52
52
|
// 1. threadID is of type array, where we're starting a new group chat with users
|
|
53
53
|
// specified in the array.
|
|
54
54
|
// 2. User is sending a message to a specific user.
|
|
55
55
|
// 3. No additional form params and the message goes to an existing group chat.
|
|
56
56
|
if (utils.getType(threadID) === 'Array') {
|
|
57
|
-
for (
|
|
57
|
+
for (let i = 0; i < threadID.length; i++) {
|
|
58
58
|
form['specific_to_list[' + i + ']'] = 'fbid:' + threadID[i];
|
|
59
59
|
}
|
|
60
60
|
form['specific_to_list[' + threadID.length + ']'] = 'fbid:' + ctx.userID;
|
|
@@ -106,10 +106,10 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
106
106
|
}, null);
|
|
107
107
|
return messageInfo;
|
|
108
108
|
}
|
|
109
|
-
return async (msg, threadID, replyToMessage, isSingleUser = false)
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
109
|
+
return async function sendMessage(msg, threadID, replyToMessage, isSingleUser = false) {
|
|
110
|
+
const msgType = utils.getType(msg);
|
|
111
|
+
const threadIDType = utils.getType(threadID);
|
|
112
|
+
const messageIDType = utils.getType(replyToMessage);
|
|
113
113
|
if (msgType !== 'String' && msgType !== 'Object')
|
|
114
114
|
throw new Error('Message should be of type string or object and not ' + msgType + '.');
|
|
115
115
|
if (threadIDType !== 'Array' &&
|
|
@@ -123,12 +123,12 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
123
123
|
if (msgType === 'String') {
|
|
124
124
|
msg = { body: msg };
|
|
125
125
|
}
|
|
126
|
-
|
|
126
|
+
const disallowedProperties = Object.keys(msg).filter((prop) => !allowedProperties[prop]);
|
|
127
127
|
if (disallowedProperties.length > 0) {
|
|
128
128
|
throw new Error('Dissallowed props: `' + disallowedProperties.join(', ') + '`');
|
|
129
129
|
}
|
|
130
|
-
|
|
131
|
-
|
|
130
|
+
const messageAndOTID = utils.generateOfflineThreadingID();
|
|
131
|
+
const form = {
|
|
132
132
|
client: 'mercury',
|
|
133
133
|
action_type: 'ma-type:user-generated-message',
|
|
134
134
|
author: 'fbid:' + ctx.userID,
|
|
@@ -232,8 +232,7 @@ function default_1(defaultFuncs, api, ctx) {
|
|
|
232
232
|
form['profile_xmd[' + i + '][type]'] = 'p';
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
|
-
|
|
236
|
-
return result;
|
|
235
|
+
return await sendContent(form, threadID, isSingleUser, messageAndOTID);
|
|
237
236
|
};
|
|
238
237
|
}
|
|
239
238
|
//# sourceMappingURL=sendMessage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendMessage.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/sendMessage.ts"],"names":[],"mappings":";;AAcA,
|
|
1
|
+
{"version":3,"file":"sendMessage.js","sourceRoot":"","sources":["../../../../src/deltas/apis/messaging/sendMessage.ts"],"names":[],"mappings":"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"}
|