node-ainzfb-new 1.4.4

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 (77) hide show
  1. package/.gitattributes +2 -0
  2. package/.github/dependabot.yml +11 -0
  3. package/.github/workflows/nodejs.yml +26 -0
  4. package/.github/workflows/npmpublish.yml +30 -0
  5. package/CHANGELOG.md +2 -0
  6. package/DOCS.md +1738 -0
  7. package/Extra/Database/index.js +399 -0
  8. package/Extra/Database/methods.js +286 -0
  9. package/Extra/ExtraAddons.js +213 -0
  10. package/Extra/ExtraGetThread.js +1 -0
  11. package/Extra/ExtraUptimeRobot.js +59 -0
  12. package/Extra/PM2/ecosystem.config.js +23 -0
  13. package/Extra/Src/Last-Run.js +48 -0
  14. package/LICENSE-MIT +21 -0
  15. package/Language/index.json +151 -0
  16. package/README.md +227 -0
  17. package/StateCrypt.js +22 -0
  18. package/broadcast.js +42 -0
  19. package/deleted.js +587 -0
  20. package/index-backup.js +1089 -0
  21. package/index.js +583 -0
  22. package/logger.js +21 -0
  23. package/package.json +90 -0
  24. package/src/addExternalModule.js +16 -0
  25. package/src/addUserToGroup.js +78 -0
  26. package/src/changeAdminStatus.js +79 -0
  27. package/src/changeArchivedStatus.js +41 -0
  28. package/src/changeBio.js +65 -0
  29. package/src/changeBlockedStatus.js +36 -0
  30. package/src/changeGroupImage.js +106 -0
  31. package/src/changeNickname.js +45 -0
  32. package/src/changeThreadColor.js +62 -0
  33. package/src/changeThreadEmoji.js +42 -0
  34. package/src/createNewGroup.js +70 -0
  35. package/src/createPoll.js +60 -0
  36. package/src/deleteMessage.js +45 -0
  37. package/src/deleteThread.js +43 -0
  38. package/src/forwardAttachment.js +48 -0
  39. package/src/getAccessToken.js +32 -0
  40. package/src/getCurrentUserID.js +7 -0
  41. package/src/getEmojiUrl.js +27 -0
  42. package/src/getFriendsList.js +73 -0
  43. package/src/getMessage.js +80 -0
  44. package/src/getThreadHistory.js +537 -0
  45. package/src/getThreadHistoryDeprecated.js +71 -0
  46. package/src/getThreadInfo.js +197 -0
  47. package/src/getThreadInfoDeprecated.js +56 -0
  48. package/src/getThreadList.js +213 -0
  49. package/src/getThreadListDeprecated.js +46 -0
  50. package/src/getThreadPictures.js +59 -0
  51. package/src/getUserID.js +62 -0
  52. package/src/getUserInfo.js +65 -0
  53. package/src/getUserInfoV2.js +35 -0
  54. package/src/handleFriendRequest.js +46 -0
  55. package/src/handleMessageRequest.js +49 -0
  56. package/src/httpGet.js +49 -0
  57. package/src/httpPost.js +48 -0
  58. package/src/httpPostFormData.js +41 -0
  59. package/src/listenMqtt.js +633 -0
  60. package/src/logout.js +68 -0
  61. package/src/markAsDelivered.js +48 -0
  62. package/src/markAsRead.js +70 -0
  63. package/src/markAsReadAll.js +43 -0
  64. package/src/markAsSeen.js +51 -0
  65. package/src/muteThread.js +47 -0
  66. package/src/removeUserFromGroup.js +49 -0
  67. package/src/resolvePhotoUrl.js +37 -0
  68. package/src/searchForThread.js +43 -0
  69. package/src/sendMessage.js +342 -0
  70. package/src/sendTypingIndicator.js +80 -0
  71. package/src/setMessageReaction.js +109 -0
  72. package/src/setPostReaction.js +102 -0
  73. package/src/setTitle.js +74 -0
  74. package/src/threadColors.js +39 -0
  75. package/src/unfriend.js +43 -0
  76. package/src/unsendMessage.js +40 -0
  77. package/utils.js +1284 -0
package/deleted.js ADDED
@@ -0,0 +1,587 @@
1
+ async function loginHelper(appState, email, password, globalOptions, callback, prCallback) {
2
+ var mainPromise = null;
3
+ var jar = utils.getJar();
4
+
5
+ // If we're given an appState we loop through it and save each cookie
6
+ // back into the jar.
7
+ try {
8
+ if (appState) {
9
+ //const readline = require("readline");
10
+ //const chalk = require("chalk");
11
+ //const figlet = require("figlet");
12
+ //const os = require("os");
13
+ //const { execSync } = require('child_process');
14
+ // let rl = readline.createInterface({
15
+ // input: process.stdin,
16
+ // output: process.stdout,
17
+ // prompt: chalk.hex('#00CCCC').bold('[FCA-SUS] • ')
18
+ // });
19
+ // let type = {
20
+ // 1: {
21
+ // "name": "Tạo Mật Khẩu Cho Appstate",
22
+ // onRun: async function() {
23
+ // try {
24
+ // rl.question("Hãy Nhập Mật Khẩu Bạn Muốn Đặt Cho Appstate !", (answer) => {
25
+ // console.log("Được Rồi Mật Khẩu Của Bạn Là: " + answer + ", Bạn Hãy Nhớ Kĩ Nhé !");
26
+ // process.env["FBKEY"] = answer;
27
+ // fs.writeFile('../.env', `FBKEY=${answer}`, function (err) {
28
+ // if (err) {
29
+ // submiterr(err)
30
+ // logger("Tạo File ENV Thất Bại !", "[ FCA-SUS ]")
31
+ // rl.pause();
32
+ // }
33
+ // else logger("Tạo Thành Công File ENV !","[ FCA-SUS ]")
34
+ // rl.pause();
35
+ // });
36
+ // })
37
+ // }
38
+ // catch (e) {
39
+ // console.log(e);
40
+ // logger("Đã Có Lỗi Khi Đang Try Tạo Ra Câu Hỏi =))", "[ FCA-SUS ]");
41
+ // rl.pause();
42
+ // }
43
+ // }
44
+ // },
45
+ // 2: {
46
+ // "name": "Tiếp Tục Chạy Fca Mà Không Cần Mã Hóa AppState",
47
+ // onRun: async function () {
48
+ // rl.pause();
49
+ // }
50
+ // },
51
+ // 3: {
52
+ // "name": "Đổi Mật Khẩu AppState (Comming Soon..)",
53
+ // onRun: async function () {
54
+ // console.log(chalk.red.bold("Đã bảo là comming soon rồi mà >:v"));
55
+ // }
56
+ // }
57
+ // }
58
+ // const localbrand = JSON.parse(readFileSync('./package.json')).name;
59
+ // const localbrand2 = JSON.parse(readFileSync('./node_modules/fca-sus/package.json')).version;
60
+ // var axios = require('axios');
61
+ // axios.get('https://raw.githubusercontent.com/amogusdevlol/fca-sus/main/package.json').then(async (res) => {
62
+ // if (localbrand.toUpperCase() == 'HORIZON') {
63
+ // console.group(chalk.bold.cyan('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'))
64
+ // console.log(chalk.bold.hex('#00FFCC')("[</>]") + chalk.bold.yellow(' => ') + "Hệ Điều Hành: " + chalk.bold.red(os.type()));
65
+ // console.log(chalk.bold.hex('#00FFCC')("[</>]") + chalk.bold.yellow(' => ') + "Thông Tin Máy: " + chalk.bold.red(os.version()));
66
+ // console.log(chalk.bold.hex('#00FFCC')("[</>]") + chalk.bold.yellow(' => ') + "Phiên Bản Hiện Tại: " + chalk.bold.red(localbrand2));
67
+ // console.log(chalk.bold.hex('#00FFCC')("[</>]") + chalk.bold.yellow(' => ') + "Phiên Bản Mới Nhất: " + chalk.bold.red(res.data.version));
68
+ // console.groupEnd();
69
+ // }
70
+ // else {
71
+ // console.clear();
72
+ // console.log(figlet.textSync('TeamHorizon', {font: 'ANSI Shadow',horizontalLayout: 'default',verticalLayout: 'default',width: 0,whitespaceBreak: true }))
73
+ // console.log(chalk.hex('#9966CC')(`━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`));
74
+ // }
75
+ // });
76
+
77
+ logger(Language.OnProcess, "[ FCA-SUS ]");
78
+ var backup = async(data) => {
79
+ if (fs.existsSync('./appstate.json')) {
80
+ try {
81
+ fs.writeFileSync('./appstate.json', data);
82
+ } catch (e) {
83
+ fs.writeFileSync('./appstate.json', JSON.stringify(data, null, "\t"));
84
+ }
85
+ logger(Language.BackupNoti, "[ FCA-SUS ]");
86
+ await new Promise(resolve => setTimeout(resolve, 5 * 1000));
87
+ process.exit(1);
88
+ } else if (fs.existsSync('./Facebook.json')) {
89
+ try {
90
+ fs.writeFileSync('./Facebook.json', data);
91
+ } catch (e) {
92
+ fs.writeFileSync('./Facebook.json', JSON.stringify(data, null, "\t"));
93
+ }
94
+ logger(Language.BackupNoti, "[ FCA-SUS ]");
95
+ await new Promise(resolve => setTimeout(resolve, 5 * 1000));
96
+ process.exit(1);
97
+ } else if (fs.existsSync('fbstate.json')) {
98
+ try {
99
+ fs.writeFileSync('./fbstate.json', data);
100
+ } catch (e) {
101
+ fs.writeFileSync('./fbstate.json', JSON.stringify(data), null, "\t");
102
+ }
103
+ logger(Language.BackupNoti, "[ FCA-SUS ]");
104
+ await new Promise(resolve => setTimeout(resolve, 5 * 1000));
105
+ process.exit(1);
106
+ } else return logger.Error();
107
+ }
108
+
109
+ switch (process.platform) {
110
+ case "win32":
111
+ {
112
+ try {
113
+ var { body } = await Fetch('https://decrypt-appstate-production.up.railway.app/getKey');
114
+ process.env['FBKEY'] = JSON.parse(body).Data;
115
+ } catch (e) {
116
+ logger(Language.ErrGetPassWord);
117
+ logger.Error();
118
+ process.exit(1);
119
+ }
120
+ }
121
+ break;
122
+ case "linux":
123
+ {
124
+ if (process.env["REPL_ID"] == undefined) {
125
+ try {
126
+ var { body } = await Fetch.get('https://decrypt-appstate-production.up.railway.app/getKey');
127
+ process.env['FBKEY'] = JSON.parse(body).Data;
128
+ } catch (e) {
129
+ logger(Language.ErrGetPassWord, '[ FCA-SUS ]');
130
+ logger.Error();
131
+ process.exit(1);
132
+ }
133
+ } else {
134
+ try {
135
+ const client = new Client();
136
+ let key = await client.get("FBKEY");
137
+ if (!key) {
138
+ await client.set("FBKEY", makeid(49));
139
+ let key = await client.get("FBKEY");
140
+ process.env['FBKEY'] = key;
141
+ } else {
142
+ process.env['FBKEY'] = key;
143
+ }
144
+ } catch (e) {
145
+ logger(Language.ErrGenerateKey, '[ FCA-SUS ]');
146
+ logger(e, '[ FCA-SUS ]');
147
+ logger.Error();
148
+ process.exit(0)
149
+ }
150
+ }
151
+ }
152
+ break;
153
+ case "android":
154
+ {
155
+ try {
156
+ var { body } = await Fetch.get('https://decrypt-appstate-production.up.railway.app/getKey');
157
+ process.env['FBKEY'] = JSON.parse(body).Data;
158
+ } catch (e) {
159
+ logger(Language.ErrGetPassWord, '[ FCA-SUS ]');
160
+ return logger.Error();
161
+ }
162
+ }
163
+ break;
164
+ default:
165
+ {
166
+ logger(Language.UnsupportedDevice, '[ FCA-SUS ]');
167
+ logger.Error();
168
+ process.exit(0);
169
+ }
170
+ }
171
+
172
+ try {
173
+ switch (require("../../FastConfigFca.json").EncryptFeature) {
174
+ case true:
175
+ {
176
+ appState = JSON.parse(JSON.stringify(appState, null, "\t"));
177
+ switch (utils.getType(appState)) {
178
+ case "Array":
179
+ {
180
+ logger(Language.NotReadyToDecrypt, '[ FCA-SUS ]');
181
+ }
182
+ break;
183
+ case "String":
184
+ {
185
+ try {
186
+ appState = StateCrypt.decryptState(appState, process.env['FBKEY']);
187
+ logger(Language.DecryptSuccess, '[ FCA-SUS ]');
188
+ } catch (e) {
189
+ if (process.env.Backup != undefined && process.env.Backup) {
190
+ backup(process.env.Backup);
191
+ } else switch (process.platform) {
192
+ case "win32":
193
+ {
194
+ try {
195
+ if (fs.existsSync('./backupappstate.json')) {
196
+ let content = fs.readFileSync('./backupappstate.json', 'utf8');
197
+ return backup(content);
198
+ }
199
+ } catch (e) {
200
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
201
+ logger.Error();
202
+ process.exit(0);
203
+ }
204
+ }
205
+ break;
206
+ case "linux":
207
+ {
208
+ if (process.env["REPL_ID"] == undefined) {
209
+ try {
210
+ if (fs.existsSync('./backupappstate.json')) {
211
+ let content = fs.readFileSync('./backupappstate.json', 'utf8');
212
+ return backup(content);
213
+ }
214
+ } catch (e) {
215
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
216
+ logger.Error();
217
+ process.exit(0);
218
+ }
219
+ } else {
220
+ try {
221
+ const client = new Client();
222
+ let key = await client.get("Backup");
223
+ if (key) {
224
+ return backup(JSON.stringify(key));
225
+ } else {
226
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
227
+ }
228
+ } catch (e) {
229
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
230
+ }
231
+ }
232
+ }
233
+ break;
234
+ case "android":
235
+ {
236
+ try {
237
+ if (fs.existsSync('./backupappstate.json')) {
238
+ let content = fs.readFileSync('./backupappstate.json', 'utf8');
239
+ return backup(content);
240
+ }
241
+ } catch (e) {
242
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
243
+ logger.Error();
244
+ process.exit(0);
245
+ }
246
+ }
247
+ }
248
+ logger(Language.DecryptFailed, '[ FCA-SUS ]');
249
+ return logger.Error();
250
+ }
251
+ logger(getText.gettext(Language.YourAppStatePass, process.env.FBKEY), '[ FCA-SUS ]');
252
+ }
253
+ break;
254
+ default:
255
+ {
256
+ logger(Language.InvaildAppState, "[ FCA-SUS ]");
257
+ process.exit(0)
258
+ }
259
+ }
260
+ }
261
+ break;
262
+ case false:
263
+ {
264
+ switch (utils.getType(appState)) {
265
+ case "Array":
266
+ {
267
+ logger(Language.EncryptStateOff, "[ FCA-SUS ]");
268
+ }
269
+ break;
270
+ case "String":
271
+ {
272
+ logger(Language.EncryptStateOff, "[ FCA-SUS ]");
273
+ try {
274
+ appState = StateCrypt.decryptState(appState, process.env['FBKEY']);
275
+ logger(Language.DecryptSuccess, '[ FCA-SUS ]');
276
+ } catch (e) {
277
+ if (process.env.Backup != undefined && process.env.Backup) {
278
+ backup(process.env.Backup);
279
+ } else switch (process.platform) {
280
+ case "win32":
281
+ {
282
+ try {
283
+ if (fs.existsSync('./backupappstate.json')) {
284
+ let content = fs.readFileSync('./backupappstate.json', 'utf8');
285
+ return backup(content);
286
+ }
287
+ } catch (e) {
288
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
289
+ logger.Error();
290
+ process.exit(0);
291
+ }
292
+ }
293
+ break;
294
+ case "linux":
295
+ {
296
+ if (process.env["REPL_ID"] == undefined) {
297
+ try {
298
+ if (fs.existsSync('./backupappstate.json')) {
299
+ let content = fs.readFileSync('./backupappstate.json', 'utf8');
300
+ return backup(content);
301
+ }
302
+ } catch (e) {
303
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
304
+ logger.Error();
305
+ process.exit(0);
306
+ }
307
+ } else {
308
+ try {
309
+ const client = new Client();
310
+ let key = await client.get("Backup");
311
+ if (key) {
312
+ return backup(JSON.stringify(key));
313
+ } else {
314
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
315
+ }
316
+ } catch (e) {
317
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
318
+ }
319
+ }
320
+ }
321
+ break;
322
+ case "android":
323
+ {
324
+ try {
325
+ if (fs.existsSync('./backupappstate.json')) {
326
+ let content = fs.readFileSync('./backupappstate.json', 'utf8');
327
+ return backup(content);
328
+ }
329
+ } catch (e) {
330
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
331
+ logger.Error();
332
+ process.exit(0);
333
+ }
334
+ }
335
+ }
336
+ logger(Language.DecryptFailed, '[ FCA-SUS ]');
337
+ return logger.Error();
338
+ }
339
+ }
340
+ break;
341
+ default:
342
+ {
343
+ logger(Language.InvaildAppState, "[ FCA-SUS ]");
344
+ process.exit(0)
345
+ }
346
+ }
347
+ }
348
+ break;
349
+ default:
350
+ {
351
+ logger(getText.gettext(Language.IsNotABoolean, require("../../FastConfigFca.json").EncryptFeature), "[ FCA-SUS ]")
352
+ process.exit(0);
353
+ }
354
+ }
355
+ } catch (e) {
356
+ console.log(e);
357
+ }
358
+
359
+ try {
360
+ appState = JSON.parse(appState);
361
+ } catch (e) {
362
+ try {
363
+ appState = appState;
364
+ } catch (e) {
365
+ return logger.Error();
366
+ }
367
+ }
368
+ try {
369
+ appState.map(function(c) {
370
+ var str = c.key + "=" + c.value + "; expires=" + c.expires + "; domain=" + c.domain + "; path=" + c.path + ";";
371
+ jar.setCookie(str, "http://" + c.domain);
372
+ });
373
+ switch (process.platform) {
374
+ case "win32":
375
+ {
376
+ try {
377
+ fs.writeFileSync("./backupappstate.json", JSON.stringify(appState, null, "\t"));
378
+ process.env.Backup = JSON.stringify(appState, null, "\t");
379
+ } catch (e) {
380
+ logger(Language.BackupFailed, '[ FCA-SUS ]');
381
+ }
382
+ }
383
+ break;
384
+ case "linux":
385
+ {
386
+ if (process.env["REPL_ID"] == undefined) {
387
+ try {
388
+ fs.writeFileSync("./backupappstate.json", JSON.stringify(appState, null, "\t"));
389
+ process.env.Backup = JSON.stringify(appState, null, "\t");
390
+ } catch (e) {
391
+ logger(Language.BackupFailed, '[ FCA-SUS ]');
392
+ }
393
+ } else {
394
+ try {
395
+ if (fs.existsSync('./backupappstate.json')) {
396
+ fs.unlinkSync('./backupappstate.json');
397
+ }
398
+ const client = new Client();
399
+ await client.set("Backup", appState);
400
+ process.env.Backup = JSON.stringify(appState, null, "\t");
401
+ } catch (e) {
402
+ logger(Language.BackupFailed, '[ FCA-SUS ]');
403
+ }
404
+ }
405
+ }
406
+ break;
407
+ case "android":
408
+ {
409
+ try {
410
+ fs.writeFileSync("./backupappstate.json", JSON.stringify(appState, null, "\t"));
411
+ process.env.Backup = JSON.stringify(appState, null, "\t");
412
+ } catch (e) {
413
+ logger(Language.BackupFailed, '[ FCA-SUS ]');
414
+ }
415
+ }
416
+ }
417
+
418
+ mainPromise = utils.get('https://www.facebook.com/', jar, null, globalOptions, { noRef: true }).then(utils.saveCookies(jar));
419
+ } catch (e) {
420
+
421
+ if (process.env.Backup != undefined && process.env.Backup) {
422
+ return backup(process.env.Backup);
423
+ }
424
+ switch (process.platform) {
425
+ case "win32":
426
+ {
427
+ try {
428
+ if (fs.existsSync('./backupappstate.json')) {
429
+ let content = fs.readFileSync('./backupappstate.json', 'utf8');
430
+ return backup(content);
431
+ }
432
+ } catch (e) {
433
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
434
+ logger.Error();
435
+ process.exit(0);
436
+ }
437
+ }
438
+ break;
439
+ case "linux":
440
+ {
441
+ if (process.env["REPL_ID"] == undefined) {
442
+ try {
443
+ if (fs.existsSync('./backupappstate.json')) {
444
+ let content = fs.readFileSync('./backupappstate.json', 'utf8');
445
+ return backup(content);
446
+ }
447
+ } catch (e) {
448
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
449
+ logger.Error();
450
+ process.exit(0);
451
+ }
452
+ } else {
453
+ try {
454
+ const client = new Client();
455
+ let key = await client.get("Backup");
456
+ if (key) {
457
+ backup(JSON.stringify(key));
458
+ } else {
459
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
460
+ }
461
+ } catch (e) {
462
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
463
+ }
464
+ }
465
+ }
466
+ break;
467
+ case "android":
468
+ {
469
+ try {
470
+ if (fs.existsSync('./backupappstate.json')) {
471
+ let content = fs.readFileSync('./backupappstate.json', 'utf8');
472
+ return backup(content);
473
+ }
474
+ } catch (e) {
475
+ logger(Language.ErrBackup, '[ FCA-SUS ]');
476
+ logger.Error();
477
+ process.exit(0);
478
+ }
479
+ }
480
+ break;
481
+ }
482
+
483
+ console.log(e);
484
+ return logger(Language.ScreenShotConsoleAndSendToAdmin, '[ FCA-HSP ]');
485
+ }
486
+ } else {
487
+ // Open the main page, then we login with the given credentials and finally
488
+ // load the main page again (it'll give us some IDs that we need)
489
+ mainPromise = utils
490
+ .get("https://www.facebook.com/", null, null, globalOptions, { noRef: true })
491
+ .then(utils.saveCookies(jar))
492
+ .then(makeLogin(jar, email, password, globalOptions, callback, prCallback))
493
+ .then(function() {
494
+ return utils.get('https://www.facebook.com/', jar, null, globalOptions).then(utils.saveCookies(jar));
495
+ });
496
+ }
497
+ } catch (e) {
498
+ console.log(e);
499
+ }
500
+ var ctx = null;
501
+ var _defaultFuncs = null;
502
+ var api = null;
503
+
504
+ mainPromise = mainPromise
505
+ .then(function(res) {
506
+ // Hacky check for the redirection that happens on some ISPs, which doesn't return statusCode 3xx
507
+ var reg = /<meta http-equiv="refresh" content="0;url=([^"]+)[^>]+>/;
508
+ var redirect = reg.exec(res.body);
509
+ if (redirect && redirect[1]) return utils.get(redirect[1], jar, null, globalOptions).then(utils.saveCookies(jar));
510
+ return res;
511
+ })
512
+ .then(async function(res) {
513
+ var html = res.body;
514
+ var stuff = await buildAPI(globalOptions, html, jar);
515
+ ctx = stuff[0];
516
+ _defaultFuncs = stuff[1];
517
+ api = stuff[2];
518
+ return res;
519
+ });
520
+ // given a pageID we log in as a page
521
+ if (globalOptions.pageID) {
522
+ mainPromise = mainPromise
523
+ .then(function() {
524
+ return utils.get('https://www.facebook.com/' + ctx.globalOptions.pageID + '/messages/?section=messages&subsection=inbox', ctx.jar, null, globalOptions);
525
+ })
526
+ .then(function(resData) {
527
+ var url = utils.getFrom(resData.body, 'window.location.replace("https:\\/\\/www.facebook.com\\', '");').split('\\').join('');
528
+ url = url.substring(0, url.length - 1);
529
+ return utils.get('https://www.facebook.com' + url, ctx.jar, null, globalOptions);
530
+ });
531
+ }
532
+
533
+ // At the end we call the callback or catch an exception
534
+ mainPromise
535
+ .then(function() {
536
+ logger(Language.DoneLogin, "[ FCA-SUS ]");
537
+ logger(Language.AutoCheckUpdate, "[ FCA-SUS ]");
538
+ //!---------- Auto Check, Update START -----------------!//
539
+ var Fetch = require('got');
540
+ var { readFileSync } = require('fs-extra');
541
+ const { execSync } = require('child_process');
542
+ Fetch('https://raw.githubusercontent.com/amogusdevlol/node-ainzfb/main/package.json').then(async(res) => {
543
+ const localbrand = JSON.parse(readFileSync('./node_modules/node-ainzfb/package.json')).version;
544
+ if (Number(localbrand.replace(/\./g, "")) < Number(JSON.parse(res.body.toString()).version.replace(/\./g, ""))) {
545
+ log.warn("[ FCA-SUS ] •", getText.gettext(Language.NewVersionFound, JSON.parse(readFileSync('./node_modules/node-ainzfb/package.json')).version, JSON.parse(res.body.toString()).version));
546
+ log.warn("[ FCA-SUS ] •", Language.AutoUpdate);
547
+ try {
548
+ execSync('npm install node-ainzfb@latest', { stdio: 'inherit' });
549
+ logger(Language.UpdateSuccess, "[ FCA-SUS ]")
550
+ logger(Language.RestartAfterUpdate, '[ FCA-SUS ]');
551
+ await new Promise(resolve => setTimeout(resolve, 5 * 1000));
552
+ console.clear();
553
+ process.exit(1);
554
+ } catch (err) {
555
+ log.warn('Error Update: ' + err);
556
+ logger(Language.UpdateFailed, "[ FCA-SUS ]");
557
+ try {
558
+ require.resolve('sus-support');
559
+ } catch (e) {
560
+ logger(Language.InstallSupportTool, "[ FCA-SUS ]");
561
+ execSync('npm install git+https://github.com/amogusdevlol/sus-support.git', { stdio: 'inherit' });
562
+ process.exit(1);
563
+ }
564
+ var fcasp = require('sus-support');
565
+ try {
566
+ fcasp.onError()
567
+ } catch (e) {
568
+ logger(Language.NotiAfterUseToolFail, "[ Fca - Helper ]")
569
+ logger("rmdir ./node_modules then enter npm i && npm start", "[ Fca - Helper ]");
570
+ process.exit(0);
571
+ }
572
+
573
+ }
574
+ } else {
575
+ logger(getText.gettext(Language.LocalVersion, localbrand), "[ FCA-SUS ]");
576
+ logger(Language.WishMessage[Math.floor(Math.random() * Language.WishMessage.length)], "[ FCA-SUS ]");
577
+ require('./Extra/ExtraUptimeRobot')()
578
+ await new Promise(resolve => setTimeout(resolve, 5 * 1000));
579
+ callback(null, api);
580
+ }
581
+ });
582
+ }).catch(function(e) {
583
+ log.error("login", e.error || e);
584
+ callback(e);
585
+ });
586
+ //!---------- Auto Check, Update END -----------------!//
587
+ }