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.
Files changed (105) hide show
  1. package/dist/core/models/buildAPI.js +3 -3
  2. package/dist/core/models/buildAPI.js.map +1 -1
  3. package/dist/core/models/loginHelper.js +29 -28
  4. package/dist/core/models/loginHelper.js.map +1 -1
  5. package/dist/deltas/apis/create.js +9 -0
  6. package/dist/deltas/apis/create.js.map +1 -1
  7. package/dist/deltas/apis/messaging/editMessage.js +13 -24
  8. package/dist/deltas/apis/messaging/editMessage.js.map +1 -1
  9. package/dist/deltas/apis/messaging/emoji.js +34 -88
  10. package/dist/deltas/apis/messaging/emoji.js.map +1 -1
  11. package/dist/deltas/apis/messaging/gcmember.js +48 -101
  12. package/dist/deltas/apis/messaging/gcmember.js.map +1 -1
  13. package/dist/deltas/apis/messaging/gcname.js +28 -79
  14. package/dist/deltas/apis/messaging/gcname.js.map +1 -1
  15. package/dist/deltas/apis/messaging/gcrule.js +47 -105
  16. package/dist/deltas/apis/messaging/gcrule.js.map +1 -1
  17. package/dist/deltas/apis/messaging/markAsDelivered.js +10 -12
  18. package/dist/deltas/apis/messaging/markAsDelivered.js.map +1 -1
  19. package/dist/deltas/apis/messaging/markAsRead.js +25 -60
  20. package/dist/deltas/apis/messaging/markAsRead.js.map +1 -1
  21. package/dist/deltas/apis/messaging/markAsReadAll.js +9 -11
  22. package/dist/deltas/apis/messaging/markAsReadAll.js.map +1 -1
  23. package/dist/deltas/apis/messaging/markAsSeen.js +10 -37
  24. package/dist/deltas/apis/messaging/markAsSeen.js.map +1 -1
  25. package/dist/deltas/apis/messaging/nickname.js +38 -98
  26. package/dist/deltas/apis/messaging/nickname.js.map +1 -1
  27. package/dist/deltas/apis/messaging/notes.js +52 -90
  28. package/dist/deltas/apis/messaging/notes.js.map +1 -1
  29. package/dist/deltas/apis/messaging/resolvePhotoUrl.js +17 -42
  30. package/dist/deltas/apis/messaging/resolvePhotoUrl.js.map +1 -1
  31. package/dist/deltas/apis/messaging/sendMessage.js +14 -15
  32. package/dist/deltas/apis/messaging/sendMessage.js.map +1 -1
  33. package/dist/deltas/apis/messaging/sendTypingIndicator.js +7 -13
  34. package/dist/deltas/apis/messaging/sendTypingIndicator.js.map +1 -1
  35. package/dist/deltas/apis/messaging/setMessageReaction.js +24 -14
  36. package/dist/deltas/apis/messaging/setMessageReaction.js.map +1 -1
  37. package/dist/deltas/apis/messaging/shareContact.js +14 -12
  38. package/dist/deltas/apis/messaging/shareContact.js.map +1 -1
  39. package/dist/deltas/apis/messaging/stickers.js +4 -5
  40. package/dist/deltas/apis/messaging/stickers.js.map +1 -1
  41. package/dist/deltas/apis/messaging/theme.js +142 -213
  42. package/dist/deltas/apis/messaging/theme.js.map +1 -1
  43. package/dist/deltas/apis/messaging/unsendMessage.js +14 -7
  44. package/dist/deltas/apis/messaging/unsendMessage.js.map +1 -1
  45. package/dist/deltas/apis/posting/group.js +22 -129
  46. package/dist/deltas/apis/posting/group.js.map +1 -1
  47. package/dist/deltas/apis/posting/post.js +805 -12
  48. package/dist/deltas/apis/posting/post.js.map +1 -1
  49. package/dist/index.d.ts +35 -58
  50. package/dist/types/deltas/apis/create.d.ts +9 -0
  51. package/dist/types/deltas/apis/messaging/editMessage.d.ts +4 -5
  52. package/dist/types/deltas/apis/messaging/emoji.d.ts +7 -1
  53. package/dist/types/deltas/apis/messaging/gcmember.d.ts +7 -1
  54. package/dist/types/deltas/apis/messaging/gcname.d.ts +9 -1
  55. package/dist/types/deltas/apis/messaging/gcrule.d.ts +7 -1
  56. package/dist/types/deltas/apis/messaging/markAsDelivered.d.ts +1 -2
  57. package/dist/types/deltas/apis/messaging/markAsRead.d.ts +1 -1
  58. package/dist/types/deltas/apis/messaging/markAsReadAll.d.ts +1 -2
  59. package/dist/types/deltas/apis/messaging/markAsSeen.d.ts +1 -1
  60. package/dist/types/deltas/apis/messaging/nickname.d.ts +7 -1
  61. package/dist/types/deltas/apis/messaging/notes.d.ts +13 -11
  62. package/dist/types/deltas/apis/messaging/resolvePhotoUrl.d.ts +4 -6
  63. package/dist/types/deltas/apis/messaging/sendMessage.d.ts +1 -1
  64. package/dist/types/deltas/apis/messaging/sendTypingIndicator.d.ts +1 -1
  65. package/dist/types/deltas/apis/messaging/setMessageReaction.d.ts +6 -1
  66. package/dist/types/deltas/apis/messaging/shareContact.d.ts +1 -2
  67. package/dist/types/deltas/apis/messaging/stickers.d.ts +1 -1
  68. package/dist/types/deltas/apis/messaging/theme.d.ts +8 -1
  69. package/dist/types/deltas/apis/messaging/unsendMessage.d.ts +6 -1
  70. package/dist/types/deltas/apis/posting/group.d.ts +1 -23
  71. package/dist/types/deltas/apis/posting/post.d.ts +23 -0
  72. package/dist/types/utils/constants.d.ts +26 -16
  73. package/dist/utils/constants.js +42 -29
  74. package/dist/utils/constants.js.map +1 -1
  75. package/package.json +1 -1
  76. package/src/core/models/buildAPI.ts +3 -3
  77. package/src/core/models/loginHelper.ts +32 -30
  78. package/src/deltas/apis/create.ts +10 -0
  79. package/src/deltas/apis/messaging/editMessage.ts +16 -26
  80. package/src/deltas/apis/messaging/emoji.ts +45 -97
  81. package/src/deltas/apis/messaging/gcmember.ts +68 -113
  82. package/src/deltas/apis/messaging/gcname.ts +42 -91
  83. package/src/deltas/apis/messaging/gcrule.ts +61 -111
  84. package/src/deltas/apis/messaging/markAsDelivered.ts +19 -14
  85. package/src/deltas/apis/messaging/markAsRead.ts +45 -72
  86. package/src/deltas/apis/messaging/markAsReadAll.ts +17 -17
  87. package/src/deltas/apis/messaging/markAsSeen.ts +17 -41
  88. package/src/deltas/apis/messaging/nickname.ts +50 -116
  89. package/src/deltas/apis/messaging/notes.ts +59 -95
  90. package/src/deltas/apis/messaging/resolvePhotoUrl.ts +27 -50
  91. package/src/deltas/apis/messaging/sendMessage.ts +28 -26
  92. package/src/deltas/apis/messaging/sendTypingIndicator.ts +13 -12
  93. package/src/deltas/apis/messaging/setMessageReaction.ts +45 -20
  94. package/src/deltas/apis/messaging/shareContact.ts +25 -15
  95. package/src/deltas/apis/messaging/stickers.ts +4 -4
  96. package/src/deltas/apis/messaging/theme.ts +172 -259
  97. package/src/deltas/apis/messaging/unsendMessage.ts +23 -7
  98. package/src/deltas/apis/posting/group.ts +56 -172
  99. package/src/deltas/apis/posting/post.ts +932 -33
  100. package/src/types/index.d.ts +35 -58
  101. package/src/utils/constants.ts +84 -57
  102. package/a.html +0 -537
  103. package/a.json +0 -5915
  104. package/src/utils/formatters.old.ts +0 -1049
  105. package/task.txt +0 -24
@@ -1,24 +1,34 @@
1
1
  declare const NUM_TO_MONTH: string[];
2
2
  declare const NUM_TO_DAY: string[];
3
- declare function getRandom(arr: any): any;
4
- declare function padZeros(val: any, len?: number): any;
5
- declare function generateThreadingID(clientID: any): string;
6
- declare function binaryToDecimal(data: any): string;
3
+ declare function getRandom<T>(arr: T[]): T;
4
+ declare function padZeros(val: string | number, len?: number): string;
5
+ declare function generateThreadingID(clientID: string): string;
6
+ declare function binaryToDecimal(data: string): string;
7
7
  declare function generateOfflineThreadingID(): string;
8
- declare function presenceEncode(str: any): string;
9
- declare function presenceDecode(str: any): string;
10
- declare function generatePresence(userID: any): string;
8
+ /**
9
+ * Compresses a presence JSON string using PRESENCE_TOKEN_MAP shortcuts.
10
+ * Reduces payload size when communicating with Facebook's EdgeChat API.
11
+ */
12
+ declare function presenceEncode(str: string): string;
13
+ /**
14
+ * Decompresses a presence-encoded string back to its original form.
15
+ */
16
+ declare function presenceDecode(str: string): string;
17
+ declare function generatePresence(userID: string): string;
11
18
  declare function generateAccessiblityCookie(): string;
12
19
  declare function getGUID(): string;
13
- declare function getFrom(str: any, startToken: any, endToken: any): any;
14
- declare function makeParsable(html: any): any;
15
- declare function arrToForm(form: any): any;
16
- declare function arrayToObject(arr: any, getKey: any, getValue: any): any;
20
+ declare function getFrom(str: string, startToken: string, endToken: string): string;
21
+ declare function makeParsable(html: string): string | string[];
22
+ declare function arrToForm(form: Array<{
23
+ name: string;
24
+ val: any;
25
+ }>): Record<string, any>;
26
+ declare function arrayToObject<T>(arr: T[], getKey: (v: T) => string, getValue: (v: T) => any): Record<string, any>;
17
27
  declare function getSignatureID(): string;
18
28
  declare function generateTimestampRelative(): string;
19
- declare function getType(obj: any): any;
20
- declare function logOptions(bool: any): void;
21
- declare function log(...args: any[]): void;
22
- declare function error(...args: any[]): void;
23
- declare function warn(...args: any[]): void;
29
+ declare function getType(obj: unknown): string;
30
+ declare function logOptions(bool: boolean): void;
31
+ declare function log(...args: unknown[]): void;
32
+ declare function error(...args: unknown[]): void;
33
+ declare function warn(...args: unknown[]): void;
24
34
  export { NUM_TO_DAY, NUM_TO_MONTH, arrToForm, arrayToObject, binaryToDecimal, error, generateAccessiblityCookie, generateOfflineThreadingID, generatePresence, generateThreadingID, generateTimestampRelative, getFrom, getGUID, getRandom, getSignatureID, getType, log, logOptions, makeParsable, padZeros, presenceDecode, presenceEncode, warn, };
@@ -26,9 +26,14 @@ const chalk = require('chalk');
26
26
  const gradient = require('gradient-string');
27
27
  const echaceb = gradient(['#0061ff', '#681297']);
28
28
  const ws = echaceb('bb-fca');
29
- let h;
30
- const i = {};
31
- const j = {
29
+ /**
30
+ * Presence compression token map.
31
+ * Keys are single uppercase letters used as compact tokens;
32
+ * values are the URL-encoded JSON substrings they replace.
33
+ * This map is used by presenceEncode/presenceDecode to compress
34
+ * presence payloads before sending to Facebook's EdgeChat API.
35
+ */
36
+ const PRESENCE_TOKEN_MAP = {
32
37
  _: '%',
33
38
  A: '%2',
34
39
  B: '000',
@@ -57,15 +62,21 @@ const j = {
57
62
  Y: '%2c%22pt%22%3a0%2c%22vis%22%3a1%2c%22bls%22%3a0%2c%22blc%22%3a0%2c%22snd%22%3a1%2c%22ct%22%3a',
58
63
  Z: '%2c%22sb%22%3a1%2c%22t%22%3a%5b%5d%2c%22f%22%3anull%2c%22uct%22%3a0%2c%22s%22%3a0%2c%22blo%22%3a0%7d%2c%22bl%22%3a%7b%22ac%22%3a',
59
64
  };
60
- (function () {
61
- const l = [];
62
- for (const m in j) {
63
- i[j[m]] = m;
64
- l.push(j[m]);
65
+ /** Reverse map: encoded substring → token letter. Built from PRESENCE_TOKEN_MAP. */
66
+ const presenceDecodeMap = {};
67
+ /** RegExp that matches any encodedsubstring in PRESENCE_TOKEN_MAP (longest first). */
68
+ let presenceEncodeRegex;
69
+ (function buildPresenceMaps() {
70
+ const encodedValues = [];
71
+ for (const token in PRESENCE_TOKEN_MAP) {
72
+ presenceDecodeMap[PRESENCE_TOKEN_MAP[token]] = token;
73
+ encodedValues.push(PRESENCE_TOKEN_MAP[token]);
65
74
  }
66
- l.reverse();
67
- h = new RegExp(l.join('|'), 'g');
75
+ // Sort longest first so greedy matching works correctly
76
+ encodedValues.reverse();
77
+ presenceEncodeRegex = new RegExp(encodedValues.join('|'), 'g');
68
78
  })();
79
+ // ─── Calendar helpers ───────────────────────────────────────────────────────
69
80
  const NUM_TO_MONTH = [
70
81
  'Jan',
71
82
  'Feb',
@@ -83,20 +94,20 @@ const NUM_TO_MONTH = [
83
94
  exports.NUM_TO_MONTH = NUM_TO_MONTH;
84
95
  const NUM_TO_DAY = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
85
96
  exports.NUM_TO_DAY = NUM_TO_DAY;
97
+ // ─── Utility functions ───────────────────────────────────────────────────────
86
98
  function getRandom(arr) {
87
99
  return arr[Math.floor(Math.random() * arr.length)];
88
100
  }
89
101
  function padZeros(val, len = 2) {
90
- val = String(val);
91
- while (val.length < len)
92
- val = '0' + val;
93
- return val;
102
+ let s = String(val);
103
+ while (s.length < len)
104
+ s = '0' + s;
105
+ return s;
94
106
  }
95
107
  function generateThreadingID(clientID) {
96
- const k = Date.now();
97
- const l = Math.floor(Math.random() * 4294967295);
98
- const m = clientID;
99
- return '<' + k + ':' + l + '-' + m + '@mail.projektitan.com>';
108
+ const timestamp = Date.now();
109
+ const rand = Math.floor(Math.random() * 4294967295);
110
+ return '<' + timestamp + ':' + rand + '-' + clientID + '@mail.projektitan.com>';
100
111
  }
101
112
  function binaryToDecimal(data) {
102
113
  let ret = '';
@@ -126,19 +137,26 @@ function generateOfflineThreadingID() {
126
137
  const msgs = ret.toString(2) + str;
127
138
  return binaryToDecimal(msgs);
128
139
  }
140
+ /**
141
+ * Compresses a presence JSON string using PRESENCE_TOKEN_MAP shortcuts.
142
+ * Reduces payload size when communicating with Facebook's EdgeChat API.
143
+ */
129
144
  function presenceEncode(str) {
130
145
  return encodeURIComponent(str)
131
146
  .replace(/([_A-Z])|%../g, function (m, n) {
132
147
  return n ? '%' + n.charCodeAt(0).toString(16) : m;
133
148
  })
134
149
  .toLowerCase()
135
- .replace(h, function (m) {
136
- return i[m];
150
+ .replace(presenceEncodeRegex, function (m) {
151
+ return presenceDecodeMap[m];
137
152
  });
138
153
  }
154
+ /**
155
+ * Decompresses a presence-encoded string back to its original form.
156
+ */
139
157
  function presenceDecode(str) {
140
158
  return decodeURIComponent(str.replace(/[_A-Z]/g, function (m) {
141
- return j[m];
159
+ return PRESENCE_TOKEN_MAP[m];
142
160
  }));
143
161
  }
144
162
  function generatePresence(userID) {
@@ -180,8 +198,7 @@ function getGUID() {
180
198
  const id = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
181
199
  const r = Math.floor((sectionLength + Math.random() * 16) % 16);
182
200
  sectionLength = Math.floor(sectionLength / 16);
183
- const _guid = (c == 'x' ? r : (r & 7) | 8).toString(16);
184
- return _guid;
201
+ return (c == 'x' ? r : (r & 7) | 8).toString(16);
185
202
  });
186
203
  return id;
187
204
  }
@@ -204,11 +221,7 @@ function makeParsable(html) {
204
221
  return '[' + maybeMultipleObjects.join('},{') + ']';
205
222
  }
206
223
  function arrToForm(form) {
207
- return arrayToObject(form, function (v) {
208
- return v.name;
209
- }, function (v) {
210
- return v.val;
211
- });
224
+ return arrayToObject(form, function (v) { return v.name; }, function (v) { return v.val; });
212
225
  }
213
226
  function arrayToObject(arr, getKey, getValue) {
214
227
  return arr.reduce(function (acc, val) {
@@ -226,7 +239,7 @@ function generateTimestampRelative() {
226
239
  function getType(obj) {
227
240
  return Object.prototype.toString.call(obj).slice(8, -1);
228
241
  }
229
- // Logs
242
+ // ─── Logging ─────────────────────────────────────────────────────────────────
230
243
  let logging = true;
231
244
  function logOptions(bool) {
232
245
  logging = bool;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bb-fca",
3
- "version": "2.0.8",
3
+ "version": "2.0.10",
4
4
  "description": "BB-FCA is a powerful and user-friendly Facebook Chat API wrapper for Node.js, designed to simplify the process of creating chatbots and automating interactions on Facebook Messenger. With BB-FCA, developers can easily send messages, manage conversations, and interact with the Facebook Messenger platform using a simple and intuitive API.",
5
5
  "main": "dist/core/client.js",
6
6
  "types": "dist/index.d.ts",
@@ -1,4 +1,4 @@
1
- import utils = require('../../utils');
1
+ import { getFrom, makeDefaults } from '../../utils';
2
2
 
3
3
  /**
4
4
  * Builds the core API context and default functions after successful login.
@@ -63,7 +63,7 @@ async function buildAPI(
63
63
  const dtsgData = findConfig('DTSGInitialData');
64
64
  const dtsg: any = dtsgData
65
65
  ? dtsgData.token
66
- : utils.getFrom(html, '"token":"', '"');
66
+ : getFrom(html, '"token":"', '"');
67
67
  const dtsgResult = {
68
68
  fb_dtsg: dtsg,
69
69
  jazoest: `2${Array.from(dtsg as string).reduce(
@@ -123,7 +123,7 @@ async function buildAPI(
123
123
  firstListen: true,
124
124
  ...dtsgResult,
125
125
  };
126
- const defaultFuncs = utils.makeDefaults(html, userID, ctx);
126
+ const defaultFuncs = makeDefaults(html, userID, ctx);
127
127
 
128
128
  return [ctx, defaultFuncs, {}];
129
129
  }
@@ -1,8 +1,8 @@
1
- import utils = require('../../utils');
2
1
  import axios from 'axios';
3
2
  import * as fs from 'fs';
4
3
  import * as path from 'path';
5
4
  import * as qs from 'querystring';
5
+ import { getJar, getAppState, get, saveCookies, log, error } from '../../utils';
6
6
 
7
7
  /**
8
8
  * The main login helper function, orchestrating the login process.
@@ -31,14 +31,27 @@ async function loginHelper(
31
31
  let defaultFuncs: any = null;
32
32
  let api: any = initialApi;
33
33
 
34
+ /**
35
+ * Sets an array of "name=value" cookie strings into the CookieJar
36
+ * for the facebook.com domain.
37
+ */
38
+ function setCookiesIntoJar(jar: any, cookieStrings: string[]): void {
39
+ const domain = '.facebook.com';
40
+ const expires = new Date().getTime() + 1000 * 60 * 60 * 24 * 365;
41
+ cookieStrings.forEach((cookieString) => {
42
+ const str = `${cookieString}; expires=${expires}; domain=${domain}; path=/;`;
43
+ jar.setCookie(str, `https://${domain}`);
44
+ });
45
+ }
46
+
34
47
  try {
35
- const jar = utils.getJar();
36
- utils.log('Logging in...');
48
+ const jar = getJar();
49
+ log('Logging in...');
37
50
 
38
51
  const appState = credentials.appState;
39
52
 
40
53
  if (appState) {
41
- let cookieStrings = [];
54
+ let cookieStrings: string[] = [];
42
55
  if (Array.isArray(appState)) {
43
56
  cookieStrings = appState.map((c) =>
44
57
  [c.name || c.key, c.value].join('='),
@@ -54,12 +67,7 @@ async function loginHelper(
54
67
  );
55
68
  }
56
69
 
57
- cookieStrings.forEach((cookieString) => {
58
- const domain = '.facebook.com';
59
- const expires = new Date().getTime() + 1000 * 60 * 60 * 24 * 365;
60
- const str = `${cookieString}; expires=${expires}; domain=${domain}; path=/;`;
61
- jar.setCookie(str, `https://${domain}`);
62
- });
70
+ setCookiesIntoJar(jar, cookieStrings);
63
71
  } else if (credentials.email && credentials.password) {
64
72
  // Rui
65
73
  const url = 'https://api.facebook.com/method/auth.login';
@@ -80,15 +88,10 @@ async function loginHelper(
80
88
  if (resp.status !== 200) {
81
89
  throw new Error('Wrong password / email');
82
90
  }
83
- let cstrs = resp.data['session_cookies'].map(
84
- (c) => `${c.name}=${c.value}`,
91
+ const cstrs: string[] = resp.data['session_cookies'].map(
92
+ (c: any) => `${c.name}=${c.value}`,
85
93
  );
86
- cstrs.forEach((cstr) => {
87
- const domain = '.facebook.com';
88
- const expires = new Date().getTime() + 1000 * 60 * 60 * 24 * 365;
89
- const str = `${cstr}; expires=${expires}; domain=${domain}; path=/;`;
90
- jar.setCookie(str, `https://${domain}`);
91
- });
94
+ setCookiesIntoJar(jar, cstrs);
92
95
  } catch (e) {
93
96
  throw new Error('Wrong password / email');
94
97
  }
@@ -102,20 +105,19 @@ async function loginHelper(
102
105
  api = {
103
106
  setOptions: setOptionsFunc.bind(null, globalOptions),
104
107
  getAppState() {
105
- const appState = utils.getAppState(jar);
106
- if (!Array.isArray(appState)) return [];
107
- const uniqueAppState = appState.filter(
108
+ const state = getAppState(jar);
109
+ if (!Array.isArray(state)) return [];
110
+ const uniqueState = state.filter(
108
111
  (item, index, self) =>
109
112
  self.findIndex((t) => t.key === item.key) === index,
110
113
  );
111
- return uniqueAppState.length > 0 ? uniqueAppState : appState;
114
+ return uniqueState.length > 0 ? uniqueState : state;
112
115
  },
113
116
  };
114
117
  }
115
118
 
116
- const resp = await utils
117
- .get(fbLinkFunc(), jar, null, globalOptions, { noRef: true })
118
- .then(utils.saveCookies(jar));
119
+ const resp = await get(fbLinkFunc(), jar, null, globalOptions, { noRef: true })
120
+ .then(saveCookies(jar));
119
121
  const extractNetData = (html) => {
120
122
  const allScriptsData = [];
121
123
  const scriptRegex = /<script type="application\/json"[^>]*>(.*?)<\/script>/g;
@@ -124,7 +126,7 @@ async function loginHelper(
124
126
  try {
125
127
  allScriptsData.push(JSON.parse(match[1]));
126
128
  } catch (e) {
127
- utils.error(`Failed to parse a JSON blob from HTML`, e.message);
129
+ error(`Failed to parse a JSON blob from HTML`, (e as any).message);
128
130
  }
129
131
  }
130
132
  return allScriptsData;
@@ -173,7 +175,7 @@ async function loginHelper(
173
175
  ? require(fullPath).default(defaultFuncs, api, ctx)
174
176
  : require(fullPath)(defaultFuncs, api, ctx);
175
177
  } catch (e) {
176
- utils.error(
178
+ error(
177
179
  `Failed to load module ${moduleName} from ${folder}:`,
178
180
  e,
179
181
  );
@@ -217,9 +219,9 @@ async function loginHelper(
217
219
  api.globalOptions = globalOptions;
218
220
 
219
221
  return callback(null, api);
220
- } catch (error) {
221
- utils.error('loginHelper', error.error || error);
222
- return callback(error);
222
+ } catch (err: any) {
223
+ error('loginHelper', err.error || err);
224
+ return callback(err);
223
225
  }
224
226
  }
225
227
 
@@ -49,5 +49,15 @@ export default function(defaultFuncs: any, api: any, ctx: any) {
49
49
  * @returns {Promise<object>} Upload result with videoID.
50
50
  */
51
51
  uploadVideo: postModule.uploadVideo,
52
+
53
+ /**
54
+ * Reacts to a Facebook post (like, love, haha, wow, sad, angry, care).
55
+ * @param {string} feedbackId - Numeric post ID, "feedbackback:<id>", or base64 feedback ID.
56
+ * @param {string} [reaction="LIKE"] - "LIKE" | "LOVE" | "HAHA" | "WOW" | "SAD" | "ANGRY" | "CARE"
57
+ * or emoji: "👍" | "❤️" | "😂" | "😮" | "😢" | "😡" | "🤗"
58
+ * @param {Function} [callback] - Optional callback function.
59
+ * @returns {Promise<object>} The server response.
60
+ */
61
+ reactPost: postModule.react,
52
62
  };
53
63
  }
@@ -2,27 +2,25 @@
2
2
  * @author RFS-ADRENO
3
3
  * @rewrittenBy Isai Ivanov
4
4
  */
5
- //fixed march 30
6
5
  import utils = require('../../../utils');
7
6
 
8
- function canBeCalled(func) {
9
- try {
10
- Reflect.apply(func, null, []);
11
- return true;
12
- } catch (error) {
13
- return false;
14
- }
15
- }
16
-
17
7
  /**
18
- * A function for editing bot's messages.
19
- * @param {string} text - The text with which the bot will edit its messages.
20
- * @param {string} messageID - The message ID of the message the bot will edit.
21
- * @param {Object} callback - Callback for the function.
8
+ * @param {Object} defaultFuncs
9
+ * @param {Object} api
10
+ * @param {Object} ctx
22
11
  */
23
-
24
- export default function(defaultFuncs: any, api: any, ctx: any) {
25
- return function editMessage(text, messageID, callback) {
12
+ export default function editMessage(
13
+ defaultFuncs: any,
14
+ api: any,
15
+ ctx: any,
16
+ ): Function {
17
+ /**
18
+ * Edits a message previously sent by the bot via MQTT.
19
+ * @param {string} text - The new text for the message.
20
+ * @param {string} messageID - The ID of the message to edit.
21
+ * @returns {void}
22
+ */
23
+ return function editMessage(text: string, messageID: string): void {
26
24
  if (!ctx.mqttClient) {
27
25
  throw new Error('Not connected to MQTT');
28
26
  }
@@ -30,10 +28,7 @@ export default function(defaultFuncs: any, api: any, ctx: any) {
30
28
  ctx.wsReqNumber += 1;
31
29
  ctx.wsTaskNumber += 1;
32
30
 
33
- const queryPayload = {
34
- message_id: messageID,
35
- text,
36
- };
31
+ const queryPayload = { message_id: messageID, text };
37
32
 
38
33
  const query = {
39
34
  failure_count: null,
@@ -54,13 +49,8 @@ export default function(defaultFuncs: any, api: any, ctx: any) {
54
49
  request_id: ctx.wsReqNumber,
55
50
  type: 3,
56
51
  };
57
-
58
52
  context.payload = JSON.stringify(context.payload);
59
53
 
60
- // if (canBeCalled(callback)) {
61
- // ctx.reqCallbacks[ctx.wsReqNumber] = callback;
62
- // }
63
-
64
54
  ctx.mqttClient.publish('/ls_req', JSON.stringify(context), {
65
55
  qos: 1,
66
56
  retain: false,
@@ -1,88 +1,40 @@
1
1
  import utils = require('../../../utils');
2
2
 
3
- export default function(defaultFuncs: any, api: any, ctx: any) {
3
+ /**
4
+ * @module emoji
5
+ * @param {Object} defaultFuncs
6
+ * @param {Object} api
7
+ * @param {Object} ctx
8
+ */
9
+ export default function emoji(
10
+ defaultFuncs: any,
11
+ api: any,
12
+ ctx: any,
13
+ ): Function {
4
14
  /**
5
- * Made by Choru Official
6
- * Mqtt
7
- * Sets the custom emoji for a specific Facebook thread via MQTT.
8
- *
9
- * @param {string} emoji The emoji character to set as the custom emoji (e.g., "👍", "❤️").
10
- * @param {string} threadID The ID of the thread where the emoji will be set.
11
- * @param {Function} [callback] Optional callback function to be invoked upon completion.
12
- * @param {string} [initiatorID] The ID of the user who initiated the emoji change (e.g., from event.senderID).
13
- * @returns {Promise<object>} A promise that resolves with a structured event object on success or rejects on error.
15
+ * Made by Choru Official — sets the custom emoji for a thread via MQTT.
16
+ * @param {string} emoji - The emoji character to set (e.g., "👍", "❤️").
17
+ * @param {string} threadID - The ID of the thread.
18
+ * @param {string} [initiatorID] - The ID of the initiating user.
19
+ * @returns {Promise<object>}
14
20
  */
15
- return function emoji(emoji, threadID, callback, initiatorID) {
16
- let _callback;
17
- let _initiatorID;
21
+ return async function emoji(
22
+ emojiChar: string,
23
+ threadID: string,
24
+ initiatorID?: string,
25
+ ): Promise<any> {
26
+ const _initiatorID = initiatorID || ctx.userID;
18
27
 
19
- let _resolvePromise;
20
- let _rejectPromise;
21
- const returnPromise = new Promise<any>((resolve, reject) => {
22
- _resolvePromise = resolve;
23
- _rejectPromise = reject;
24
- });
25
-
26
- if (
27
- utils.getType(callback) === 'Function' ||
28
- utils.getType(callback) === 'AsyncFunction'
29
- ) {
30
- _callback = callback;
31
- _initiatorID = initiatorID;
32
- } else if (
33
- utils.getType(threadID) === 'Function' ||
34
- utils.getType(threadID) === 'AsyncFunction'
35
- ) {
36
- _callback = threadID;
37
- threadID = null;
38
- _initiatorID = callback;
39
- } else if (utils.getType(callback) === 'string') {
40
- _initiatorID = callback;
41
- _callback = undefined;
42
- } else {
43
- _callback = undefined;
44
- _initiatorID = undefined;
45
- }
46
-
47
- if (!_callback) {
48
- _callback = function(__err, __data) {
49
- if (__err) _rejectPromise(__err);
50
- else _resolvePromise(__data);
51
- };
52
- } else {
53
- const originalCallback = _callback;
54
- _callback = function(__err, __data) {
55
- if (__err) {
56
- originalCallback(__err);
57
- _rejectPromise(__err);
58
- } else {
59
- originalCallback(null, __data);
60
- _resolvePromise(__data);
61
- }
62
- };
63
- }
64
-
65
- _initiatorID = _initiatorID || ctx.userID;
66
-
67
- threadID = threadID || ctx.threadID;
68
-
69
- if (!threadID) {
70
- return _callback(new Error('threadID is required to set an emoji.'));
71
- }
72
- if (!emoji) {
73
- return _callback(new Error('An emoji character is required.'));
74
- }
75
-
76
- if (!ctx.mqttClient) {
77
- return _callback(new Error('Not connected to MQTT'));
78
- }
28
+ if (!threadID) throw new Error('threadID is required to set an emoji.');
29
+ if (!emojiChar) throw new Error('An emoji character is required.');
30
+ if (!ctx.mqttClient) throw new Error('Not connected to MQTT');
79
31
 
80
32
  ctx.wsReqNumber += 1;
81
33
  ctx.wsTaskNumber += 1;
82
34
 
83
35
  const queryPayload = {
84
36
  thread_key: threadID.toString(),
85
- custom_emoji: emoji,
37
+ custom_emoji: emojiChar,
86
38
  avatar_sticker_instruction_key_id: null,
87
39
  sync_group: 1,
88
40
  };
@@ -98,7 +50,7 @@ export default function(defaultFuncs: any, api: any, ctx: any) {
98
50
  const context: any = {
99
51
  app_id: ctx.appID,
100
52
  payload: {
101
- epoch_id: parseInt(utils.generateOfflineThreadingID()),
53
+ epoch_id: Number.parseInt(utils.generateOfflineThreadingID()),
102
54
  tasks: [query],
103
55
  version_id: '24631415369801570',
104
56
  },
@@ -107,29 +59,25 @@ export default function(defaultFuncs: any, api: any, ctx: any) {
107
59
  };
108
60
  context.payload = JSON.stringify(context.payload);
109
61
 
110
- ctx.mqttClient.publish(
111
- '/ls_req',
112
- JSON.stringify(context),
113
- { qos: 1, retain: false },
114
- (err) => {
115
- if (err) {
116
- return _callback(
117
- new Error(`MQTT publish failed for emoji: ${err.message || err}`),
118
- );
119
- }
120
-
121
- const emojiChangeEvent = {
122
- type: 'thread_emoji_update',
123
- threadID: threadID,
124
- newEmoji: emoji,
125
- senderID: _initiatorID,
126
- BotID: ctx.userID,
127
- timestamp: Date.now(),
128
- };
129
- _callback(null, emojiChangeEvent);
130
- },
62
+ await new Promise<void>((resolve, reject) =>
63
+ ctx.mqttClient.publish(
64
+ '/ls_req',
65
+ JSON.stringify(context),
66
+ { qos: 1, retain: false },
67
+ (err) =>
68
+ err
69
+ ? reject(new Error(`MQTT publish failed for emoji: ${err.message || err}`))
70
+ : resolve(),
71
+ ),
131
72
  );
132
73
 
133
- return returnPromise;
74
+ return {
75
+ type: 'thread_emoji_update',
76
+ threadID,
77
+ newEmoji: emojiChar,
78
+ senderID: _initiatorID,
79
+ BotID: ctx.userID,
80
+ timestamp: Date.now(),
81
+ };
134
82
  };
135
83
  }