shadowx-fca 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.
- package/README.md +1066 -0
- package/build/messagix.dll +0 -0
- package/build/messagix.so +0 -0
- package/checkUpdate.js +393 -0
- package/config.json +17 -0
- package/e2ee.js +563 -0
- package/e2eetest.js +356 -0
- package/index.js +611 -0
- package/lib/index.mjs +1412 -0
- package/logger.js +500 -0
- package/package.json +65 -0
- package/src/GetBotInfo.js +66 -0
- package/src/OldMessage.js +182 -0
- package/src/Screenshot.js +83 -0
- package/src/addExternalModule.js +13 -0
- package/src/addUserToGroup.js +33 -0
- package/src/approveGroupJoinRequests.js +18 -0
- package/src/changeAdminStatus.js +16 -0
- package/src/changeArchivedStatus.js +17 -0
- package/src/changeAvatar.js +136 -0
- package/src/changeAvatarV2.js +86 -0
- package/src/changeAvt.js +85 -0
- package/src/changeBio.js +76 -0
- package/src/changeBlockedStatus.js +20 -0
- package/src/changeBlockedStatusMqtt.js +80 -0
- package/src/changeCover.js +72 -0
- package/src/changeGroupImage.js +16 -0
- package/src/changeName.js +79 -0
- package/src/changeNickname.js +16 -0
- package/src/changeThreadColor.js +15 -0
- package/src/changeThreadEmoji.js +15 -0
- package/src/changeThreadMemberNickname.js +6 -0
- package/src/changeUsername.js +59 -0
- package/src/createCommentPost.js +230 -0
- package/src/createNewGroup.js +38 -0
- package/src/createNote.js +35 -0
- package/src/createPoll.js +27 -0
- package/src/createPost.js +276 -0
- package/src/createThemeAI.js +129 -0
- package/src/data/cache/system/data.json +4 -0
- package/src/data/cache/system/datahandle.js +21 -0
- package/src/data/getThreadInfo.json +1 -0
- package/src/deleteComment.js +23 -0
- package/src/deleteMessage.js +15 -0
- package/src/deleteThread.js +15 -0
- package/src/denyGroupJoinRequests.js +18 -0
- package/src/e2ee/crypto.js +173 -0
- package/src/e2ee/index.js +144 -0
- package/src/e2ee/proto/ArmadilloApplication.proto +281 -0
- package/src/e2ee/proto/ArmadilloICDC.proto +14 -0
- package/src/e2ee/proto/ConsumerApplication.proto +232 -0
- package/src/e2ee/proto/MessageApplication.proto +82 -0
- package/src/e2ee/proto/MessageTransport.proto +77 -0
- package/src/e2ee/proto/WACommon.proto +66 -0
- package/src/e2ee/proto/WAMediaTransport.proto +176 -0
- package/src/e2ee/proto/proto-writer.ts +76 -0
- package/src/e2ee/protocol.js +196 -0
- package/src/e2ee/ratchet.js +219 -0
- package/src/e2ee/store.js +182 -0
- package/src/e2ee.js +8 -0
- package/src/editMessage.js +56 -0
- package/src/editMessageOld.js +67 -0
- package/src/enableReactions.js +24 -0
- package/src/follow.js +74 -0
- package/src/followUser.js +23 -0
- package/src/forwardAttachment.js +16 -0
- package/src/friendList.js +98 -0
- package/src/getAccess.js +112 -0
- package/src/getAppState.js +13 -0
- package/src/getAvatarUser.js +11 -0
- package/src/getBio.js +24 -0
- package/src/getBotInitialData.js +42 -0
- package/src/getCtx.js +5 -0
- package/src/getCurrentUserID.js +6 -0
- package/src/getEmojiUrl.js +29 -0
- package/src/getFriendsList.js +36 -0
- package/src/getMessage.js +37 -0
- package/src/getNotes.js +17 -0
- package/src/getOptions.js +5 -0
- package/src/getPinnedMessages.js +33 -0
- package/src/getPostInfo.js +17 -0
- package/src/getProfileInfo.js +17 -0
- package/src/getPublicData.js +25 -0
- package/src/getRegion.js +7 -0
- package/src/getRepInfo.js +17 -0
- package/src/getStickerPacks.js +25 -0
- package/src/getStickers.js +39 -0
- package/src/getStoryReactions.js +18 -0
- package/src/getThreadHistory.js +45 -0
- package/src/getThreadHistoryDeprecated.js +71 -0
- package/src/getThreadInfo.js +73 -0
- package/src/getThreadInfoDeprecated.js +56 -0
- package/src/getThreadList.js +76 -0
- package/src/getThreadListDeprecated.js +46 -0
- package/src/getThreadPictures.js +59 -0
- package/src/getThreadTheme.js +77 -0
- package/src/getUID.js +17 -0
- package/src/getUserID.js +17 -0
- package/src/getUserInfo.js +28 -0
- package/src/handleFriendRequest.js +21 -0
- package/src/handleMessageRequest.js +15 -0
- package/src/httpGet.js +13 -0
- package/src/httpPost.js +12 -0
- package/src/httpPostFormData.js +12 -0
- package/src/listenE2EE.js +75 -0
- package/src/listenMqtt.js +802 -0
- package/src/listenNotification.js +85 -0
- package/src/logout.js +22 -0
- package/src/markAsDelivered.js +17 -0
- package/src/markAsRead.js +14 -0
- package/src/markAsReadAll.js +15 -0
- package/src/markAsSeen.js +15 -0
- package/src/metaTheme.js +185 -0
- package/src/muteThread.js +52 -0
- package/src/note.js +228 -0
- package/src/pin.js +53 -0
- package/src/pinMessage.js +6 -0
- package/src/postComment.js +29 -0
- package/src/postFormData.js +46 -0
- package/src/reactToComment.js +31 -0
- package/src/reactToPost.js +32 -0
- package/src/refreshFb_dtsg.js +31 -0
- package/src/removeSuspiciousAccount.js +74 -0
- package/src/removeUserFromGroup.js +15 -0
- package/src/reply.js +442 -0
- package/src/resolvePhotoUrl.js +15 -0
- package/src/searchForThread.js +20 -0
- package/src/searchFriends.js +28 -0
- package/src/searchStickers.js +53 -0
- package/src/send.js +46 -0
- package/src/sendAudio.js +8 -0
- package/src/sendBroadcast.js +93 -0
- package/src/sendButtons.js +161 -0
- package/src/sendComment.js +159 -0
- package/src/sendEmoji.js +10 -0
- package/src/sendFile.js +9 -0
- package/src/sendFriendRequest.js +33 -0
- package/src/sendGif.js +24 -0
- package/src/sendImage.js +9 -0
- package/src/sendLocation.js +9 -0
- package/src/sendMessage.js +487 -0
- package/src/sendMessage1.js +309 -0
- package/src/sendMessageMqtt.js +68 -0
- package/src/sendSticker.js +8 -0
- package/src/sendTypingIndicator.js +36 -0
- package/src/sendTypingIndicatorV2.js +28 -0
- package/src/sendVideo.js +9 -0
- package/src/sessionGuard.js +130 -0
- package/src/setActiveStatus.js +16 -0
- package/src/setMessageReaction.js +61 -0
- package/src/setMessageReactionMqtt.js +62 -0
- package/src/setOptions.js +22 -0
- package/src/setPollVote.js +17 -0
- package/src/setPostReaction.js +112 -0
- package/src/setProfileGuard.js +44 -0
- package/src/setProfileLock.js +93 -0
- package/src/setStoryReaction.js +129 -0
- package/src/setStorySeen.js +99 -0
- package/src/setThreadTheme.js +17 -0
- package/src/setTitle.js +15 -0
- package/src/shareContact.js +33 -0
- package/src/shareLink.js +8 -0
- package/src/sharePost.js +31 -0
- package/src/stopListenMqtt.js +23 -0
- package/src/storyManager.js +353 -0
- package/src/suggestFriend.js +128 -0
- package/src/threadColors.js +131 -0
- package/src/unfollowUser.js +23 -0
- package/src/unfriend.js +15 -0
- package/src/unpinMessage.js +6 -0
- package/src/unsendMessage.js +14 -0
- package/src/uploadAttachment.js +58 -0
- package/src/uploadImageToImgbb.js +29 -0
- package/utils.js +2945 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const logger = require("../logger");
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const { parseAndCheckLogin, isReadableStream, getType } = require("../utils");
|
|
6
|
+
|
|
7
|
+
const UPLOAD_URL = "https://upload.facebook.com/ajax/mercury/upload.php";
|
|
8
|
+
|
|
9
|
+
function filenameFromStream(stream) {
|
|
10
|
+
try {
|
|
11
|
+
if (stream && typeof stream.path === "string") return path.basename(stream.path);
|
|
12
|
+
if (stream && stream.path) return path.basename(stream.path.toString());
|
|
13
|
+
} catch (_) { }
|
|
14
|
+
return "upload.bin";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
function contentTypeFor(filename, stream) {
|
|
18
|
+
try {
|
|
19
|
+
if (stream && typeof stream._contentType === "string") return stream._contentType;
|
|
20
|
+
if (stream && stream.headers && typeof stream.headers["content-type"] === "string") return stream.headers["content-type"];
|
|
21
|
+
} catch (_) { }
|
|
22
|
+
try {
|
|
23
|
+
const mime = require("mime");
|
|
24
|
+
const t = mime.getType(filename);
|
|
25
|
+
if (t) return t;
|
|
26
|
+
} catch (_) { }
|
|
27
|
+
return "application/octet-stream";
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
module.exports = function (defaultFuncs, api, ctx) {
|
|
31
|
+
function uploadOne(stream) {
|
|
32
|
+
if (!isReadableStream(stream)) {
|
|
33
|
+
return Promise.reject({ error: "Attachment must be a readable stream, got: " + getType(stream) });
|
|
34
|
+
}
|
|
35
|
+
const filename = filenameFromStream(stream);
|
|
36
|
+
const contentType = contentTypeFor(filename, stream);
|
|
37
|
+
return defaultFuncs
|
|
38
|
+
.postFormData(UPLOAD_URL, ctx.jar, {
|
|
39
|
+
upload_1024: { value: stream, options: { filename, contentType } },
|
|
40
|
+
voice_clip: "true"
|
|
41
|
+
})
|
|
42
|
+
.then(parseAndCheckLogin(ctx, defaultFuncs))
|
|
43
|
+
.then(resData => {
|
|
44
|
+
if (resData.error) throw resData;
|
|
45
|
+
if (!resData.payload || !resData.payload.metadata) throw { error: "Upload returned no metadata" };
|
|
46
|
+
return resData.payload.metadata[0] || resData.payload.metadata["0"];
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return function uploadAttachment(attachments, callback) {
|
|
51
|
+
if (!Array.isArray(attachments)) attachments = [attachments];
|
|
52
|
+
const promise = Promise.all(attachments.map(uploadOne));
|
|
53
|
+
if (typeof callback === "function") {
|
|
54
|
+
promise.then(r => callback(null, r)).catch(err => { logger.error("uploadAttachment", err); callback(err); });
|
|
55
|
+
}
|
|
56
|
+
return promise;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var request = require("request");
|
|
3
|
+
var IMGBB_KEY = "3e198e6ffe205d1c7968a92fd92177c9";
|
|
4
|
+
module.exports = function (defaultFuncs, api, ctx) {
|
|
5
|
+
return function uploadImageToImgbb(image, expiration, callback) {
|
|
6
|
+
if (typeof expiration === "function") { callback = expiration; expiration = 600; }
|
|
7
|
+
expiration = expiration || 600;
|
|
8
|
+
var { promise, callback: cb } = require("../utils").wrapCallback(callback);
|
|
9
|
+
var formData = {};
|
|
10
|
+
if (Buffer.isBuffer(image)) {
|
|
11
|
+
formData.image = image.toString('base64');
|
|
12
|
+
} else if (typeof image === 'string') {
|
|
13
|
+
const dataUri = image.match(/^data:image\/[a-zA-Z]+;base64,(.+)$/);
|
|
14
|
+
formData.image = dataUri ? dataUri[1] : image.trim();
|
|
15
|
+
} else {
|
|
16
|
+
cb({ error: "Unsupported image type: must be Buffer or string (URL/base64/data-uri)" });
|
|
17
|
+
return promise;
|
|
18
|
+
}
|
|
19
|
+
request.post({ url: 'https://api.imgbb.com/1/upload', qs: { expiration, key: IMGBB_KEY }, formData }, (err, res, body) => {
|
|
20
|
+
if (err) return cb(err);
|
|
21
|
+
try {
|
|
22
|
+
const data = JSON.parse(body);
|
|
23
|
+
if (!data || !data.success) return cb(data || { error: "ImgBB upload failed" });
|
|
24
|
+
cb(null, data);
|
|
25
|
+
} catch (e) { cb(e); }
|
|
26
|
+
});
|
|
27
|
+
return promise;
|
|
28
|
+
};
|
|
29
|
+
};
|