fca-arif-babu 1.0.21 → 8.0.0

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 (152) hide show
  1. package/Extra/Balancer.js +49 -0
  2. package/Extra/Bypass/956/index.js +234 -0
  3. package/Extra/Bypass/test/aaaa.json +169 -0
  4. package/Extra/Bypass/test/index.js +188 -0
  5. package/Extra/Database/index.js +469 -0
  6. package/Extra/ExtraAddons.js +82 -0
  7. package/Extra/ExtraFindUID.js +62 -0
  8. package/Extra/ExtraGetThread.js +365 -0
  9. package/Extra/ExtraScreenShot.js +430 -0
  10. package/Extra/ExtraUptimeRobot.js +38 -0
  11. package/Extra/Html/Classic/script.js +119 -0
  12. package/Extra/Html/Classic/style.css +8 -0
  13. package/Extra/Security/AES_256_GCM/index.js +1 -0
  14. package/Extra/Security/Base/Step_1.js +6 -0
  15. package/Extra/Security/Base/Step_2.js +22 -0
  16. package/Extra/Security/Base/Step_3.js +22 -0
  17. package/Extra/Security/Base/index.js +191 -0
  18. package/Extra/Security/Step_1.js +6 -0
  19. package/Extra/Security/Step_2.js +22 -0
  20. package/Extra/Security/Step_3.js +22 -0
  21. package/Extra/Security/index.js +5 -0
  22. package/Extra/Src/Change_Environment.js +24 -0
  23. package/Extra/Src/Check_Update.js +67 -0
  24. package/Extra/Src/History.js +115 -0
  25. package/Extra/Src/Instant_Update.js +65 -0
  26. package/Extra/Src/Last-Run.js +65 -0
  27. package/Extra/Src/Premium.js +81 -0
  28. package/Extra/Src/Release_Memory.js +160 -0
  29. package/Extra/Src/Websocket.js +213 -0
  30. package/Extra/Src/image/62518eafb0670b697788ce4f9a4f71d1.jpg +0 -0
  31. package/Extra/Src/test.js +28 -0
  32. package/Extra/Src/uuid.js +137 -0
  33. package/Func/AcceptAgreement.js +31 -0
  34. package/Func/ClearCache.js +64 -0
  35. package/Func/ReportV1.js +54 -0
  36. package/{LICENSE-MIT → LICENSE.txt} +6 -6
  37. package/Language/index.json +228 -0
  38. package/Main.js +1290 -0
  39. package/README.md +8 -6
  40. package/SECURITY.md +17 -0
  41. package/broadcast.js +44 -0
  42. package/index.js +424 -465
  43. package/logger.js +66 -0
  44. package/package.json +91 -42
  45. package/src/Dev_Horizon_Data.js +125 -0
  46. package/src/Dev_getThreadInfoOLD.js +422 -0
  47. package/src/Dev_shareTest2.js +68 -0
  48. package/src/Dev_shareTest3.js +71 -0
  49. package/src/Premium.js +25 -0
  50. package/src/Screenshot.js +83 -0
  51. package/src/addExternalModule.js +5 -14
  52. package/src/addUserToGroup.js +21 -57
  53. package/src/changeAdminStatus.js +22 -46
  54. package/src/changeArchivedStatus.js +12 -26
  55. package/src/{changeAvatarV2.js → changeAvt.js} +2 -3
  56. package/src/changeBio.js +15 -26
  57. package/src/changeBlockedStatus.js +9 -22
  58. package/src/changeGroupImage.js +26 -55
  59. package/src/changeNickname.js +14 -28
  60. package/src/changeThreadColor.js +19 -22
  61. package/src/changeThreadEmoji.js +12 -25
  62. package/src/createNewGroup.js +18 -36
  63. package/src/createPoll.js +17 -28
  64. package/src/deleteMessage.js +14 -25
  65. package/src/deleteThread.js +13 -26
  66. package/src/editMessage.js +50 -56
  67. package/src/forwardAttachment.js +16 -28
  68. package/src/getAccessToken.js +28 -0
  69. package/src/getCurrentUserID.js +3 -3
  70. package/src/getEmojiUrl.js +8 -10
  71. package/src/getFriendsList.js +15 -25
  72. package/src/getMessage.js +81 -813
  73. package/src/getThreadHistory.js +98 -241
  74. package/src/getThreadInfo.js +286 -89
  75. package/src/getThreadInfoOLD.js +422 -0
  76. package/src/getThreadList.js +158 -215
  77. package/src/getThreadMain.js +220 -0
  78. package/src/getThreadPictures.js +20 -40
  79. package/src/getUID.js +49 -112
  80. package/src/getUserID.js +14 -18
  81. package/src/getUserInfo.js +75 -34
  82. package/src/getUserInfoMain.js +65 -0
  83. package/src/getUserInfoV2.js +32 -0
  84. package/src/getUserInfoV3.js +63 -0
  85. package/src/getUserInfoV4.js +55 -0
  86. package/src/getUserInfoV5.js +61 -0
  87. package/src/handleFriendRequest.js +14 -25
  88. package/src/handleMessageRequest.js +21 -37
  89. package/src/httpGet.js +22 -37
  90. package/src/httpPost.js +20 -36
  91. package/src/httpPostFormData.js +23 -52
  92. package/src/listenMqtt.js +667 -414
  93. package/src/listenMqttV1.js +846 -0
  94. package/src/logout.js +17 -24
  95. package/src/markAsDelivered.js +16 -23
  96. package/src/markAsRead.js +28 -43
  97. package/src/markAsReadAll.js +14 -21
  98. package/src/markAsSeen.js +19 -29
  99. package/src/muteThread.js +13 -18
  100. package/src/removeUserFromGroup.js +18 -48
  101. package/src/resolvePhotoUrl.js +14 -22
  102. package/src/searchForThread.js +13 -23
  103. package/src/sendMessage.js +125 -181
  104. package/src/sendMqttMessage.js +71 -0
  105. package/src/sendTypingIndicator.js +80 -28
  106. package/src/setMessageReaction.js +20 -33
  107. package/src/setPostReaction.js +95 -105
  108. package/src/setTitle.js +19 -35
  109. package/src/shareContact.js +37 -92
  110. package/src/shareLink.js +5 -6
  111. package/src/threadColors.js +17 -109
  112. package/src/unfriend.js +11 -20
  113. package/src/unsendMessage.js +33 -30
  114. package/src/unsendMqttMessage.js +66 -0
  115. package/test/data/shareAttach.js +146 -0
  116. package/test/data/something.mov +1 -0
  117. package/test/data/test.png +1 -0
  118. package/test/data/test.txt +1 -0
  119. package/test/env/.env +1 -0
  120. package/test/example-config.json +18 -0
  121. package/test/test-page.js +140 -0
  122. package/test/test.js +385 -0
  123. package/test/testv2.js +3 -0
  124. package/utils.js +2908 -1247
  125. package/replit.nix +0 -3
  126. package/src/changeAvatar.js +0 -136
  127. package/src/changeBlockedStatusMqtt.js +0 -80
  128. package/src/changeCover.js +0 -72
  129. package/src/changeName.js +0 -78
  130. package/src/changeUsername.js +0 -58
  131. package/src/createCommentPost.js +0 -229
  132. package/src/createPost.js +0 -275
  133. package/src/data/getThreadInfo.json +0 -1
  134. package/src/editMessageOld.js +0 -67
  135. package/src/follow.js +0 -74
  136. package/src/getAccess.js +0 -112
  137. package/src/getAvatarUser.js +0 -78
  138. package/src/getBotInitialData.js +0 -42
  139. package/src/getRegion.js +0 -7
  140. package/src/getThreadHistoryDeprecated.js +0 -93
  141. package/src/getThreadInfoDeprecated.js +0 -80
  142. package/src/getThreadListDeprecated.js +0 -75
  143. package/src/listenNotification.js +0 -85
  144. package/src/pinMessage.js +0 -59
  145. package/src/refreshFb_dtsg.js +0 -89
  146. package/src/searchStickers.js +0 -53
  147. package/src/sendMessageMqtt.js +0 -316
  148. package/src/setMessageReactionMqtt.js +0 -62
  149. package/src/setProfileGuard.js +0 -44
  150. package/src/setStoryReaction.js +0 -64
  151. package/src/stopListenMqtt.js +0 -23
  152. package/src/uploadAttachment.js +0 -94
@@ -1,57 +1,36 @@
1
1
  "use strict";
2
2
 
3
- const utils = require("../utils");
4
- // @NethWs3Dev
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
5
 
6
6
  module.exports = function (defaultFuncs, api, ctx) {
7
7
  return function addUserToGroup(userID, threadID, callback) {
8
- let resolveFunc = function () {};
9
- let rejectFunc = function () {};
10
- const returnPromise = new Promise(function (resolve, reject) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
11
  resolveFunc = resolve;
12
12
  rejectFunc = reject;
13
13
  });
14
14
 
15
- if (
16
- !callback &&
17
- (utils.getType(threadID) === "Function" ||
18
- utils.getType(threadID) === "AsyncFunction")
19
- ) {
20
- throw new utils.CustomError({
21
- error: "please pass a threadID as a second argument.",
22
- });
23
- }
15
+ if (!callback && (utils.getType(threadID) === "Function" || utils.getType(threadID) === "AsyncFunction")) throw { error: "please pass a threadID as a second argument." };
24
16
 
25
17
  if (!callback) {
26
18
  callback = function (err) {
27
- if (err) {
28
- return rejectFunc(err);
29
- }
19
+ if (err) return rejectFunc(err);
30
20
  resolveFunc();
31
21
  };
32
22
  }
23
+
24
+ if (utils.getType(threadID) !== "Number" && utils.getType(threadID) !== "String") throw { error: "ThreadID should be of type Number or String and not " + utils.getType(threadID) + "." };
33
25
 
34
- if (
35
- utils.getType(threadID) !== "Number" &&
36
- utils.getType(threadID) !== "String"
37
- ) {
38
- throw new utils.CustomError({
39
- error:
40
- "ThreadID should be of type Number or String and not " +
41
- utils.getType(threadID) +
42
- ".",
43
- });
44
- }
45
26
 
46
- if (utils.getType(userID) !== "Array") {
47
- userID = [userID];
48
- }
27
+ if (utils.getType(userID) !== "Array") userID = [userID];
49
28
 
50
- const messageAndOTID = utils.generateOfflineThreadingID();
51
- const form = {
29
+ var messageAndOTID = utils.generateOfflineThreadingID();
30
+ var form = {
52
31
  client: "mercury",
53
32
  action_type: "ma-type:log-message",
54
- author: "fbid:" + (ctx.userID),
33
+ author: "fbid:" + ctx.userID,
55
34
  thread_id: "",
56
35
  timestamp: Date.now(),
57
36
  timestamp_absolute: "Today",
@@ -72,41 +51,26 @@ module.exports = function (defaultFuncs, api, ctx) {
72
51
  message_id: messageAndOTID,
73
52
  threading_id: utils.generateThreadingID(ctx.clientID),
74
53
  manual_retry_cnt: "0",
75
- thread_fbid: threadID,
54
+ thread_fbid: threadID
76
55
  };
77
56
 
78
- for (let i = 0; i < userID.length; i++) {
79
- if (
80
- utils.getType(userID[i]) !== "Number" &&
81
- utils.getType(userID[i]) !== "String"
82
- ) {
83
- throw new utils.CustomError({
84
- error:
85
- "Elements of userID should be of type Number or String and not " +
86
- utils.getType(userID[i]) +
87
- ".",
88
- });
89
- }
90
-
91
- form["log_message_data[added_participants][" + i + "]"] =
92
- "fbid:" + userID[i];
57
+ for (var i = 0; i < userID.length; i++) {
58
+ if (utils.getType(userID[i]) !== "Number" && utils.getType(userID[i]) !== "String") throw { error: "Elements of userID should be of type Number or String and not " + utils.getType(userID[i]) + "." };
59
+ form["log_message_data[added_participants][" + i + "]"] = "fbid:" + userID[i];
93
60
  }
94
61
 
95
62
  defaultFuncs
96
63
  .post("https://www.facebook.com/messaging/send/", ctx.jar, form)
97
64
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
98
65
  .then(function (resData) {
99
- if (!resData) {
100
- throw new utils.CustomError({ error: "Add to group failed." });
101
- }
102
- if (resData.error) {
103
- throw new utils.CustomError(resData);
104
- }
66
+ if (!resData) throw { error: "Add to group failed." };
67
+ if (resData.error) throw resData;
68
+
105
69
 
106
70
  return callback();
107
71
  })
108
72
  .catch(function (err) {
109
- console.error("addUserToGroup", err);
73
+ log.error("addUserToGroup", err);
110
74
  return callback(err);
111
75
  });
112
76
 
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  const utils = require("../utils");
4
- // @NethWs3Dev
4
+ const log = require("npmlog");
5
5
 
6
- module.exports = function (defaultFuncs, api, ctx) {
6
+ module.exports = function(defaultFuncs, api, ctx) {
7
7
  return function changeAdminStatus(threadID, adminIDs, adminStatus, callback) {
8
8
  if (utils.getType(threadID) !== "String") {
9
- throw new utils.CustomError({
10
- error: "changeAdminStatus: threadID must be a string",
11
- });
9
+ throw {error: "changeAdminStatus: threadID must be a string"};
12
10
  }
13
11
 
14
12
  if (utils.getType(adminIDs) === "String") {
@@ -16,20 +14,16 @@ module.exports = function (defaultFuncs, api, ctx) {
16
14
  }
17
15
 
18
16
  if (utils.getType(adminIDs) !== "Array") {
19
- throw new utils.CustomError({
20
- error: "changeAdminStatus: adminIDs must be an array or string",
21
- });
17
+ throw {error: "changeAdminStatus: adminIDs must be an array or string"};
22
18
  }
23
19
 
24
20
  if (utils.getType(adminStatus) !== "Boolean") {
25
- throw new utils.CustomError({
26
- error: "changeAdminStatus: adminStatus must be a string",
27
- });
21
+ throw {error: "changeAdminStatus: adminStatus must be a string"};
28
22
  }
29
23
 
30
- let resolveFunc = function () {};
31
- let rejectFunc = function () {};
32
- const returnPromise = new Promise(function (resolve, reject) {
24
+ var resolveFunc = function(){};
25
+ var rejectFunc = function(){};
26
+ var returnPromise = new Promise(function (resolve, reject) {
33
27
  resolveFunc = resolve;
34
28
  rejectFunc = reject;
35
29
  });
@@ -43,61 +37,43 @@ module.exports = function (defaultFuncs, api, ctx) {
43
37
  };
44
38
  }
45
39
 
46
- if (
47
- utils.getType(callback) !== "Function" &&
48
- utils.getType(callback) !== "AsyncFunction"
49
- ) {
50
- throw new utils.CustomError({
51
- error: "changeAdminStatus: callback is not a function",
52
- });
40
+ if (utils.getType(callback) !== "Function" && utils.getType(callback) !== "AsyncFunction") {
41
+ throw {error: "changeAdminStatus: callback is not a function"};
53
42
  }
54
43
 
55
- const form = {
56
- thread_fbid: threadID,
44
+ let form = {
45
+ "thread_fbid": threadID,
57
46
  };
58
47
 
59
48
  let i = 0;
60
- for (const u of adminIDs) {
49
+ for (let u of adminIDs) {
61
50
  form[`admin_ids[${i++}]`] = u;
62
51
  }
63
52
  form["add"] = adminStatus;
64
53
 
65
54
  defaultFuncs
66
- .post(
67
- "https://www.facebook.com/messaging/save_admins/?dpr=1",
68
- ctx.jar,
69
- form,
70
- )
55
+ .post("https://www.facebook.com/messaging/save_admins/?dpr=1", ctx.jar, form)
71
56
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
72
- .then(function (resData) {
57
+ .then(function(resData) {
73
58
  if (resData.error) {
74
59
  switch (resData.error) {
75
60
  case 1976004:
76
- throw new utils.CustomError({
77
- error: "Cannot alter admin status: you are not an admin.",
78
- rawResponse: resData,
79
- });
61
+ throw { error: "Cannot alter admin status: you are not an admin.", rawResponse: resData };
80
62
  case 1357031:
81
- throw new utils.CustomError({
82
- error:
83
- "Cannot alter admin status: this thread is not a group chat.",
84
- rawResponse: resData,
85
- });
63
+ throw { error: "Cannot alter admin status: this thread is not a group chat.", rawResponse: resData };
86
64
  default:
87
- throw new utils.CustomError({
88
- error: "Cannot alter admin status: unknown error.",
89
- rawResponse: resData,
90
- });
65
+ throw { error: "Cannot alter admin status: unknown error.", rawResponse: resData };
91
66
  }
92
67
  }
93
68
 
94
69
  callback();
95
70
  })
96
- .catch(function (err) {
97
- console.error("changeAdminStatus", err);
71
+ .catch(function(err) {
72
+ log.error("changeAdminStatus", err);
98
73
  return callback(err);
99
74
  });
100
-
75
+
101
76
  return returnPromise;
102
77
  };
103
78
  };
79
+
@@ -1,52 +1,38 @@
1
1
  "use strict";
2
2
 
3
- const utils = require("../utils");
4
- // @NethWs3Dev
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
5
 
6
6
  module.exports = function (defaultFuncs, api, ctx) {
7
7
  return function changeArchivedStatus(threadOrThreads, archive, callback) {
8
- let resolveFunc = function () {};
9
- let rejectFunc = function () {};
10
- const returnPromise = new Promise(function (resolve, reject) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
11
  resolveFunc = resolve;
12
12
  rejectFunc = reject;
13
13
  });
14
14
 
15
15
  if (!callback) {
16
16
  callback = function (err) {
17
- if (err) {
18
- return rejectFunc(err);
19
- }
17
+ if (err) return rejectFunc(err);
20
18
  resolveFunc();
21
19
  };
22
20
  }
23
21
 
24
- const form = {};
22
+ var form = {};
25
23
 
26
- if (utils.getType(threadOrThreads) === "Array") {
27
- for (let i = 0; i < threadOrThreads.length; i++) {
28
- form["ids[" + threadOrThreads[i] + "]"] = archive;
29
- }
30
- } else {
31
- form["ids[" + threadOrThreads + "]"] = archive;
32
- }
24
+ if (utils.getType(threadOrThreads) === "Array") for (var i = 0; i < threadOrThreads.length; i++) form["ids[" + threadOrThreads[i] + "]"] = archive;
25
+ else form["ids[" + threadOrThreads + "]"] = archive;
33
26
 
34
27
  defaultFuncs
35
- .post(
36
- "https://www.facebook.com/ajax/mercury/change_archived_status.php",
37
- ctx.jar,
38
- form,
39
- )
28
+ .post("https://www.facebook.com/ajax/mercury/change_archived_status.php", ctx.jar, form)
40
29
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
41
30
  .then(function (resData) {
42
- if (resData.error) {
43
- throw resData;
44
- }
45
-
31
+ if (resData.error) throw resData;
46
32
  return callback();
47
33
  })
48
34
  .catch(function (err) {
49
- console.error("changeArchivedStatus", err);
35
+ log.error("changeArchivedStatus", err);
50
36
  return callback(err);
51
37
  });
52
38
 
@@ -1,8 +1,7 @@
1
-
2
1
  "use strict";
3
2
 
4
3
  var utils = require("../utils");
5
- // @NethWs3Dev
4
+ var log = require("npmlog");
6
5
  /**
7
6
  * It posts an image to a Facebook profile
8
7
  * @param Api - The API object
@@ -11,7 +10,7 @@ var utils = require("../utils");
11
10
  * @returns The JSON.parse(Data.split("for (;;);")[1]); is returning the following:
12
11
  * {"__ar":1,"payload":null,"jsmods":{"require":[["ImageUploader","uploadPhoto",[{"__m":"__elem_0"},{"__m":"__elem_1"},{"__m":"__elem_2"},{"__m":"__
13
12
  */
14
- async function postImage(Api, BotID, form) {
13
+ async function postImage(Api,BotID,form) {
15
14
  var Data = await Api.httpPostFormData(`https://www.facebook.com/profile/picture/upload/?profile_id=${BotID}&photo_source=57&av=${BotID}`, form);
16
15
  return JSON.parse(Data.split("for (;;);")[1]);
17
16
  }
package/src/changeBio.js CHANGED
@@ -1,43 +1,34 @@
1
1
  "use strict";
2
2
 
3
- const utils = require("../utils");
4
- // @NethWs3Dev
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
5
 
6
6
  module.exports = function (defaultFuncs, api, ctx) {
7
7
  return function changeBio(bio, publish, callback) {
8
- let resolveFunc = function () {};
9
- let rejectFunc = function () {};
10
- const returnPromise = new Promise(function (resolve, reject) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
11
  resolveFunc = resolve;
12
12
  rejectFunc = reject;
13
13
  });
14
14
 
15
15
  if (!callback) {
16
- if (
17
- utils.getType(publish) == "Function" ||
18
- utils.getType(publish) == "AsyncFunction"
19
- ) {
20
- callback = publish;
21
- } else {
16
+ if (utils.getType(publish) == "Function" || utils.getType(publish) == "AsyncFunction") callback = publish;
17
+ else {
22
18
  callback = function (err) {
23
- if (err) {
24
- return rejectFunc(err);
25
- }
19
+ if (err) return rejectFunc(err);
26
20
  resolveFunc();
27
21
  };
28
22
  }
29
23
  }
30
24
 
31
- if (utils.getType(publish) != "Boolean") {
32
- publish = false;
33
- }
34
-
25
+ if (utils.getType(publish) != "Boolean") publish = false;
35
26
  if (utils.getType(bio) != "String") {
36
27
  bio = "";
37
28
  publish = false;
38
29
  }
39
30
 
40
- const form = {
31
+ var form = {
41
32
  fb_api_caller_class: "RelayModern",
42
33
  fb_api_req_friendly_name: "ProfileCometSetBioMutation",
43
34
  // This doc_is is valid as of May 23, 2020
@@ -47,27 +38,25 @@ module.exports = function (defaultFuncs, api, ctx) {
47
38
  bio: bio,
48
39
  publish_bio_feed_story: publish,
49
40
  actor_id: ctx.userID,
50
- client_mutation_id: Math.round(Math.random() * 1024).toString(),
41
+ client_mutation_id: Math.round(Math.random() * 1024).toString()
51
42
  },
52
43
  hasProfileTileViewID: false,
53
44
  profileTileViewID: null,
54
- scale: 1,
45
+ scale: 1
55
46
  }),
56
- av: ctx.userID,
47
+ av: ctx.userID
57
48
  };
58
49
 
59
50
  defaultFuncs
60
51
  .post("https://www.facebook.com/api/graphql/", ctx.jar, form)
61
52
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
62
53
  .then(function (resData) {
63
- if (resData.errors) {
64
- throw resData;
65
- }
54
+ if (resData.errors) throw resData;
66
55
 
67
56
  return callback();
68
57
  })
69
58
  .catch(function (err) {
70
- console.error("changeBio", err);
59
+ log.error("changeBio", err);
71
60
  return callback(err);
72
61
  });
73
62
 
@@ -1,47 +1,34 @@
1
1
  "use strict";
2
2
 
3
- const utils = require("../utils");
4
- // @NethWs3Dev
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
5
 
6
6
  module.exports = function (defaultFuncs, api, ctx) {
7
7
  return function changeBlockedStatus(userID, block, callback) {
8
- let resolveFunc = function () {};
9
- let rejectFunc = function () {};
10
- const returnPromise = new Promise(function (resolve, reject) {
8
+ var resolveFunc = function () { };
9
+ var rejectFunc = function () { };
10
+ var returnPromise = new Promise(function (resolve, reject) {
11
11
  resolveFunc = resolve;
12
12
  rejectFunc = reject;
13
13
  });
14
14
 
15
15
  if (!callback) {
16
16
  callback = function (err) {
17
- if (err) {
18
- return rejectFunc(err);
19
- }
17
+ if (err) return rejectFunc(err);
20
18
  resolveFunc();
21
19
  };
22
20
  }
23
21
 
24
22
  defaultFuncs
25
- .post(
26
- `https://www.facebook.com/messaging/${
27
- block ? "" : "un"
28
- }block_messages/`,
29
- ctx.jar,
30
- {
31
- fbid: userID,
32
- },
33
- )
23
+ .post(`https://www.facebook.com/messaging/${block ? "" : "un"}block_messages/`, ctx.jar, { fbid: userID })
34
24
  .then(utils.saveCookies(ctx.jar))
35
25
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
36
26
  .then(function (resData) {
37
- if (resData.error) {
38
- throw resData;
39
- }
40
-
27
+ if (resData.error) throw resData;
41
28
  return callback();
42
29
  })
43
30
  .catch(function (err) {
44
- console.error("changeBlockedStatus", err);
31
+ log.error("changeBlockedStatus", err);
45
32
  return callback(err);
46
33
  });
47
34
  return returnPromise;
@@ -1,80 +1,61 @@
1
1
  "use strict";
2
2
 
3
- const utils = require("../utils");
4
- // @NethWs3Dev
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+ var bluebird = require("bluebird");
5
6
 
6
7
  module.exports = function (defaultFuncs, api, ctx) {
7
8
  function handleUpload(image, callback) {
8
- const uploads = [];
9
+ var uploads = [];
9
10
 
10
- const form = {
11
+ var form = {
11
12
  images_only: "true",
12
- "attachment[]": image,
13
+ "attachment[]": image
13
14
  };
14
15
 
15
16
  uploads.push(
16
17
  defaultFuncs
17
- .postFormData(
18
- "https://upload.facebook.com/ajax/mercury/upload.php",
19
- ctx.jar,
20
- form,
21
- {},
22
- )
18
+ .postFormData("https://upload.facebook.com/ajax/mercury/upload.php", ctx.jar, form, {})
23
19
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
24
20
  .then(function (resData) {
25
- if (resData.error) {
26
- throw resData;
27
- }
21
+ if (resData.error) throw resData;
28
22
 
29
23
  return resData.payload.metadata[0];
30
- }),
24
+ })
31
25
  );
32
26
 
33
27
  // resolve all promises
34
- Promise.all(uploads)
35
- .then(function (resData) {
36
- callback(null, resData);
37
- })
28
+ bluebird
29
+ .all(uploads)
30
+ .then(resData => callback(null, resData))
38
31
  .catch(function (err) {
39
- console.error("handleUpload", err);
32
+ log.error("handleUpload", err);
40
33
  return callback(err);
41
34
  });
42
35
  }
43
36
 
44
37
  return function changeGroupImage(image, threadID, callback) {
45
- if (
46
- !callback &&
47
- (utils.getType(threadID) === "Function" ||
48
- utils.getType(threadID) === "AsyncFunction")
49
- ) {
50
- throw { error: "please pass a threadID as a second argument." };
51
- }
52
-
53
- if (!utils.isReadableStream(image)) {
54
- throw { error: "please pass a readable stream as a first argument." };
55
- }
38
+ if (!callback && (utils.getType(threadID) === "Function" || utils.getType(threadID) === "AsyncFunction")) throw { error: "please pass a threadID as a second argument." };
56
39
 
57
- let resolveFunc = function () {};
58
- let rejectFunc = function () {};
59
- const returnPromise = new Promise(function (resolve, reject) {
40
+ var resolveFunc = function () { };
41
+ var rejectFunc = function () { };
42
+ var returnPromise = new Promise(function (resolve, reject) {
60
43
  resolveFunc = resolve;
61
44
  rejectFunc = reject;
62
45
  });
63
46
 
64
47
  if (!callback) {
65
48
  callback = function (err) {
66
- if (err) {
67
- return rejectFunc(err);
68
- }
49
+ if (err) return rejectFunc(err);
69
50
  resolveFunc();
70
51
  };
71
52
  }
72
53
 
73
- const messageAndOTID = utils.generateOfflineThreadingID();
74
- const form = {
54
+ var messageAndOTID = utils.generateOfflineThreadingID();
55
+ var form = {
75
56
  client: "mercury",
76
57
  action_type: "ma-type:log-message",
77
- author: "fbid:" + (ctx.userID),
58
+ author: "fbid:" + ctx.userID,
78
59
  author_email: "",
79
60
  ephemeral_ttl_mode: "0",
80
61
  is_filtered_content: false,
@@ -97,35 +78,25 @@ module.exports = function (defaultFuncs, api, ctx) {
97
78
  timestamp: Date.now(),
98
79
  timestamp_absolute: "Today",
99
80
  timestamp_relative: utils.generateTimestampRelative(),
100
- timestamp_time_passed: "0",
81
+ timestamp_time_passed: "0"
101
82
  };
102
83
 
103
84
  handleUpload(image, function (err, payload) {
104
- if (err) {
105
- return callback(err);
106
- }
85
+ if (err) return callback(err);
107
86
 
108
87
  form["thread_image_id"] = payload[0]["image_id"];
109
88
  form["thread_id"] = threadID;
110
89
 
111
90
  defaultFuncs
112
- .post(
113
- "https://www.facebook.com/messaging/set_thread_image/",
114
- ctx.jar,
115
- form,
116
- )
91
+ .post("https://www.facebook.com/messaging/set_thread_image/", ctx.jar, form)
117
92
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
118
93
  .then(function (resData) {
119
94
  // check for errors here
120
-
121
- if (resData.error) {
122
- throw resData;
123
- }
124
-
95
+ if (resData.error) throw resData;
125
96
  return callback();
126
97
  })
127
98
  .catch(function (err) {
128
- console.error("changeGroupImage", err);
99
+ log.error("changeGroupImage", err);
129
100
  return callback(err);
130
101
  });
131
102
  });