alicezetion 1.9.1 → 1.9.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (112) hide show
  1. package/index.js +1 -1
  2. package/package.json +1 -1
  3. package/src/addExternalModule.js +19 -0
  4. package/src/addUserToGroup.js +113 -0
  5. package/src/changeAdminStatus.js +79 -0
  6. package/src/changeArchivedStatus.js +55 -0
  7. package/{leiamnash → src}/changeAvatar.js +2 -3
  8. package/src/changeBio.js +77 -0
  9. package/src/changeBlockedStatus.js +47 -0
  10. package/src/changeGroupImage.js +132 -0
  11. package/src/changeNickname.js +59 -0
  12. package/src/changeThreadColor.js +65 -0
  13. package/src/changeThreadEmoji.js +55 -0
  14. package/{leiamnash → src}/chat.js +29 -4
  15. package/src/createNewGroup.js +86 -0
  16. package/src/createPoll.js +71 -0
  17. package/src/deleteMessage.js +56 -0
  18. package/src/deleteThread.js +56 -0
  19. package/src/edit.js +66 -0
  20. package/src/forwardAttachment.js +60 -0
  21. package/src/getCurrentUserID.js +7 -0
  22. package/src/getEmojiUrl.js +29 -0
  23. package/src/getFriendsList.js +83 -0
  24. package/src/getThreadHistory.js +666 -0
  25. package/src/getThreadInfo.js +232 -0
  26. package/src/getThreadList.js +241 -0
  27. package/src/getThreadPictures.js +79 -0
  28. package/src/getUserID.js +66 -0
  29. package/src/getUserInfo.js +74 -0
  30. package/src/handleFriendRequest.js +61 -0
  31. package/src/handleMessageRequest.js +65 -0
  32. package/src/httpGet.js +57 -0
  33. package/src/httpPost.js +57 -0
  34. package/src/httpPostFormData.js +63 -0
  35. package/src/listenMqtt.js +853 -0
  36. package/src/logout.js +75 -0
  37. package/src/markAsDelivered.js +58 -0
  38. package/src/markAsRead.js +80 -0
  39. package/src/markAsReadAll.js +50 -0
  40. package/src/markAsSeen.js +59 -0
  41. package/src/muteThread.js +52 -0
  42. package/src/react.js +109 -0
  43. package/{leiamnash → src}/refreshFb_dtsg.js +1 -1
  44. package/src/removeUserFromGroup.js +79 -0
  45. package/src/resolvePhotoUrl.js +45 -0
  46. package/src/searchForThread.js +53 -0
  47. package/src/seen.js +50 -0
  48. package/src/sendMessage.js +477 -0
  49. package/src/sendTypingIndicator.js +103 -0
  50. package/src/setMessageReaction.js +121 -0
  51. package/src/setPostReaction.js +109 -0
  52. package/src/setTitle.js +86 -0
  53. package/src/threadColors.js +131 -0
  54. package/src/unfriend.js +52 -0
  55. package/src/unsendMessage.js +49 -0
  56. package/{leiamnash → src}/uploadAttachment.js +1 -2
  57. package/leiamnash/addExternalModule.js +0 -15
  58. package/leiamnash/addUserToGroup.js +0 -77
  59. package/leiamnash/changeAdminStatus.js +0 -47
  60. package/leiamnash/changeArchivedStatus.js +0 -41
  61. package/leiamnash/changeBio.js +0 -64
  62. package/leiamnash/changeBlockedStatus.js +0 -36
  63. package/leiamnash/changeGroupImage.js +0 -105
  64. package/leiamnash/changeNickname.js +0 -43
  65. package/leiamnash/changeThreadColor.js +0 -61
  66. package/leiamnash/changeThreadEmoji.js +0 -41
  67. package/leiamnash/createNewGroup.js +0 -70
  68. package/leiamnash/createPoll.js +0 -59
  69. package/leiamnash/deleteMessage.js +0 -44
  70. package/leiamnash/deleteThread.js +0 -42
  71. package/leiamnash/edit.js +0 -59
  72. package/leiamnash/forwardAttachment.js +0 -47
  73. package/leiamnash/forwardMessage.js +0 -0
  74. package/leiamnash/getCurrentUserID.js +0 -7
  75. package/leiamnash/getEmojiUrl.js +0 -27
  76. package/leiamnash/getFriendsList.js +0 -73
  77. package/leiamnash/getInfoVideo.js +0 -134
  78. package/leiamnash/getThreadHistory.js +0 -537
  79. package/leiamnash/getThreadHistoryDeprecated.js +0 -71
  80. package/leiamnash/getThreadInfo.js +0 -171
  81. package/leiamnash/getThreadInfoDeprecated.js +0 -56
  82. package/leiamnash/getThreadList.js +0 -213
  83. package/leiamnash/getThreadListDeprecated.js +0 -46
  84. package/leiamnash/getThreadPictures.js +0 -59
  85. package/leiamnash/getUserID.js +0 -61
  86. package/leiamnash/getUserInfo.js +0 -66
  87. package/leiamnash/handleFriendRequest.js +0 -46
  88. package/leiamnash/handleMessageRequest.js +0 -47
  89. package/leiamnash/httpGet.js +0 -47
  90. package/leiamnash/httpPost.js +0 -47
  91. package/leiamnash/httpPostFormData.js +0 -42
  92. package/leiamnash/listenMqtt.js +0 -853
  93. package/leiamnash/logout.js +0 -68
  94. package/leiamnash/markAsDelivered.js +0 -47
  95. package/leiamnash/markAsRead.js +0 -70
  96. package/leiamnash/markAsReadAll.js +0 -40
  97. package/leiamnash/markAsSeen.js +0 -48
  98. package/leiamnash/muteThread.js +0 -45
  99. package/leiamnash/react.js +0 -109
  100. package/leiamnash/removeUserFromGroup.js +0 -45
  101. package/leiamnash/resolvePhotoUrl.js +0 -36
  102. package/leiamnash/searchForThread.js +0 -42
  103. package/leiamnash/seen.js +0 -40
  104. package/leiamnash/sendMessage.js +0 -315
  105. package/leiamnash/sendTypingIndicator.js +0 -70
  106. package/leiamnash/setMessageReaction.js +0 -103
  107. package/leiamnash/setPostReaction.js +0 -63
  108. package/leiamnash/setTitle.js +0 -70
  109. package/leiamnash/threadColors.js +0 -41
  110. package/leiamnash/unfriend.js +0 -42
  111. package/leiamnash/unsendMessage.js +0 -39
  112. /package/{leiamnash → src}/getMessage.js +0 -0
package/leiamnash/edit.js DELETED
@@ -1,59 +0,0 @@
1
- "use_strict";
2
-
3
- const { generateOfflineThreadingID } = require('../utils');
4
-
5
- function isCallable(func) {
6
- try {
7
- Reflect.apply(func, null, []);
8
- return true;
9
- } catch (error) {
10
- return false;
11
- }
12
- }
13
-
14
- module.exports = function (defaultFuncs, api, ctx) {
15
-
16
- return function editMessage(text, messageID, callback) {
17
- if (!ctx.mqttClient) {
18
- throw new Error('Not connected to MQTT');
19
- }
20
-
21
-
22
- ctx.wsReqNumber += 1;
23
- ctx.wsTaskNumber += 1;
24
-
25
- const taskPayload = {
26
- message_id: messageID,
27
- text: text,
28
- };
29
-
30
- const task = {
31
- failure_count: null,
32
- label: '742',
33
- payload: JSON.stringify(taskPayload),
34
- queue_name: 'edit_message',
35
- task_id: ctx.wsTaskNumber,
36
- };
37
-
38
- const content = {
39
- app_id: '2220391788200892',
40
- payload: {
41
- data_trace_id: null,
42
- epoch_id: parseInt(generateOfflineThreadingID()),
43
- tasks: [],
44
- version_id: '6903494529735864',
45
- },
46
- request_id: ctx.wsReqNumber,
47
- type: 3,
48
- };
49
-
50
- content.payload.tasks.push(task);
51
- content.payload = JSON.stringify(content.payload);
52
-
53
- if (isCallable(callback)) {
54
- ctx.reqCallbacks[ctx.wsReqNumber] = callback;
55
- }
56
-
57
- ctx.mqttClient.publish('/ls_req', JSON.stringify(content), { qos: 1, retain: false });
58
- };
59
- }
@@ -1,47 +0,0 @@
1
- "use strict";
2
-
3
- var utils = require("../utils");
4
- var log = require("npmlog");
5
-
6
- module.exports = function (defaultFuncs, api, ctx) {
7
- return function forwardAttachment(attachmentID, userOrUsers, callback) {
8
- var resolveFunc = function () { };
9
- var rejectFunc = function () { };
10
- var returnPromise = new Promise(function (resolve, reject) {
11
- resolveFunc = resolve;
12
- rejectFunc = reject;
13
- });
14
- if (!callback) {
15
- callback = function (err) {
16
- if (err) return rejectFunc(err);
17
- resolveFunc();
18
- };
19
- }
20
-
21
- var form = {
22
- attachment_id: attachmentID
23
- };
24
-
25
- if (utils.getType(userOrUsers) !== "Array") userOrUsers = [userOrUsers];
26
-
27
- var timestamp = Math.floor(Date.now() / 1000);
28
-
29
- //That's good, the key of the array is really timestmap in seconds + index
30
- //Probably time when the attachment will be sent?
31
- for (var i = 0; i < userOrUsers.length; i++) form["recipient_map[" + (timestamp + i) + "]"] = userOrUsers[i];
32
-
33
- defaultFuncs
34
- .post("https://www.facebook.com/mercury/attachments/forward/", ctx.jar, form)
35
- .then(utils.parseAndCheckLogin(ctx.jar, defaultFuncs))
36
- .then(function (resData) {
37
- if (resData.error) throw resData;
38
- return callback();
39
- })
40
- .catch(function (err) {
41
- log.error("forwardAttachment", err);
42
- return callback(err);
43
- });
44
-
45
- return returnPromise;
46
- };
47
- };
File without changes
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- module.exports = function (defaultFuncs, api, ctx) {
4
- return function getCurrentUserID() {
5
- return ctx.userID;
6
- };
7
- };
@@ -1,27 +0,0 @@
1
- "use strict";
2
-
3
- const util = require("util");
4
-
5
- module.exports = function () {
6
- return function getEmojiUrl(c, size, pixelRatio) {
7
- /*
8
- Resolves Facebook Messenger emoji image asset URL for an emoji character.
9
- Supported sizes are 32, 64, and 128.
10
- Supported pixel ratios are '1.0' and '1.5' (possibly more; haven't tested)
11
- */
12
- const baseUrl = "https://static.xx.fbcdn.net/images/emoji.php/v8/z%s/%s";
13
- pixelRatio = pixelRatio || "1.0";
14
-
15
- let ending = util.format(
16
- "%s/%s/%s.png",
17
- pixelRatio,
18
- size,
19
- c.codePointAt(0).toString(16)
20
- );
21
- let base = 317426846;
22
- for (let i = 0; i < ending.length; i++) base = (base << 5) - base + ending.charCodeAt(i);
23
-
24
- let hashed = (base & 255).toString(16);
25
- return util.format(baseUrl, hashed, ending);
26
- };
27
- };
@@ -1,73 +0,0 @@
1
- "use strict";
2
-
3
- //var cheerio = require("cheerio");
4
- var utils = require("../utils");
5
- var log = require("npmlog");
6
-
7
- // [almost] copy pasted from one of FB's minified file (GenderConst)
8
- var GENDERS = {
9
- 0: "unknown",
10
- 1: "female_singular",
11
- 2: "male_singular",
12
- 3: "female_singular_guess",
13
- 4: "male_singular_guess",
14
- 5: "mixed",
15
- 6: "neuter_singular",
16
- 7: "unknown_singular",
17
- 8: "female_plural",
18
- 9: "male_plural",
19
- 10: "neuter_plural",
20
- 11: "unknown_plural"
21
- };
22
-
23
- function formatData(obj) {
24
- return Object.keys(obj).map(function (key) {
25
- var user = obj[key];
26
- return {
27
- alternateName: user.alternateName,
28
- firstName: user.firstName,
29
- gender: GENDERS[user.gender],
30
- userID: utils.formatID(user.id.toString()),
31
- isFriend: user.is_friend != null && user.is_friend ? true : false,
32
- fullName: user.name,
33
- profilePicture: user.thumbSrc,
34
- type: user.type,
35
- profileUrl: user.uri,
36
- vanity: user.vanity,
37
- isBirthday: !!user.is_birthday
38
- };
39
- });
40
- }
41
-
42
- module.exports = function (defaultFuncs, api, ctx) {
43
- return function getFriendsList(callback) {
44
- var resolveFunc = function () { };
45
- var rejectFunc = function () { };
46
- var returnPromise = new Promise(function (resolve, reject) {
47
- resolveFunc = resolve;
48
- rejectFunc = reject;
49
- });
50
-
51
- if (!callback) {
52
- callback = function (err, friendList) {
53
- if (err) return rejectFunc(err);
54
- resolveFunc(friendList);
55
- };
56
- }
57
-
58
- defaultFuncs
59
- .postFormData("https://www.facebook.com/chat/user_info_all", ctx.jar, {}, { viewer: ctx.userID })
60
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
61
- .then(function (resData) {
62
- if (!resData) throw { error: "getFriendsList returned empty object." };
63
- if (resData.error) throw resData;
64
- callback(null, formatData(resData.payload));
65
- })
66
- .catch(function (err) {
67
- log.error("getFriendsList", err);
68
- return callback(err);
69
- });
70
-
71
- return returnPromise;
72
- };
73
- };
@@ -1,134 +0,0 @@
1
- "use strict";
2
-
3
- var utils = require("../utils");
4
- var log = require("npmlog");
5
-
6
- module.exports = function (defaultFuncs, api, ctx) {
7
- async function downloadStory(url, callback) {
8
- var resolveFunc = function () { };
9
- var rejectFunc = function () { };
10
- var returnPromise = new Promise(function (resolve, reject) {
11
- resolveFunc = resolve;
12
- rejectFunc = reject;
13
- });
14
- if (!callback) {
15
- callback = function (err, data) {
16
- if (err) return rejectFunc(err);
17
- resolveFunc(data);
18
- };
19
- }
20
- var form = {
21
- av: ctx.userID,
22
- fb_api_caller_class: "RelayModern",
23
- fb_api_req_friendly_name: "StoriesViewerBucketPrefetcherMultiBucketsQuery",
24
- doc_id: "2913003758722672",
25
- variables: JSON.stringify({
26
- "bucketIDs": url.split('/')[4],
27
- "scale": 1,
28
- "prefetchPhotoUri":false
29
- })
30
- };
31
- defaultFuncs.post("https://www.facebook.com/api/graphql/", ctx.jar, form)
32
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
33
- .then(function (resData) {
34
- if (resData.errors) throw resData;
35
- if(resData.error) return callback("Không thể tìm kiếm video này");
36
- var data = resData.data.nodes[0].unified_stories.edges
37
- var str = data.find(i => i.node.id == url.split('/')[5]);
38
- console.log()
39
- if(str == null) return callback('Không thể tìm kiếm video này');
40
- return callback(null, {
41
- author: {
42
- type: resData.data.nodes[0].story_bucket_owner.__typename,
43
- name: resData.data.nodes[0].story_bucket_owner.name,
44
- uid: resData.data.nodes[0].story_bucket_owner.id,
45
- urlProfile: resData.data.nodes[0].story_bucket_owner.url
46
- },
47
- id: str.node.id,
48
- metadata: {
49
- count_react: str.node.story_card_info.feedback_summary.total_reaction_count
50
- },
51
- dataVideo: str.node.attachments[0].media
52
- });
53
- })
54
- return returnPromise
55
- }
56
- return async function getInfoVideo(videoURL, callback) {
57
- var resolveFunc = function () { };
58
- var rejectFunc = function () { };
59
- var returnPromise = new Promise(function (resolve, reject) {
60
- resolveFunc = resolve;
61
- rejectFunc = reject;
62
- });
63
-
64
- if (!callback) {
65
- callback = function (err, data) {
66
- if (err) return rejectFunc(err);
67
- resolveFunc(data);
68
- };
69
- }
70
- if(videoURL.indexOf('stories') !== -1) return await downloadStory(videoURL);
71
- videoURL = videoURL.match(/\/(?:videos|reel|watch)(?:\/?)(?:\?v=)?(\d+)/);
72
- if (videoURL.length < 2) {
73
- return callback(new Error("Invalid video URL"));
74
- }
75
- var form = {
76
- av: ctx.userID,
77
- server_timestamps: true,
78
- doc_id: "5279476072161634",
79
- variables: JSON.stringify({
80
- UFI2CommentsProvider_commentsKey: 'CometTahoeSidePaneQuery',
81
- caller: 'CHANNEL_VIEW_FROM_PAGE_TIMELINE',
82
- displayCommentsContextEnableComment: null,
83
- displayCommentsContextIsAdPreview: null,
84
- displayCommentsContextIsAggregatedShare: null,
85
- displayCommentsContextIsStorySet: null,
86
- displayCommentsFeedbackContext: null,
87
- feedbackSource: 41,
88
- feedLocation: 'TAHOE',
89
- focusCommentID: null,
90
- privacySelectorRenderLocation: 'COMET_STREAM',
91
- renderLocation: 'video_channel',
92
- scale: 1,
93
- streamChainingSection: false,
94
- useDefaultActor: false,
95
- videoChainingContext: null,
96
- videoID: videoURL[1],
97
- })
98
- };
99
- defaultFuncs
100
- .post("https://www.facebook.com/api/graphql/", ctx.jar, form)
101
- .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
102
- .then(function (resData) {
103
- if (resData.errors) throw resData;
104
- let a = resData[0];
105
- let b = resData[12];
106
- if(a.data.video == null) return callback('URL không hợp lệ');
107
- resData = {
108
- url: a.data.video.url || null,
109
- id: a.data.video.videoId || null,
110
- title: (b.data.tahoe_sidepane_renderer.video.creation_story.comet_sections.message != null) ? b.data.tahoe_sidepane_renderer.video.creation_story.comet_sections.message.story.message.text : 'Không có tiêu đề',
111
- playable_duration_in_ms: a.data.video.playable_duration_in_ms || null,
112
- author: {
113
- type: b.data.tahoe_sidepane_renderer.video.owner.__typename || null,
114
- id: b.data.tahoe_sidepane_renderer.video.owner.id || null,
115
- name: b.data.tahoe_sidepane_renderer.video.owner.name || null
116
- },
117
- metadata: {
118
- count_react: b.data.tahoe_sidepane_renderer.video.feedback.reaction_count.count || null,
119
- count_share: b.data.tahoe_sidepane_renderer.video.feedback.share_count.count || null,
120
- count_comment: b.data.tahoe_sidepane_renderer.video.feedback.comment_count.total_count || null
121
- },
122
- downloadVideo: {
123
- SD: a.data.video.playable_url || null,
124
- HD: a.data.video.playable_url_quality_hd || null
125
- }
126
- }
127
- callback(null, resData);
128
- })
129
- .catch(function (err) {
130
- callback(err);
131
- });
132
- return returnPromise;
133
- }
134
- }