@vangbanlanhat/fca-unofficial 1.4.2
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.
- package/.gitattributes +2 -0
- package/.github/workflows/nodejs.yml +26 -0
- package/.github/workflows/npmpublish.yml +30 -0
- package/.travis.yml +6 -0
- package/CHANGELOG.md +2 -0
- package/DOCS.md +1932 -0
- package/LICENSE-MIT +21 -0
- package/README.md +198 -0
- package/jest.config.js +10 -0
- package/package.json +86 -0
- package/pnpm-workspace.yaml +3 -0
- package/src/actions/addExternalModule.js +34 -0
- package/src/actions/addUserToGroup.js +113 -0
- package/src/actions/changeAdminStatus.js +79 -0
- package/src/actions/changeArchivedStatus.js +55 -0
- package/src/actions/changeBio.js +77 -0
- package/src/actions/changeBlockedStatus.js +47 -0
- package/src/actions/changeGroupImage.js +129 -0
- package/src/actions/changeNickname.js +59 -0
- package/src/actions/changeThreadColor.js +71 -0
- package/src/actions/changeThreadEmoji.js +55 -0
- package/src/actions/createNewGroup.js +86 -0
- package/src/actions/createPoll.js +71 -0
- package/src/actions/deleteMessage.js +56 -0
- package/src/actions/deleteThread.js +56 -0
- package/src/actions/editMessage.js +81 -0
- package/src/actions/forwardAttachment.js +60 -0
- package/src/actions/getAvatarUser.js +77 -0
- package/src/actions/getCurrentUserID.js +11 -0
- package/src/actions/getEmojiUrl.js +37 -0
- package/src/actions/getFriendsList.js +84 -0
- package/src/actions/getMessage.js +833 -0
- package/src/actions/getRegion.js +11 -0
- package/src/actions/getThreadHistory.js +702 -0
- package/src/actions/getThreadHistoryDeprecated.js +93 -0
- package/src/actions/getThreadInfo.js +265 -0
- package/src/actions/getThreadInfoDeprecated.js +80 -0
- package/src/actions/getThreadList.js +274 -0
- package/src/actions/getThreadListDeprecated.js +91 -0
- package/src/actions/getThreadPictures.js +79 -0
- package/src/actions/getUserID.js +66 -0
- package/src/actions/getUserInfo.js +92 -0
- package/src/actions/handleFriendRequest.js +61 -0
- package/src/actions/handleMessageRequest.js +65 -0
- package/src/actions/httpGet.js +70 -0
- package/src/actions/httpPost.js +70 -0
- package/src/actions/index.js +69 -0
- package/src/actions/listenMqtt.js +818 -0
- package/src/actions/logout.js +136 -0
- package/src/actions/markAsDelivered.js +58 -0
- package/src/actions/markAsRead.js +92 -0
- package/src/actions/markAsReadAll.js +50 -0
- package/src/actions/markAsSeen.js +59 -0
- package/src/actions/muteThread.js +52 -0
- package/src/actions/pinMessage.js +86 -0
- package/src/actions/refreshFb_dtsg.js +89 -0
- package/src/actions/removeUserFromGroup.js +79 -0
- package/src/actions/resolvePhotoUrl.js +45 -0
- package/src/actions/searchForThread.js +53 -0
- package/src/actions/searchStickers.js +53 -0
- package/src/actions/sendMessage.js +490 -0
- package/src/actions/sendMessageMqtt.js +235 -0
- package/src/actions/sendTypingIndicator.js +59 -0
- package/src/actions/setMessageReaction.js +140 -0
- package/src/actions/setMessageReactionMqtt.js +72 -0
- package/src/actions/setPostReaction.js +76 -0
- package/src/actions/setTitle.js +86 -0
- package/src/actions/stopListenMqtt.js +63 -0
- package/src/actions/threadColors.js +57 -0
- package/src/actions/unfriend.js +52 -0
- package/src/actions/unsendMessage.js +61 -0
- package/src/index.js +659 -0
- package/src/service/uploadAttachment.js +318 -0
- package/src/utils/base-parts/auth.js +286 -0
- package/src/utils/base-parts/formatters.js +751 -0
- package/src/utils/base-parts/identity.js +169 -0
- package/src/utils/base-parts/network.js +159 -0
- package/src/utils/base-parts/parsing.js +53 -0
- package/src/utils/base-parts/type.js +9 -0
- package/src/utils/base.js +18 -0
- package/src/utils/defaults.js +10 -0
- package/src/utils/format-attachments.js +7 -0
- package/src/utils/format-core.js +8 -0
- package/src/utils/format-events.js +11 -0
- package/src/utils/format-messages.js +10 -0
- package/src/utils/format-presence.js +9 -0
- package/src/utils/format-threads.js +8 -0
- package/src/utils/formatters.js +18 -0
- package/src/utils/identity.js +12 -0
- package/src/utils/index.js +15 -0
- package/src/utils/network.js +12 -0
- package/src/utils/parsing.js +11 -0
- package/src/utils.js +3 -0
- package/test/config.env.example +30 -0
- package/test/data/shareAttach.js +146 -0
- package/test/data/something.mov +0 -0
- package/test/data/test.png +0 -0
- package/test/data/test.txt +7 -0
- package/test/example-appstate.txt +11 -0
- package/test/integration/actions.appstate.integration.test.js +233 -0
- package/test/integration/api.integration.test.js +387 -0
- package/test/integration/env-test-config.js +46 -0
- package/test/integration/login.appstate.integration.test.js +47 -0
- package/test/integration/page.integration.test.js +139 -0
- package/test/jest.setup.js +54 -0
- package/test/unit/actions/actions.basic.test.js +116 -0
- package/test/unit/actions/actions.registry.test.js +36 -0
- package/test/unit/index/index.test.js +109 -0
- package/test/unit/utils/base-parts/auth.test.js +92 -0
- package/test/unit/utils/base-parts/formatters.test.js +53 -0
- package/test/unit/utils/base-parts/identity.test.js +43 -0
- package/test/unit/utils/base-parts/parsing.test.js +38 -0
- package/test/unit/utils/base-parts/type.test.js +23 -0
- package/test/unit/utils/base.test.js +35 -0
- package/vangbanlanhat-fca-unofficial-1.4.2.tgz +0 -0
|
@@ -0,0 +1,65 @@
|
|
|
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 handleMessageRequest(threadID, accept, callback) {
|
|
8
|
+
if (utils.getType(accept) !== "Boolean") {
|
|
9
|
+
throw {
|
|
10
|
+
error: "Please pass a boolean as a second argument."
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
var resolveFunc = function(){};
|
|
15
|
+
var rejectFunc = function(){};
|
|
16
|
+
var returnPromise = new Promise(function (resolve, reject) {
|
|
17
|
+
resolveFunc = resolve;
|
|
18
|
+
rejectFunc = reject;
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
if (!callback) {
|
|
22
|
+
callback = function (err, friendList) {
|
|
23
|
+
if (err) {
|
|
24
|
+
return rejectFunc(err);
|
|
25
|
+
}
|
|
26
|
+
resolveFunc(friendList);
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
var form = {
|
|
31
|
+
client: "mercury"
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
if (utils.getType(threadID) !== "Array") {
|
|
35
|
+
threadID = [threadID];
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
var messageBox = accept ? "inbox" : "other";
|
|
39
|
+
|
|
40
|
+
for (var i = 0; i < threadID.length; i++) {
|
|
41
|
+
form[messageBox + "[" + i + "]"] = threadID[i];
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
defaultFuncs
|
|
45
|
+
.post(
|
|
46
|
+
"https://www.facebook.com/ajax/mercury/move_thread.php",
|
|
47
|
+
ctx.jar,
|
|
48
|
+
form
|
|
49
|
+
)
|
|
50
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
|
51
|
+
.then(function(resData) {
|
|
52
|
+
if (resData.error) {
|
|
53
|
+
throw resData;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return callback();
|
|
57
|
+
})
|
|
58
|
+
.catch(function(err) {
|
|
59
|
+
log.error("handleMessageRequest", err);
|
|
60
|
+
return callback(err);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
return returnPromise;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
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 httpGet(url, form, customHeader, callback, notAPI) {
|
|
8
|
+
var resolveFunc = function(){};
|
|
9
|
+
var rejectFunc = function(){};
|
|
10
|
+
|
|
11
|
+
var returnPromise = new Promise(function (resolve, reject) {
|
|
12
|
+
resolveFunc = resolve;
|
|
13
|
+
rejectFunc = reject;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
if (utils.getType(form) == "Function" || utils.getType(form) == "AsyncFunction") {
|
|
17
|
+
callback = form;
|
|
18
|
+
form = {};
|
|
19
|
+
customHeader = {};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (utils.getType(customHeader) == "Function" || utils.getType(customHeader) == "AsyncFunction") {
|
|
23
|
+
callback = customHeader;
|
|
24
|
+
customHeader = {};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (utils.getType(customHeader) == "Boolean" && typeof callback === "undefined") {
|
|
28
|
+
notAPI = customHeader;
|
|
29
|
+
customHeader = {};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (utils.getType(callback) == "Boolean" && typeof notAPI === "undefined") {
|
|
33
|
+
notAPI = callback;
|
|
34
|
+
callback = undefined;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
form = form || {};
|
|
38
|
+
customHeader = customHeader || {};
|
|
39
|
+
notAPI = Boolean(notAPI);
|
|
40
|
+
|
|
41
|
+
callback = callback || function(err, data) {
|
|
42
|
+
if (err) return rejectFunc(err);
|
|
43
|
+
resolveFunc(data);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
if (notAPI) {
|
|
47
|
+
utils
|
|
48
|
+
.get(url, ctx.jar, form, ctx.globalOptions, ctx, customHeader)
|
|
49
|
+
.then(function(resData) {
|
|
50
|
+
callback(null, resData.body.toString());
|
|
51
|
+
})
|
|
52
|
+
.catch(function(err) {
|
|
53
|
+
log.error("httpGet", err);
|
|
54
|
+
return callback(err);
|
|
55
|
+
});
|
|
56
|
+
} else {
|
|
57
|
+
defaultFuncs
|
|
58
|
+
.get(url, ctx.jar, form, null, customHeader)
|
|
59
|
+
.then(function(resData) {
|
|
60
|
+
callback(null, resData.body.toString());
|
|
61
|
+
})
|
|
62
|
+
.catch(function(err) {
|
|
63
|
+
log.error("httpGet", err);
|
|
64
|
+
return callback(err);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return returnPromise;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
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 httpPost(url, form, customHeader, callback, notAPI) {
|
|
8
|
+
var resolveFunc = function(){};
|
|
9
|
+
var rejectFunc = function(){};
|
|
10
|
+
|
|
11
|
+
var returnPromise = new Promise(function (resolve, reject) {
|
|
12
|
+
resolveFunc = resolve;
|
|
13
|
+
rejectFunc = reject;
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
if (utils.getType(form) == "Function" || utils.getType(form) == "AsyncFunction") {
|
|
17
|
+
callback = form;
|
|
18
|
+
form = {};
|
|
19
|
+
customHeader = {};
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (utils.getType(customHeader) == "Function" || utils.getType(customHeader) == "AsyncFunction") {
|
|
23
|
+
callback = customHeader;
|
|
24
|
+
customHeader = {};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (utils.getType(customHeader) == "Boolean" && typeof callback === "undefined") {
|
|
28
|
+
notAPI = customHeader;
|
|
29
|
+
customHeader = {};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (utils.getType(callback) == "Boolean" && typeof notAPI === "undefined") {
|
|
33
|
+
notAPI = callback;
|
|
34
|
+
callback = undefined;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
form = form || {};
|
|
38
|
+
customHeader = customHeader || {};
|
|
39
|
+
notAPI = Boolean(notAPI);
|
|
40
|
+
|
|
41
|
+
callback = callback || function(err, data) {
|
|
42
|
+
if (err) return rejectFunc(err);
|
|
43
|
+
resolveFunc(data);
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
if (notAPI) {
|
|
47
|
+
utils
|
|
48
|
+
.post(url, ctx.jar, form, ctx.globalOptions, ctx, customHeader)
|
|
49
|
+
.then(function(resData) {
|
|
50
|
+
callback(null, resData.body.toString());
|
|
51
|
+
})
|
|
52
|
+
.catch(function(err) {
|
|
53
|
+
log.error("httpPost", err);
|
|
54
|
+
return callback(err);
|
|
55
|
+
});
|
|
56
|
+
} else {
|
|
57
|
+
defaultFuncs
|
|
58
|
+
.post(url, ctx.jar, form, null, customHeader)
|
|
59
|
+
.then(function(resData) {
|
|
60
|
+
callback(null, resData.body.toString());
|
|
61
|
+
})
|
|
62
|
+
.catch(function(err) {
|
|
63
|
+
log.error("httpPost", err);
|
|
64
|
+
return callback(err);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return returnPromise;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var actionNames = [
|
|
4
|
+
"addExternalModule",
|
|
5
|
+
"addUserToGroup",
|
|
6
|
+
"changeAdminStatus",
|
|
7
|
+
"changeArchivedStatus",
|
|
8
|
+
"changeBio",
|
|
9
|
+
"changeBlockedStatus",
|
|
10
|
+
"changeGroupImage",
|
|
11
|
+
"changeNickname",
|
|
12
|
+
"changeThreadColor",
|
|
13
|
+
"changeThreadEmoji",
|
|
14
|
+
|
|
15
|
+
"createNewGroup",
|
|
16
|
+
"createPoll",
|
|
17
|
+
"deleteMessage",
|
|
18
|
+
"deleteThread",
|
|
19
|
+
"editMessage",
|
|
20
|
+
"forwardAttachment",
|
|
21
|
+
"getAvatarUser",
|
|
22
|
+
"getCurrentUserID",
|
|
23
|
+
|
|
24
|
+
"getEmojiUrl",
|
|
25
|
+
"getFriendsList",
|
|
26
|
+
"getMessage",
|
|
27
|
+
"getRegion",
|
|
28
|
+
"getThreadHistory",
|
|
29
|
+
"getThreadInfo",
|
|
30
|
+
"getThreadList",
|
|
31
|
+
"getThreadPictures",
|
|
32
|
+
"getUserID",
|
|
33
|
+
"getUserInfo",
|
|
34
|
+
"handleMessageRequest",
|
|
35
|
+
"listenMqtt",
|
|
36
|
+
"logout",
|
|
37
|
+
"markAsDelivered",
|
|
38
|
+
"markAsRead",
|
|
39
|
+
"markAsReadAll",
|
|
40
|
+
"markAsSeen",
|
|
41
|
+
"muteThread",
|
|
42
|
+
"pinMessage",
|
|
43
|
+
"refreshFb_dtsg",
|
|
44
|
+
"removeUserFromGroup",
|
|
45
|
+
"resolvePhotoUrl",
|
|
46
|
+
"searchForThread",
|
|
47
|
+
"searchStickers",
|
|
48
|
+
"sendMessage",
|
|
49
|
+
"sendMessageMqtt",
|
|
50
|
+
"sendTypingIndicator",
|
|
51
|
+
// "sendTypingIndicatorMqtt",
|
|
52
|
+
"setMessageReaction",
|
|
53
|
+
"setMessageReactionMqtt",
|
|
54
|
+
"setTitle",
|
|
55
|
+
"stopListenMqtt",
|
|
56
|
+
"threadColors",
|
|
57
|
+
|
|
58
|
+
"unsendMessage",
|
|
59
|
+
"httpGet",
|
|
60
|
+
"httpPost",
|
|
61
|
+
"getThreadListDeprecated",
|
|
62
|
+
"getThreadHistoryDeprecated",
|
|
63
|
+
"getThreadInfoDeprecated"
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
module.exports = actionNames.reduce(function (acc, name) {
|
|
67
|
+
acc[name] = require("./" + name + ".js");
|
|
68
|
+
return acc;
|
|
69
|
+
}, {});
|