@cexy/hoonfca 1.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 (84) hide show
  1. package/README.md +83 -0
  2. package/index.js +467 -0
  3. package/package.json +12 -0
  4. package/replit.nix +3 -0
  5. package/src/addExternalModule.js +25 -0
  6. package/src/addUserToGroup.js +98 -0
  7. package/src/changeAdminStatus.js +98 -0
  8. package/src/changeArchivedStatus.js +51 -0
  9. package/src/changeAvatar.js +89 -0
  10. package/src/changeBio.js +74 -0
  11. package/src/changeBlockedStatus.js +45 -0
  12. package/src/changeBlockedStatusMqtt.js +65 -0
  13. package/src/changeCover.js +92 -0
  14. package/src/changeGroupImage.js +110 -0
  15. package/src/changeName.js +106 -0
  16. package/src/changeNickname.js +58 -0
  17. package/src/changeThreadColor.js +62 -0
  18. package/src/changeThreadEmoji.js +54 -0
  19. package/src/changeUsername.js +80 -0
  20. package/src/createCommentPost.js +196 -0
  21. package/src/createNewGroup.js +81 -0
  22. package/src/createPoll.js +64 -0
  23. package/src/createPost.js +285 -0
  24. package/src/data/getThreadInfo.json +1 -0
  25. package/src/deleteMessage.js +55 -0
  26. package/src/deleteThread.js +55 -0
  27. package/src/editMessage.js +66 -0
  28. package/src/follow.js +71 -0
  29. package/src/forwardAttachment.js +57 -0
  30. package/src/getAccess.js +130 -0
  31. package/src/getAvatarUser.js +88 -0
  32. package/src/getBotInitialData.js +59 -0
  33. package/src/getCtx.js +5 -0
  34. package/src/getCurrentUserID.js +5 -0
  35. package/src/getEmojiUrl.js +18 -0
  36. package/src/getFriendsList.js +81 -0
  37. package/src/getMessage.js +827 -0
  38. package/src/getOptions.js +5 -0
  39. package/src/getRegion.js +7 -0
  40. package/src/getThreadHistory.js +496 -0
  41. package/src/getThreadHistoryDeprecated.js +95 -0
  42. package/src/getThreadInfo.js +194 -0
  43. package/src/getThreadInfoDeprecated.js +77 -0
  44. package/src/getThreadList.js +219 -0
  45. package/src/getThreadListDeprecated.js +86 -0
  46. package/src/getThreadPictures.js +85 -0
  47. package/src/getUserID.js +67 -0
  48. package/src/getUserInfo.js +89 -0
  49. package/src/handleFriendRequest.js +56 -0
  50. package/src/handleMessageRequest.js +65 -0
  51. package/src/httpGet.js +53 -0
  52. package/src/httpPost.js +53 -0
  53. package/src/httpPostFormData.js +58 -0
  54. package/src/listenMqtt.js +683 -0
  55. package/src/listenNotification.js +96 -0
  56. package/src/logout.js +77 -0
  57. package/src/markAsDelivered.js +53 -0
  58. package/src/markAsRead.js +74 -0
  59. package/src/markAsReadAll.js +46 -0
  60. package/src/markAsSeen.js +57 -0
  61. package/src/muteThread.js +49 -0
  62. package/src/pinMessage.js +60 -0
  63. package/src/refreshFb_dtsg.js +75 -0
  64. package/src/removeUserFromGroup.js +59 -0
  65. package/src/resolvePhotoUrl.js +47 -0
  66. package/src/searchForThread.js +55 -0
  67. package/src/searchStickers.js +59 -0
  68. package/src/sendMessage.js +444 -0
  69. package/src/sendMessageMqtt.js +326 -0
  70. package/src/sendTypingIndicator.js +54 -0
  71. package/src/setMessageReaction.js +126 -0
  72. package/src/setMessageReactionMqtt.js +74 -0
  73. package/src/setPostReaction.js +103 -0
  74. package/src/setProfileGuard.js +66 -0
  75. package/src/setStoryReaction.js +97 -0
  76. package/src/setTitle.js +100 -0
  77. package/src/shareContact.js +101 -0
  78. package/src/shareLink.js +105 -0
  79. package/src/stopListenMqtt.js +47 -0
  80. package/src/threadColors.js +119 -0
  81. package/src/unfriend.js +58 -0
  82. package/src/unsendMessage.js +51 -0
  83. package/src/uploadAttachment.js +98 -0
  84. package/utils.js +919 -0
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ const utils = require("../utils");
4
+
5
+ module.exports = function (defaultFuncs, api, ctx) {
6
+ return function unsendMessage(messageID, callback) {
7
+ let resolveFunc = function () {};
8
+ let rejectFunc = function () {};
9
+ const returnPromise = new Promise(function (resolve, reject) {
10
+ resolveFunc = resolve;
11
+ rejectFunc = reject;
12
+ });
13
+
14
+ if (!callback) {
15
+ callback = function (err, data) {
16
+ if (err) {
17
+ return rejectFunc(err);
18
+ }
19
+ resolveFunc(data);
20
+ };
21
+ }
22
+
23
+ if (!messageID) {
24
+ return callback({ error: "unsendMessage: messageID is required." });
25
+ }
26
+
27
+ const form = {
28
+ message_id: messageID.toString(),
29
+ };
30
+
31
+ defaultFuncs
32
+ .post("https://www.facebook.com/messaging/unsend_message/", ctx.jar, form)
33
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
34
+ .then(function (resData) {
35
+ if (!resData) {
36
+ throw { error: "unsendMessage returned empty response." };
37
+ }
38
+ if (resData.error) {
39
+ throw resData;
40
+ }
41
+
42
+ return callback(null, resData);
43
+ })
44
+ .catch(function (err) {
45
+ utils.error("unsendMessage", err);
46
+ return callback(err);
47
+ });
48
+
49
+ return returnPromise;
50
+ };
51
+ };
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+
3
+ const utils = require("../utils");
4
+ // @NethWs3Dev
5
+
6
+ module.exports = function (defaultFuncs, api, ctx) {
7
+ function upload(attachments, callback) {
8
+ callback = callback || function () {};
9
+ const uploads = [];
10
+
11
+ // create an array of promises
12
+ for (let i = 0; i < attachments.length; i++) {
13
+ if (!utils.isReadableStream(attachments[i])) {
14
+ // Use a standard microtask delay or immediate callback instead of throwing synchronously
15
+ const errorMsg = "Attachment should be a readable stream and not " + utils.getType(attachments[i]) + ".";
16
+ return callback({ error: errorMsg });
17
+ }
18
+
19
+ const form = {
20
+ upload_1024: attachments[i],
21
+ voice_clip: "true",
22
+ };
23
+
24
+ uploads.push(
25
+ defaultFuncs
26
+ .postFormData(
27
+ "https://upload.facebook.com/ajax/mercury/upload.php",
28
+ ctx.jar,
29
+ form,
30
+ {},
31
+ )
32
+ .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
33
+ .then(function (resData) {
34
+ if (!resData) {
35
+ throw { error: "Upload returned empty response." };
36
+ }
37
+ if (resData.error) {
38
+ throw resData;
39
+ }
40
+
41
+ // We have to return the data unformatted unless we want to change it
42
+ // back in sendMessage.
43
+ return resData.payload.metadata[0];
44
+ }),
45
+ );
46
+ }
47
+
48
+ // resolve all promises
49
+ Promise.all(uploads)
50
+ .then(function (resData) {
51
+ callback(null, resData);
52
+ })
53
+ .catch(function (err) {
54
+ utils.error("uploadAttachment", err);
55
+ return callback(err);
56
+ });
57
+ }
58
+
59
+ return function uploadAttachment(attachments, callback) {
60
+ let resolveFunc = function () {};
61
+ let rejectFunc = function () {};
62
+ const returnPromise = new Promise(function (resolve, reject) {
63
+ resolveFunc = resolve;
64
+ rejectFunc = reject;
65
+ });
66
+
67
+ if (!callback) {
68
+ callback = function (err, info) {
69
+ if (err) {
70
+ return rejectFunc(err);
71
+ }
72
+ resolveFunc(info);
73
+ };
74
+ }
75
+
76
+ // safe input checking
77
+ const isStream = utils.isReadableStream(attachments);
78
+ const isArray = utils.getType(attachments) === "Array";
79
+
80
+ if (!attachments || (!isStream && !isArray) || (isArray && attachments.length === 0)) {
81
+ return callback({ error: "Please pass an attachment or an array of attachments." });
82
+ }
83
+
84
+ let normalizedAttachments = attachments;
85
+ if (!isArray) {
86
+ normalizedAttachments = [attachments];
87
+ }
88
+
89
+ upload(normalizedAttachments, (err, info) => {
90
+ if (err) {
91
+ return callback(err);
92
+ }
93
+ callback(null, info);
94
+ });
95
+
96
+ return returnPromise;
97
+ };
98
+ };