node-ainzfb-new 1.6.1-test → 1.6.30-test

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. package/index.js +1 -1
  2. package/package.json +2 -3
  3. package/src/addExternalModule.js +13 -6
  4. package/src/addUserToGroup.js +35 -12
  5. package/src/changeAdminStatus.js +32 -16
  6. package/src/changeArchivedStatus.js +15 -9
  7. package/src/changeAvt.js +91 -0
  8. package/src/changeBio.js +12 -8
  9. package/src/changeBlockedStatus.js +14 -8
  10. package/src/changeGroupImage.js +27 -13
  11. package/src/changeNickname.js +19 -10
  12. package/src/changeThreadColor.js +15 -10
  13. package/src/changeThreadEmoji.js +17 -9
  14. package/src/createNewGroup.js +18 -10
  15. package/src/createPoll.js +16 -11
  16. package/src/deleteMessage.js +16 -10
  17. package/src/deleteThread.js +16 -10
  18. package/src/forwardAttachment.js +14 -9
  19. package/src/getCurrentUserID.js +1 -1
  20. package/src/getEmojiUrl.js +3 -2
  21. package/src/getFriendsList.js +18 -10
  22. package/src/getMessage.js +52 -48
  23. package/src/getThreadHistory.js +156 -59
  24. package/src/getThreadHistoryDeprecated.js +26 -15
  25. package/src/getThreadInfoDeprecated.js +25 -13
  26. package/src/getThreadList.js +112 -53
  27. package/src/getThreadListDeprecated.js +30 -12
  28. package/src/getThreadPictures.js +25 -13
  29. package/src/getUserID.js +8 -7
  30. package/src/getUserInfo.js +12 -9
  31. package/src/handleFriendRequest.js +10 -9
  32. package/src/handleMessageRequest.js +16 -10
  33. package/src/httpGet.js +18 -13
  34. package/src/httpPost.js +18 -13
  35. package/src/httpPostFormData.js +14 -9
  36. package/src/listenMqtt.js +1218 -571
  37. package/src/logout.js +18 -13
  38. package/src/markAsDelivered.js +16 -10
  39. package/src/markAsRead.js +36 -24
  40. package/src/markAsReadAll.js +14 -10
  41. package/src/markAsSeen.js +18 -11
  42. package/src/muteThread.js +12 -8
  43. package/src/removeUserFromGroup.js +33 -10
  44. package/src/resolvePhotoUrl.js +8 -6
  45. package/src/searchForThread.js +13 -8
  46. package/src/sendMessage.js +172 -78
  47. package/src/sendTypingIndicator.js +29 -14
  48. package/src/setMessageReaction.js +13 -8
  49. package/src/setPostReaction.js +97 -95
  50. package/src/setTitle.js +18 -12
  51. package/src/threadColors.js +17 -17
  52. package/src/unfriend.js +14 -9
  53. package/src/unsendMessage.js +7 -7
  54. package/utils.js +9 -10
package/index.js CHANGED
@@ -997,7 +997,7 @@ async function loginHelper(appState, email, password, globalOptions, callback, p
997
997
  Fetch('https://raw.githubusercontent.com/amogusdevlol/node-ainzfb/main/package.json').then(async(res) => {
998
998
  const localbrand = JSON.parse(readFileSync('./node_modules/node-ainzfb-new/package.json')).version;
999
999
  if (Number(localbrand.replace(/\./g, "")) < Number(JSON.parse(res.body.toString()).version.replace(/\./g, ""))) {
1000
- log.warn("[ FCA-SUS ] •", getText.gettext(Language.NewVersionFound, JSON.parse(readFileSync('./node_modules/node-ainzfb-new/package.json')).version, JSON.parse(res.body.toString()).version));
1000
+ log.warn("[ FCA-SUS ] •", getText.gettext(Language.NewVersionFound, JSON.parse(readFileSync('./node_modules/node-ainzfb/package.json')).version, JSON.parse(res.body.toString()).version));
1001
1001
  log.warn("[ FCA-SUS ] •", Language.AutoUpdate);
1002
1002
  try {
1003
1003
  execSync('npm install node-ainzfb-new@latest', { stdio: 'inherit' });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-ainzfb-new",
3
- "version": "1.6.1-test",
3
+ "version": "1.6.30-test",
4
4
  "description": "A Facebook chat API that doesn't rely on XMPP. Will NOT be deprecated after April 30th 2015.",
5
5
  "scripts": {
6
6
  "test": "mocha",
@@ -35,10 +35,9 @@
35
35
  "https-proxy-agent": "latest",
36
36
  "is-hexcolor": "^1.0.0",
37
37
  "lodash": "",
38
- "mqtt": "latest",
38
+ "mqtt": "^4.3.7",
39
39
  "node-superfetch": "^0.2.3",
40
40
  "npmlog": "latest",
41
- "os": "latest",
42
41
  "path": "latest",
43
42
  "pretty-ms": "latest",
44
43
  "request": "latest",
@@ -2,15 +2,22 @@
2
2
 
3
3
  const utils = require("../utils");
4
4
 
5
- module.exports = function (defaultFuncs, api, ctx) {
5
+ module.exports = function(defaultFuncs, api, ctx) {
6
6
  return function addExternalModule(moduleObj) {
7
7
  if (utils.getType(moduleObj) == "Object") {
8
8
  for (let apiName in moduleObj) {
9
- if (utils.getType(moduleObj[apiName]) == "Function") api[apiName] = moduleObj[apiName](defaultFuncs, api, ctx);
10
- else throw new Error(`Item "${apiName}" in moduleObj must be a function, not ${utils.getType(moduleObj[apiName])}!`);
11
-
9
+ if (utils.getType(moduleObj[apiName]) == "Function")
10
+ api[apiName] = moduleObj[apiName](defaultFuncs, api, ctx);
11
+ else
12
+ throw new Error(
13
+ `Item "${apiName}" in moduleObj must be a function, not ${utils.getType(
14
+ moduleObj[apiName]
15
+ )}!`
16
+ );
12
17
  }
13
- }
14
- else throw new Error(`moduleObj must be an object, not ${utils.getType(moduleObj)}!`);
18
+ } else
19
+ throw new Error(
20
+ `moduleObj must be an object, not ${utils.getType(moduleObj)}!`
21
+ );
15
22
  };
16
23
  };
@@ -3,25 +3,39 @@
3
3
  var utils = require("../utils");
4
4
  var log = require("npmlog");
5
5
 
6
- module.exports = function (defaultFuncs, api, ctx) {
6
+ module.exports = function(defaultFuncs, api, ctx) {
7
7
  return function addUserToGroup(userID, threadID, callback) {
8
- var resolveFunc = function () { };
9
- var rejectFunc = function () { };
10
- var 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 (!callback && (utils.getType(threadID) === "Function" || utils.getType(threadID) === "AsyncFunction")) throw { error: "please pass a threadID as a second argument." };
15
+ if (
16
+ !callback &&
17
+ (utils.getType(threadID) === "Function" ||
18
+ utils.getType(threadID) === "AsyncFunction")
19
+ )
20
+ throw { error: "please pass a threadID as a second argument." };
16
21
 
17
22
  if (!callback) {
18
- callback = function (err) {
23
+ callback = function(err) {
19
24
  if (err) return rejectFunc(err);
20
25
  resolveFunc();
21
26
  };
22
27
  }
23
28
 
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) + "." };
29
+ if (
30
+ utils.getType(threadID) !== "Number" &&
31
+ utils.getType(threadID) !== "String"
32
+ )
33
+ throw {
34
+ error:
35
+ "ThreadID should be of type Number or String and not " +
36
+ utils.getType(threadID) +
37
+ "."
38
+ };
25
39
 
26
40
  if (utils.getType(userID) !== "Array") userID = [userID];
27
41
 
@@ -54,21 +68,30 @@ module.exports = function (defaultFuncs, api, ctx) {
54
68
  };
55
69
 
56
70
  for (var i = 0; i < userID.length; i++) {
57
- 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]) + "." };
58
- form["log_message_data[added_participants][" + i + "]"] = "fbid:" + userID[i];
71
+ if (
72
+ utils.getType(userID[i]) !== "Number" &&
73
+ utils.getType(userID[i]) !== "String"
74
+ )
75
+ throw {
76
+ error:
77
+ "Elements of userID should be of type Number or String and not " +
78
+ utils.getType(userID[i]) +
79
+ "."
80
+ };
81
+ form["log_message_data[added_participants][" + i + "]"] =
82
+ "fbid:" + userID[i];
59
83
  }
60
84
 
61
85
  defaultFuncs
62
86
  .post("https://www.facebook.com/messaging/send/", ctx.jar, form)
63
87
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
64
- .then(function (resData) {
88
+ .then(function(resData) {
65
89
  if (!resData) throw { error: "Add to group failed." };
66
90
  if (resData.error) throw resData;
67
91
 
68
-
69
92
  return callback();
70
93
  })
71
- .catch(function (err) {
94
+ .catch(function(err) {
72
95
  log.error("addUserToGroup", err);
73
96
  return callback(err);
74
97
  });
@@ -6,7 +6,7 @@ const log = require("npmlog");
6
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 {error: "changeAdminStatus: threadID must be a string"};
9
+ throw { error: "changeAdminStatus: threadID must be a string" };
10
10
  }
11
11
 
12
12
  if (utils.getType(adminIDs) === "String") {
@@ -14,22 +14,22 @@ module.exports = function(defaultFuncs, api, ctx) {
14
14
  }
15
15
 
16
16
  if (utils.getType(adminIDs) !== "Array") {
17
- throw {error: "changeAdminStatus: adminIDs must be an array or string"};
17
+ throw { error: "changeAdminStatus: adminIDs must be an array or string" };
18
18
  }
19
19
 
20
20
  if (utils.getType(adminStatus) !== "Boolean") {
21
- throw {error: "changeAdminStatus: adminStatus must be a string"};
21
+ throw { error: "changeAdminStatus: adminStatus must be a string" };
22
22
  }
23
23
 
24
- var resolveFunc = function(){};
25
- var rejectFunc = function(){};
26
- var returnPromise = new Promise(function (resolve, reject) {
24
+ var resolveFunc = function() {};
25
+ var rejectFunc = function() {};
26
+ var returnPromise = new Promise(function(resolve, reject) {
27
27
  resolveFunc = resolve;
28
28
  rejectFunc = reject;
29
29
  });
30
30
 
31
31
  if (!callback) {
32
- callback = function (err) {
32
+ callback = function(err) {
33
33
  if (err) {
34
34
  return rejectFunc(err);
35
35
  }
@@ -37,12 +37,15 @@ module.exports = function(defaultFuncs, api, ctx) {
37
37
  };
38
38
  }
39
39
 
40
- if (utils.getType(callback) !== "Function" && utils.getType(callback) !== "AsyncFunction") {
41
- throw {error: "changeAdminStatus: callback is not a function"};
40
+ if (
41
+ utils.getType(callback) !== "Function" &&
42
+ utils.getType(callback) !== "AsyncFunction"
43
+ ) {
44
+ throw { error: "changeAdminStatus: callback is not a function" };
42
45
  }
43
46
 
44
47
  let form = {
45
- "thread_fbid": threadID,
48
+ thread_fbid: threadID
46
49
  };
47
50
 
48
51
  let i = 0;
@@ -52,17 +55,31 @@ module.exports = function(defaultFuncs, api, ctx) {
52
55
  form["add"] = adminStatus;
53
56
 
54
57
  defaultFuncs
55
- .post("https://www.facebook.com/messaging/save_admins/?dpr=1", ctx.jar, form)
58
+ .post(
59
+ "https://www.facebook.com/messaging/save_admins/?dpr=1",
60
+ ctx.jar,
61
+ form
62
+ )
56
63
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
57
64
  .then(function(resData) {
58
65
  if (resData.error) {
59
66
  switch (resData.error) {
60
67
  case 1976004:
61
- throw { error: "Cannot alter admin status: you are not an admin.", rawResponse: resData };
68
+ throw {
69
+ error: "Cannot alter admin status: you are not an admin.",
70
+ rawResponse: resData
71
+ };
62
72
  case 1357031:
63
- throw { error: "Cannot alter admin status: this thread is not a group chat.", rawResponse: resData };
73
+ throw {
74
+ error:
75
+ "Cannot alter admin status: this thread is not a group chat.",
76
+ rawResponse: resData
77
+ };
64
78
  default:
65
- throw { error: "Cannot alter admin status: unknown error.", rawResponse: resData };
79
+ throw {
80
+ error: "Cannot alter admin status: unknown error.",
81
+ rawResponse: resData
82
+ };
66
83
  }
67
84
  }
68
85
 
@@ -72,8 +89,7 @@ module.exports = function(defaultFuncs, api, ctx) {
72
89
  log.error("changeAdminStatus", err);
73
90
  return callback(err);
74
91
  });
75
-
92
+
76
93
  return returnPromise;
77
94
  };
78
95
  };
79
-
@@ -3,17 +3,17 @@
3
3
  var utils = require("../utils");
4
4
  var log = require("npmlog");
5
5
 
6
- module.exports = function (defaultFuncs, api, ctx) {
6
+ module.exports = function(defaultFuncs, api, ctx) {
7
7
  return function changeArchivedStatus(threadOrThreads, archive, callback) {
8
- var resolveFunc = function () { };
9
- var rejectFunc = function () { };
10
- var 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
- callback = function (err) {
16
+ callback = function(err) {
17
17
  if (err) return rejectFunc(err);
18
18
  resolveFunc();
19
19
  };
@@ -21,17 +21,23 @@ module.exports = function (defaultFuncs, api, ctx) {
21
21
 
22
22
  var form = {};
23
23
 
24
- if (utils.getType(threadOrThreads) === "Array") for (var i = 0; i < threadOrThreads.length; i++) form["ids[" + threadOrThreads[i] + "]"] = archive;
24
+ if (utils.getType(threadOrThreads) === "Array")
25
+ for (var i = 0; i < threadOrThreads.length; i++)
26
+ form["ids[" + threadOrThreads[i] + "]"] = archive;
25
27
  else form["ids[" + threadOrThreads + "]"] = archive;
26
28
 
27
29
  defaultFuncs
28
- .post("https://www.facebook.com/ajax/mercury/change_archived_status.php", ctx.jar, form)
30
+ .post(
31
+ "https://www.facebook.com/ajax/mercury/change_archived_status.php",
32
+ ctx.jar,
33
+ form
34
+ )
29
35
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
30
- .then(function (resData) {
36
+ .then(function(resData) {
31
37
  if (resData.error) throw resData;
32
38
  return callback();
33
39
  })
34
- .catch(function (err) {
40
+ .catch(function(err) {
35
41
  log.error("changeArchivedStatus", err);
36
42
  return callback(err);
37
43
  });
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ var utils = require("../utils");
4
+ var log = require("npmlog");
5
+ /**
6
+ * It posts an image to a Facebook profile
7
+ * @param Api - The API object
8
+ * @param BotID - The ID of the bot you want to post the image to.
9
+ * @param form - The form data that you want to send.
10
+ * @returns The JSON.parse(Data.split("for (;;);")[1]); is returning the following:
11
+ * {"__ar":1,"payload":null,"jsmods":{"require":[["ImageUploader","uploadPhoto",[{"__m":"__elem_0"},{"__m":"__elem_1"},{"__m":"__elem_2"},{"__m":"__
12
+ */
13
+ async function postImage(Api, BotID, form) {
14
+ var Data = await Api.httpPostFormData(
15
+ `https://www.facebook.com/profile/picture/upload/?profile_id=${BotID}&photo_source=57&av=${BotID}`,
16
+ form
17
+ );
18
+ return JSON.parse(Data.split("for (;;);")[1]);
19
+ }
20
+
21
+ module.exports = function (defaultFuncs, api, ctx) {
22
+ /* Changing the profile picture of the bot. */
23
+ return function changeAvt(link, caption, callback) {
24
+ var resolveFunc = function () { };
25
+ var rejectFunc = function () { };
26
+ var returnPromise = new Promise(function (resolve, reject) {
27
+ resolveFunc = resolve;
28
+ rejectFunc = reject;
29
+ });
30
+
31
+ if (!callback) {
32
+ callback = function (err, data) {
33
+ if (err) return rejectFunc(err);
34
+ resolveFunc(data);
35
+ };
36
+ }
37
+ try {
38
+ var Fetch = require("axios");
39
+ Fetch.get(link, { responseType: "stream" }).then(data => {
40
+ postImage(api, ctx.userID, { file: data.data }).then(data => {
41
+ if (data.error)
42
+ throw new Error({
43
+ error: data.error,
44
+ des: data.error.errorDescription
45
+ });
46
+ var form = {
47
+ av: ctx.userID,
48
+ fb_api_req_friendly_name: "ProfileCometProfilePictureSetMutation",
49
+ fb_api_caller_class: "RelayModern",
50
+ doc_id: "5066134240065849",
51
+ variables: JSON.stringify({
52
+ input: {
53
+ caption: caption || "",
54
+ existing_photo_id: data.payload.fbid,
55
+ expiration_time: null,
56
+ profile_id: ctx.userID,
57
+ profile_pic_method: "EXISTING",
58
+ profile_pic_source: "TIMELINE",
59
+ scaled_crop_rect: {
60
+ height: 1,
61
+ width: 1,
62
+ x: 0,
63
+ y: 0
64
+ },
65
+ skip_cropping: true,
66
+ actor_id: ctx.userID,
67
+ client_mutation_id: Math.round(Math.random() * 19).toString()
68
+ },
69
+ isPage: false,
70
+ isProfile: true,
71
+ scale: 3
72
+ })
73
+ };
74
+ defaultFuncs
75
+ .post("https://www.facebook.com/api/graphql/", ctx.jar, form)
76
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
77
+ .then(function (resData) {
78
+ if (resData.error) throw resData;
79
+ else return callback(null, true);
80
+ })
81
+ .catch(function (err) {
82
+ return callback(err);
83
+ });
84
+ });
85
+ });
86
+ } catch (e) {
87
+ throw e;
88
+ }
89
+ return returnPromise;
90
+ };
91
+ };
package/src/changeBio.js CHANGED
@@ -3,19 +3,23 @@
3
3
  var utils = require("../utils");
4
4
  var log = require("npmlog");
5
5
 
6
- module.exports = function (defaultFuncs, api, ctx) {
6
+ module.exports = function(defaultFuncs, api, ctx) {
7
7
  return function changeBio(bio, publish, callback) {
8
- var resolveFunc = function () { };
9
- var rejectFunc = function () { };
10
- var 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 (utils.getType(publish) == "Function" || utils.getType(publish) == "AsyncFunction") callback = publish;
16
+ if (
17
+ utils.getType(publish) == "Function" ||
18
+ utils.getType(publish) == "AsyncFunction"
19
+ )
20
+ callback = publish;
17
21
  else {
18
- callback = function (err) {
22
+ callback = function(err) {
19
23
  if (err) return rejectFunc(err);
20
24
  resolveFunc();
21
25
  };
@@ -50,12 +54,12 @@ module.exports = function (defaultFuncs, api, ctx) {
50
54
  defaultFuncs
51
55
  .post("https://www.facebook.com/api/graphql/", ctx.jar, form)
52
56
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
53
- .then(function (resData) {
57
+ .then(function(resData) {
54
58
  if (resData.errors) throw resData;
55
59
 
56
60
  return callback();
57
61
  })
58
- .catch(function (err) {
62
+ .catch(function(err) {
59
63
  log.error("changeBio", err);
60
64
  return callback(err);
61
65
  });
@@ -3,31 +3,37 @@
3
3
  var utils = require("../utils");
4
4
  var log = require("npmlog");
5
5
 
6
- module.exports = function (defaultFuncs, api, ctx) {
6
+ module.exports = function(defaultFuncs, api, ctx) {
7
7
  return function changeBlockedStatus(userID, block, callback) {
8
- var resolveFunc = function () { };
9
- var rejectFunc = function () { };
10
- var 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
- callback = function (err) {
16
+ callback = function(err) {
17
17
  if (err) return rejectFunc(err);
18
18
  resolveFunc();
19
19
  };
20
20
  }
21
21
 
22
22
  defaultFuncs
23
- .post(`https://www.facebook.com/messaging/${block ? "" : "un"}block_messages/`, ctx.jar, { fbid: userID })
23
+ .post(
24
+ `https://www.facebook.com/messaging/${
25
+ block ? "" : "un"
26
+ }block_messages/`,
27
+ ctx.jar,
28
+ { fbid: userID }
29
+ )
24
30
  .then(utils.saveCookies(ctx.jar))
25
31
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
26
- .then(function (resData) {
32
+ .then(function(resData) {
27
33
  if (resData.error) throw resData;
28
34
  return callback();
29
35
  })
30
- .catch(function (err) {
36
+ .catch(function(err) {
31
37
  log.error("changeBlockedStatus", err);
32
38
  return callback(err);
33
39
  });
@@ -4,7 +4,7 @@ var utils = require("../utils");
4
4
  var log = require("npmlog");
5
5
  var bluebird = require("bluebird");
6
6
 
7
- module.exports = function (defaultFuncs, api, ctx) {
7
+ module.exports = function(defaultFuncs, api, ctx) {
8
8
  function handleUpload(image, callback) {
9
9
  var uploads = [];
10
10
 
@@ -15,9 +15,14 @@ module.exports = function (defaultFuncs, api, ctx) {
15
15
 
16
16
  uploads.push(
17
17
  defaultFuncs
18
- .postFormData("https://upload.facebook.com/ajax/mercury/upload.php", ctx.jar, form, {})
18
+ .postFormData(
19
+ "https://upload.facebook.com/ajax/mercury/upload.php",
20
+ ctx.jar,
21
+ form,
22
+ {}
23
+ )
19
24
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
20
- .then(function (resData) {
25
+ .then(function(resData) {
21
26
  if (resData.error) throw resData;
22
27
 
23
28
  return resData.payload.metadata[0];
@@ -28,24 +33,29 @@ module.exports = function (defaultFuncs, api, ctx) {
28
33
  bluebird
29
34
  .all(uploads)
30
35
  .then(resData => callback(null, resData))
31
- .catch(function (err) {
36
+ .catch(function(err) {
32
37
  log.error("handleUpload", err);
33
38
  return callback(err);
34
39
  });
35
40
  }
36
41
 
37
42
  return function changeGroupImage(image, threadID, callback) {
38
- if (!callback && (utils.getType(threadID) === "Function" || utils.getType(threadID) === "AsyncFunction")) throw { error: "please pass a threadID as a second argument." };
43
+ if (
44
+ !callback &&
45
+ (utils.getType(threadID) === "Function" ||
46
+ utils.getType(threadID) === "AsyncFunction")
47
+ )
48
+ throw { error: "please pass a threadID as a second argument." };
39
49
 
40
- var resolveFunc = function () { };
41
- var rejectFunc = function () { };
42
- var returnPromise = new Promise(function (resolve, reject) {
50
+ var resolveFunc = function() {};
51
+ var rejectFunc = function() {};
52
+ var returnPromise = new Promise(function(resolve, reject) {
43
53
  resolveFunc = resolve;
44
54
  rejectFunc = reject;
45
55
  });
46
56
 
47
57
  if (!callback) {
48
- callback = function (err) {
58
+ callback = function(err) {
49
59
  if (err) return rejectFunc(err);
50
60
  resolveFunc();
51
61
  };
@@ -81,21 +91,25 @@ module.exports = function (defaultFuncs, api, ctx) {
81
91
  timestamp_time_passed: "0"
82
92
  };
83
93
 
84
- handleUpload(image, function (err, payload) {
94
+ handleUpload(image, function(err, payload) {
85
95
  if (err) return callback(err);
86
96
 
87
97
  form["thread_image_id"] = payload[0]["image_id"];
88
98
  form["thread_id"] = threadID;
89
99
 
90
100
  defaultFuncs
91
- .post("https://www.facebook.com/messaging/set_thread_image/", ctx.jar, form)
101
+ .post(
102
+ "https://www.facebook.com/messaging/set_thread_image/",
103
+ ctx.jar,
104
+ form
105
+ )
92
106
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
93
- .then(function (resData) {
107
+ .then(function(resData) {
94
108
  // check for errors here
95
109
  if (resData.error) throw resData;
96
110
  return callback();
97
111
  })
98
- .catch(function (err) {
112
+ .catch(function(err) {
99
113
  log.error("changeGroupImage", err);
100
114
  return callback(err);
101
115
  });
@@ -3,16 +3,16 @@
3
3
  var utils = require("../utils");
4
4
  var log = require("npmlog");
5
5
 
6
- module.exports = function (defaultFuncs, api, ctx) {
6
+ module.exports = function(defaultFuncs, api, ctx) {
7
7
  return function changeNickname(nickname, threadID, participantID, callback) {
8
- var resolveFunc = function () { };
9
- var rejectFunc = function () { };
10
- var 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
  if (!callback) {
15
- callback = function (err) {
15
+ callback = function(err) {
16
16
  if (err) return rejectFunc(err);
17
17
  resolveFunc();
18
18
  };
@@ -25,17 +25,26 @@ module.exports = function (defaultFuncs, api, ctx) {
25
25
  };
26
26
 
27
27
  defaultFuncs
28
- .post("https://www.facebook.com/messaging/save_thread_nickname/?source=thread_settings&dpr=1", ctx.jar, form)
28
+ .post(
29
+ "https://www.facebook.com/messaging/save_thread_nickname/?source=thread_settings&dpr=1",
30
+ ctx.jar,
31
+ form
32
+ )
29
33
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
30
- .then(function (resData) {
31
- if (resData.error === 1545014) throw { error: "Trying to change nickname of user isn't in thread" };
32
- if (resData.error === 1357031) throw { error: "Trying to change user nickname of a thread that doesn't exist. Have at least one message in the thread before trying to change the user nickname." };
34
+ .then(function(resData) {
35
+ if (resData.error === 1545014)
36
+ throw { error: "Trying to change nickname of user isn't in thread" };
37
+ if (resData.error === 1357031)
38
+ throw {
39
+ error:
40
+ "Trying to change user nickname of a thread that doesn't exist. Have at least one message in the thread before trying to change the user nickname."
41
+ };
33
42
 
34
43
  if (resData.error) throw resData;
35
44
 
36
45
  return callback();
37
46
  })
38
- .catch(function (err) {
47
+ .catch(function(err) {
39
48
  log.error("changeNickname", err);
40
49
  return callback(err);
41
50
  });