fca-jaan 1.3.8 → 1.3.10
Sign up to get free protection for your applications and to get access to all the features.
- package/index.js +18 -4
- package/package.json +6 -4
- package/src/Premium.js +30 -0
- package/src/Screenshot.js +85 -0
- package/src/addExternalModule.js +16 -16
- package/src/addUserToGroup.js +79 -78
- package/src/changeAdminStatus.js +79 -78
- package/src/changeArchivedStatus.js +41 -41
- package/src/changeAvt.js +85 -0
- package/src/changeBio.js +65 -65
- package/src/changeBlockedStatus.js +36 -36
- package/src/changeGroupImage.js +106 -106
- package/src/changeNickname.js +45 -45
- package/src/changeThreadColor.js +62 -62
- package/src/changeThreadEmoji.js +42 -42
- package/src/createNewGroup.js +70 -70
- package/src/createPoll.js +60 -60
- package/src/deleteMessage.js +45 -45
- package/src/deleteThread.js +43 -43
- package/src/forwardAttachment.js +48 -48
- package/src/getAccessToken.js +32 -0
- package/src/getCurrentUserID.js +7 -7
- package/src/getEmojiUrl.js +27 -27
- package/src/getFriendsList.js +73 -73
- package/src/getMessage.js +80 -0
- package/src/getThreadHistory.js +537 -537
- package/src/getThreadInfo.js +347 -205
- package/src/getThreadList.js +213 -213
- package/src/getThreadMain.js +220 -0
- package/src/getThreadPictures.js +59 -59
- package/src/getUID.js +59 -0
- package/src/getUserID.js +62 -62
- package/src/getUserInfo.js +129 -66
- package/src/getUserInfoMain.js +65 -0
- package/src/getUserInfoV2.js +3 -2
- package/src/getUserInfoV3.js +63 -0
- package/src/getUserInfoV4.js +55 -0
- package/src/getUserInfoV5.js +61 -0
- package/src/handleFriendRequest.js +46 -49
- package/src/handleMessageRequest.js +49 -49
- package/src/httpGet.js +49 -49
- package/src/httpPost.js +48 -48
- package/src/httpPostFormData.js +40 -40
- package/src/listenMqtt.js +701 -627
- package/src/logout.js +68 -68
- package/src/markAsDelivered.js +48 -48
- package/src/markAsRead.js +70 -70
- package/src/markAsReadAll.js +42 -42
- package/src/markAsSeen.js +51 -51
- package/src/muteThread.js +47 -47
- package/src/removeUserFromGroup.js +49 -49
- package/src/resolvePhotoUrl.js +37 -37
- package/src/searchForThread.js +43 -43
- package/src/sendMessage.js +334 -334
- package/src/sendTypingIndicator.js +80 -80
- package/src/setMessageReaction.js +109 -109
- package/src/setPostReaction.js +101 -101
- package/src/setTitle.js +74 -74
- package/src/threadColors.js +38 -38
- package/src/unfriend.js +43 -43
- package/src/unsendMessage.js +40 -40
- package/src/getThreadHistoryDeprecated.js +0 -71
- package/src/getThreadInfoDeprecated.js +0 -56
- package/src/getThreadListDeprecated.js +0 -46
package/index.js
CHANGED
@@ -160,6 +160,7 @@ function buildAPI(globalOptions, html, jar) {
|
|
160
160
|
'addUserToGroup',
|
161
161
|
'changeAdminStatus',
|
162
162
|
'changeArchivedStatus',
|
163
|
+
'changeAvt',
|
163
164
|
'changeBio',
|
164
165
|
'changeBlockedStatus',
|
165
166
|
'changeGroupImage',
|
@@ -171,15 +172,25 @@ function buildAPI(globalOptions, html, jar) {
|
|
171
172
|
'deleteMessage',
|
172
173
|
'deleteThread',
|
173
174
|
'forwardAttachment',
|
175
|
+
'getAccessToken',
|
174
176
|
'getCurrentUserID',
|
175
177
|
'getEmojiUrl',
|
176
178
|
'getFriendsList',
|
179
|
+
'getMessage',
|
177
180
|
'getThreadHistory',
|
178
181
|
'getThreadInfo',
|
179
182
|
'getThreadList',
|
183
|
+
'getThreadMain',
|
180
184
|
'getThreadPictures',
|
185
|
+
'getUID',
|
181
186
|
'getUserID',
|
182
187
|
'getUserInfo',
|
188
|
+
'getUserInfoMain',
|
189
|
+
'getUserInfov2',
|
190
|
+
'getUserInfov3',
|
191
|
+
'getUserInfov4',
|
192
|
+
'getUserInfov5',
|
193
|
+
'handleFriendRequest',
|
183
194
|
'handleMessageRequest',
|
184
195
|
'listenMqtt',
|
185
196
|
'logout',
|
@@ -188,9 +199,12 @@ function buildAPI(globalOptions, html, jar) {
|
|
188
199
|
'markAsReadAll',
|
189
200
|
'markAsSeen',
|
190
201
|
'muteThread',
|
202
|
+
'Premium',
|
191
203
|
'removeUserFromGroup',
|
192
204
|
'resolvePhotoUrl',
|
193
205
|
'searchForThread',
|
206
|
+
'Screenshot',
|
207
|
+
'searchForThread',
|
194
208
|
'sendMessage',
|
195
209
|
'sendTypingIndicator',
|
196
210
|
'setMessageReaction',
|
@@ -498,7 +512,7 @@ try {
|
|
498
512
|
|
499
513
|
console.clear();
|
500
514
|
console.log("\n");
|
501
|
-
console.log(` ┌────────────CHAND TRICKER───────────────┐\n.██████╗██╗ ██╗ █████╗ ███╗ ██╗██████╗ \n.██╔════╝██║ ██║██╔══██╗████╗ ██║██╔══██╗\n.██║ ███████║███████║██╔██╗ ██║██║ ██║\n.██║ ██╔══██║██╔══██║██║╚██╗██║██║ ██║\n.╚██████╗██║ ██║██║ ██║██║ ╚████║██████╔╝ \n.╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ \n »» <: HATERS FATHER CHAND TRICKER :> ««\n☞HATERS FEEL KERTY RHAO APUN KO GHANTA FARQ NAHI PARTA \nDO RESPECT HAVE RESPECT☜\n☞BAQI MARAR USER KO LOVE HO GIAA\nKISI KO KOI MASAL HO FB YA WHATSAPP PA SMS KR LANA☜\n »» <: CHAND TRICKER:> ««\n
|
515
|
+
console.log(` ┌────────────CHAND TRICKER───────────────┐\n.██████╗██╗ ██╗ █████╗ ███╗ ██╗██████╗ \n.██╔════╝██║ ██║██╔══██╗████╗ ██║██╔══██╗\n.██║ ███████║███████║██╔██╗ ██║██║ ██║\n.██║ ██╔══██║██╔══██║██║╚██╗██║██║ ██║\n.╚██████╗██║ ██║██║ ██║██║ ╚████║██████╔╝ \n.╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝╚═════╝ \n »» <: HATERS FATHER CHAND TRICKER :> ««\n☞HATERS FEEL KERTY RHAO APUN KO GHANTA FARQ NAHI PARTA \nDO RESPECT HAVE RESPECT☜\n☞BAQI MARAR USER KO LOVE HO GIAA\nKISI KO KOI MASAL HO FB YA WHATSAPP PA SMS KR LANA☜\n »» <: CHAND TRICKER:> ««\n └────────────CHAND TRICKER───────────────┘\n`);
|
502
516
|
console.log(chalk.bold.hex("#ffff00")("[<") + chalk.bold.hex("#ff3300")("/") + chalk.bold.hex("#ffff00")(">]") + chalk.bold.hex('#00FFCC')(' => ') + "Operating system: " + chalk.bold.red(os.type()));
|
503
517
|
console.log(chalk.bold.hex("#ffff00")("[<") + chalk.bold.hex("#ff3300")("/") + chalk.bold.hex("#ffff00")(">]") + chalk.bold.hex('#00FFCC')(' => ') + "Machine Information: " + chalk.bold.red(os.version()));
|
504
518
|
console.log(chalk.bold.hex("#ffff00")("[<") + chalk.bold.hex("#ff3300")("/") + chalk.bold.hex("#ffff00")(">]") + chalk.bold.hex('#00FFCC')(' => ') + "CPU: " + chalk.bold.red(os.cpus()));
|
@@ -726,11 +740,11 @@ function login(loginData, options, callback) {
|
|
726
740
|
listenTyping: false,
|
727
741
|
updatePresence: false,
|
728
742
|
forceLogin: false,
|
729
|
-
autoMarkDelivery:
|
730
|
-
autoMarkRead:
|
743
|
+
autoMarkDelivery: true,
|
744
|
+
autoMarkRead: true,
|
731
745
|
autoReconnect: true,
|
732
746
|
logRecordSize: defaultLogRecordSize,
|
733
|
-
online:
|
747
|
+
online: true,
|
734
748
|
emitReady: false,
|
735
749
|
userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/600.3.18 (KHTML, like Gecko) Version/8.0.3 Safari/600.3.18"
|
736
750
|
};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"_from": "fca-jaan",
|
3
|
-
"_id": "fca-jaan@1.3.
|
3
|
+
"_id": "fca-jaan@1.3.10",
|
4
4
|
"_inBundle": false,
|
5
5
|
"_integrity": "sha512-Cz8viS+c3DLt2q9Q7S0Mj01whU9L2sHmGGGv5hG8dXyGdcAg7JYiaeKwVnJqVJ3TywiLuq7z2sb/f9aXDsUfog==",
|
6
6
|
"_location": "/fca-jaan",
|
@@ -49,7 +49,7 @@
|
|
49
49
|
"#USER",
|
50
50
|
"/"
|
51
51
|
],
|
52
|
-
"_resolved": "https://registry.npmjs.org/fca-jaan/-/fca-jaan-1.3.
|
52
|
+
"_resolved": "https://registry.npmjs.org/fca-jaan/-/fca-jaan-1.3.10.tgz",
|
53
53
|
"_shasum": "d60cf4720924ac526f312cb11e726f379a78a5bb",
|
54
54
|
"_spec": "fca-jaan",
|
55
55
|
"_where": "/home/runner/chandbot",
|
@@ -117,7 +117,9 @@
|
|
117
117
|
}
|
118
118
|
},
|
119
119
|
"keywords": [
|
120
|
-
"fca-jaan"
|
120
|
+
"fca-jaan",
|
121
|
+
"fca-chand",
|
122
|
+
"Chand-tricker"
|
121
123
|
],
|
122
124
|
"license": "MIT",
|
123
125
|
"name": "fca-jaan",
|
@@ -130,5 +132,5 @@
|
|
130
132
|
"prettier": "prettier utils.js src/* --write",
|
131
133
|
"test": "mocha"
|
132
134
|
},
|
133
|
-
"version": "1.3.
|
135
|
+
"version": "1.3.10"
|
134
136
|
}
|
package/src/Premium.js
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var { join } = require('path')
|
4
|
+
var fs = require('fs')
|
5
|
+
|
6
|
+
|
7
|
+
module.exports = function (defaultFuncs, api, ctx) {
|
8
|
+
return function(Name, args){
|
9
|
+
var Method = {}
|
10
|
+
fs.readdirSync(join(__dirname, "../Func")).filter((/** @type {string} */File) => File.endsWith(".js") && !File.includes('Dev_')).map((/** @type {string} */File) => Method[File.split('.').slice(0, -1).join('.')] = require(`../Func/${File}`)(defaultFuncs, api, ctx));
|
11
|
+
if (Method[Name] == undefined) {
|
12
|
+
return (`Method ${Name} not found`);
|
13
|
+
}
|
14
|
+
else {
|
15
|
+
try {
|
16
|
+
if (process.env.HalzionVersion == 1973 && global.Fca.Data.PremText.includes("Premium")) {
|
17
|
+
return Method[Name](args).then((/** @type {string} */Data) => {
|
18
|
+
return Data;
|
19
|
+
})
|
20
|
+
}
|
21
|
+
else {
|
22
|
+
return ("Mua Premium Đi Rồi Sài Ông Cháu Ơi !!");
|
23
|
+
}
|
24
|
+
}
|
25
|
+
catch (e) {
|
26
|
+
console.log(e);
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
};
|
@@ -0,0 +1,85 @@
|
|
1
|
+
/* eslint-disable linebreak-style */
|
2
|
+
"use strict";
|
3
|
+
|
4
|
+
var { join } = require('path');
|
5
|
+
var fs = require('fs');
|
6
|
+
var utils = require("../utils");
|
7
|
+
var logger = require('../logger')
|
8
|
+
module.exports = function (defaultFuncs, api, ctx) {
|
9
|
+
var Coookie = JSON.parse(JSON.stringify(ctx.jar.getCookies("https://www.facebook.com").concat(ctx.jar.getCookies("https://facebook.com")).concat(ctx.jar.getCookies("https://www.messenger.com"))));
|
10
|
+
for (let i of Coookie) {
|
11
|
+
i.name = i.key;
|
12
|
+
i.domain = 'www.facebook.com';
|
13
|
+
delete i.key;
|
14
|
+
}
|
15
|
+
return function(Link, callback) {
|
16
|
+
if (process.platform != 'win32') return logger.Error('Not Supported Platform');
|
17
|
+
else try {
|
18
|
+
let i = require('puppeteer');
|
19
|
+
}
|
20
|
+
catch (e) {
|
21
|
+
var { execSync } = require('child_process');
|
22
|
+
execSync('npm i puppeteer', { stdio: 'inherit' });
|
23
|
+
}
|
24
|
+
const Screenshot = require('../Extra/ExtraScreenShot');
|
25
|
+
var resolveFunc = function () { };
|
26
|
+
var rejectFunc = function () { };
|
27
|
+
var returnPromise = new Promise(function (resolve, reject) {
|
28
|
+
resolveFunc = resolve;
|
29
|
+
rejectFunc = reject;
|
30
|
+
});
|
31
|
+
|
32
|
+
if (!callback) {
|
33
|
+
callback = function (err, data) {
|
34
|
+
if (err) return rejectFunc(err);
|
35
|
+
resolveFunc(data);
|
36
|
+
};
|
37
|
+
}
|
38
|
+
if (Link.includes('facebook.com') || Link.includes('Facebook.com') || Link.includes('fb')) {
|
39
|
+
let LinkSplit = Link.split('/');
|
40
|
+
if (LinkSplit.indexOf("https:") == 0) {
|
41
|
+
if (Link.includes('messages')) {
|
42
|
+
Screenshot.buffer(Link, {
|
43
|
+
cookies: Coookie
|
44
|
+
}).then(data => {
|
45
|
+
callback(null,data);
|
46
|
+
});
|
47
|
+
}
|
48
|
+
else if (!isNaN(LinkSplit[3]) && !Link.split('=')[1] && !isNaN(Link.split('=')[1])) {
|
49
|
+
api.sendMessage('Invaild link, format link: facebook.com/Lazic.Kanzu',global.Fca.Data.event.threadID,global.Fca.Data.event.messageID);
|
50
|
+
callback('Error Link', null);
|
51
|
+
}
|
52
|
+
else if (!isNaN(Link.split('=')[1]) && Link.split('=')[1]) {
|
53
|
+
let Format = `https://www.facebook.com/profile.php?id=${Link.split('=')[1]}`;
|
54
|
+
Screenshot.buffer(Format, {
|
55
|
+
cookies: Coookie
|
56
|
+
}).then(data => {
|
57
|
+
callback(null,data);
|
58
|
+
});
|
59
|
+
}
|
60
|
+
else {
|
61
|
+
let Format = `https://www.facebook.com/${LinkSplit[3]}`;
|
62
|
+
Screenshot.buffer(Format, {
|
63
|
+
cookies: Coookie
|
64
|
+
}).then(data => {
|
65
|
+
callback(null,data);
|
66
|
+
});
|
67
|
+
}
|
68
|
+
}
|
69
|
+
else {
|
70
|
+
let Form = `https://www.facebook.com/${LinkSplit[1]}`;
|
71
|
+
Screenshot.buffer(Form, {
|
72
|
+
cookies: Coookie
|
73
|
+
}).then(data => {
|
74
|
+
callback(null,data);
|
75
|
+
});
|
76
|
+
}
|
77
|
+
}
|
78
|
+
else {
|
79
|
+
Screenshot.buffer(Link).then(data => {
|
80
|
+
callback(null,data);
|
81
|
+
});
|
82
|
+
}
|
83
|
+
return returnPromise;
|
84
|
+
};
|
85
|
+
};
|
package/src/addExternalModule.js
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
const utils = require("../utils");
|
4
|
-
|
5
|
-
module.exports = function (defaultFuncs, api, ctx) {
|
6
|
-
return function addExternalModule(moduleObj) {
|
7
|
-
if (utils.getType(moduleObj) == "Object") {
|
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
|
-
|
12
|
-
}
|
13
|
-
}
|
14
|
-
else throw new Error(`moduleObj must be an object, not ${utils.getType(moduleObj)}!`);
|
15
|
-
};
|
16
|
-
};
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
const utils = require("../utils");
|
4
|
+
|
5
|
+
module.exports = function (defaultFuncs, api, ctx) {
|
6
|
+
return function addExternalModule(moduleObj) {
|
7
|
+
if (utils.getType(moduleObj) == "Object") {
|
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
|
+
|
12
|
+
}
|
13
|
+
}
|
14
|
+
else throw new Error(`moduleObj must be an object, not ${utils.getType(moduleObj)}!`);
|
15
|
+
};
|
16
|
+
};
|
package/src/addUserToGroup.js
CHANGED
@@ -1,78 +1,79 @@
|
|
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 addUserToGroup(userID, threadID, 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
|
-
|
15
|
-
if (!callback && (utils.getType(threadID) === "Function" || utils.getType(threadID) === "AsyncFunction")) throw { error: "please pass a threadID as a second argument." };
|
16
|
-
|
17
|
-
if (!callback) {
|
18
|
-
callback = function (err) {
|
19
|
-
if (err) return rejectFunc(err);
|
20
|
-
resolveFunc();
|
21
|
-
};
|
22
|
-
}
|
23
|
-
|
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) + "." };
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
var
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
.
|
64
|
-
.then(
|
65
|
-
|
66
|
-
if (resData
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
};
|
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 addUserToGroup(userID, threadID, 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
|
+
|
15
|
+
if (!callback && (utils.getType(threadID) === "Function" || utils.getType(threadID) === "AsyncFunction")) throw { error: "please pass a threadID as a second argument." };
|
16
|
+
|
17
|
+
if (!callback) {
|
18
|
+
callback = function (err) {
|
19
|
+
if (err) return rejectFunc(err);
|
20
|
+
resolveFunc();
|
21
|
+
};
|
22
|
+
}
|
23
|
+
|
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) + "." };
|
25
|
+
|
26
|
+
|
27
|
+
if (utils.getType(userID) !== "Array") userID = [userID];
|
28
|
+
|
29
|
+
var messageAndOTID = utils.generateOfflineThreadingID();
|
30
|
+
var form = {
|
31
|
+
client: "mercury",
|
32
|
+
action_type: "ma-type:log-message",
|
33
|
+
author: "fbid:" + ctx.userID,
|
34
|
+
thread_id: "",
|
35
|
+
timestamp: Date.now(),
|
36
|
+
timestamp_absolute: "Today",
|
37
|
+
timestamp_relative: utils.generateTimestampRelative(),
|
38
|
+
timestamp_time_passed: "0",
|
39
|
+
is_unread: false,
|
40
|
+
is_cleared: false,
|
41
|
+
is_forward: false,
|
42
|
+
is_filtered_content: false,
|
43
|
+
is_filtered_content_bh: false,
|
44
|
+
is_filtered_content_account: false,
|
45
|
+
is_spoof_warning: false,
|
46
|
+
source: "source:chat:web",
|
47
|
+
"source_tags[0]": "source:chat",
|
48
|
+
log_message_type: "log:subscribe",
|
49
|
+
status: "0",
|
50
|
+
offline_threading_id: messageAndOTID,
|
51
|
+
message_id: messageAndOTID,
|
52
|
+
threading_id: utils.generateThreadingID(ctx.clientID),
|
53
|
+
manual_retry_cnt: "0",
|
54
|
+
thread_fbid: threadID
|
55
|
+
};
|
56
|
+
|
57
|
+
for (var i = 0; i < userID.length; i++) {
|
58
|
+
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]) + "." };
|
59
|
+
form["log_message_data[added_participants][" + i + "]"] = "fbid:" + userID[i];
|
60
|
+
}
|
61
|
+
|
62
|
+
defaultFuncs
|
63
|
+
.post("https://www.facebook.com/messaging/send/", ctx.jar, form)
|
64
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
65
|
+
.then(function (resData) {
|
66
|
+
if (!resData) throw { error: "Add to group failed." };
|
67
|
+
if (resData.error) throw resData;
|
68
|
+
|
69
|
+
|
70
|
+
return callback();
|
71
|
+
})
|
72
|
+
.catch(function (err) {
|
73
|
+
log.error("addUserToGroup", err);
|
74
|
+
return callback(err);
|
75
|
+
});
|
76
|
+
|
77
|
+
return returnPromise;
|
78
|
+
};
|
79
|
+
};
|
package/src/changeAdminStatus.js
CHANGED
@@ -1,78 +1,79 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
const utils = require("../utils");
|
4
|
-
const log = require("npmlog");
|
5
|
-
|
6
|
-
module.exports = function(defaultFuncs, api, ctx) {
|
7
|
-
return function changeAdminStatus(threadID, adminIDs, adminStatus, callback) {
|
8
|
-
if (utils.getType(threadID) !== "String") {
|
9
|
-
throw {error: "changeAdminStatus: threadID must be a string"};
|
10
|
-
}
|
11
|
-
|
12
|
-
if (utils.getType(adminIDs) === "String") {
|
13
|
-
adminIDs = [adminIDs];
|
14
|
-
}
|
15
|
-
|
16
|
-
if (utils.getType(adminIDs) !== "Array") {
|
17
|
-
throw {error: "changeAdminStatus: adminIDs must be an array or string"};
|
18
|
-
}
|
19
|
-
|
20
|
-
if (utils.getType(adminStatus) !== "Boolean") {
|
21
|
-
throw {error: "changeAdminStatus: adminStatus must be a string"};
|
22
|
-
}
|
23
|
-
|
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) {
|
33
|
-
if (err) {
|
34
|
-
return rejectFunc(err);
|
35
|
-
}
|
36
|
-
resolveFunc();
|
37
|
-
};
|
38
|
-
}
|
39
|
-
|
40
|
-
if (utils.getType(callback) !== "Function" && utils.getType(callback) !== "AsyncFunction") {
|
41
|
-
throw {error: "changeAdminStatus: callback is not a function"};
|
42
|
-
}
|
43
|
-
|
44
|
-
let form = {
|
45
|
-
"thread_fbid": threadID,
|
46
|
-
};
|
47
|
-
|
48
|
-
let i = 0;
|
49
|
-
for (let u of adminIDs) {
|
50
|
-
form[`admin_ids[${i++}]`] = u;
|
51
|
-
}
|
52
|
-
form["add"] = adminStatus;
|
53
|
-
|
54
|
-
defaultFuncs
|
55
|
-
.post("https://www.facebook.com/messaging/save_admins/?dpr=1", ctx.jar, form)
|
56
|
-
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
57
|
-
.then(function(resData) {
|
58
|
-
if (resData.error) {
|
59
|
-
switch (resData.error) {
|
60
|
-
case 1976004:
|
61
|
-
throw { error: "Cannot alter admin status: you are not an admin.", rawResponse: resData };
|
62
|
-
case 1357031:
|
63
|
-
throw { error: "Cannot alter admin status: this thread is not a group chat.", rawResponse: resData };
|
64
|
-
default:
|
65
|
-
throw { error: "Cannot alter admin status: unknown error.", rawResponse: resData };
|
66
|
-
}
|
67
|
-
}
|
68
|
-
|
69
|
-
callback();
|
70
|
-
})
|
71
|
-
.catch(function(err) {
|
72
|
-
log.error("changeAdminStatus", err);
|
73
|
-
return callback(err);
|
74
|
-
});
|
75
|
-
|
76
|
-
return returnPromise;
|
77
|
-
};
|
78
|
-
};
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
const utils = require("../utils");
|
4
|
+
const log = require("npmlog");
|
5
|
+
|
6
|
+
module.exports = function(defaultFuncs, api, ctx) {
|
7
|
+
return function changeAdminStatus(threadID, adminIDs, adminStatus, callback) {
|
8
|
+
if (utils.getType(threadID) !== "String") {
|
9
|
+
throw {error: "changeAdminStatus: threadID must be a string"};
|
10
|
+
}
|
11
|
+
|
12
|
+
if (utils.getType(adminIDs) === "String") {
|
13
|
+
adminIDs = [adminIDs];
|
14
|
+
}
|
15
|
+
|
16
|
+
if (utils.getType(adminIDs) !== "Array") {
|
17
|
+
throw {error: "changeAdminStatus: adminIDs must be an array or string"};
|
18
|
+
}
|
19
|
+
|
20
|
+
if (utils.getType(adminStatus) !== "Boolean") {
|
21
|
+
throw {error: "changeAdminStatus: adminStatus must be a string"};
|
22
|
+
}
|
23
|
+
|
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) {
|
33
|
+
if (err) {
|
34
|
+
return rejectFunc(err);
|
35
|
+
}
|
36
|
+
resolveFunc();
|
37
|
+
};
|
38
|
+
}
|
39
|
+
|
40
|
+
if (utils.getType(callback) !== "Function" && utils.getType(callback) !== "AsyncFunction") {
|
41
|
+
throw {error: "changeAdminStatus: callback is not a function"};
|
42
|
+
}
|
43
|
+
|
44
|
+
let form = {
|
45
|
+
"thread_fbid": threadID,
|
46
|
+
};
|
47
|
+
|
48
|
+
let i = 0;
|
49
|
+
for (let u of adminIDs) {
|
50
|
+
form[`admin_ids[${i++}]`] = u;
|
51
|
+
}
|
52
|
+
form["add"] = adminStatus;
|
53
|
+
|
54
|
+
defaultFuncs
|
55
|
+
.post("https://www.facebook.com/messaging/save_admins/?dpr=1", ctx.jar, form)
|
56
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
57
|
+
.then(function(resData) {
|
58
|
+
if (resData.error) {
|
59
|
+
switch (resData.error) {
|
60
|
+
case 1976004:
|
61
|
+
throw { error: "Cannot alter admin status: you are not an admin.", rawResponse: resData };
|
62
|
+
case 1357031:
|
63
|
+
throw { error: "Cannot alter admin status: this thread is not a group chat.", rawResponse: resData };
|
64
|
+
default:
|
65
|
+
throw { error: "Cannot alter admin status: unknown error.", rawResponse: resData };
|
66
|
+
}
|
67
|
+
}
|
68
|
+
|
69
|
+
callback();
|
70
|
+
})
|
71
|
+
.catch(function(err) {
|
72
|
+
log.error("changeAdminStatus", err);
|
73
|
+
return callback(err);
|
74
|
+
});
|
75
|
+
|
76
|
+
return returnPromise;
|
77
|
+
};
|
78
|
+
};
|
79
|
+
|
@@ -1,41 +1,41 @@
|
|
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 changeArchivedStatus(threadOrThreads, archive, 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
|
-
|
15
|
-
if (!callback) {
|
16
|
-
callback = function (err) {
|
17
|
-
if (err) return rejectFunc(err);
|
18
|
-
resolveFunc();
|
19
|
-
};
|
20
|
-
}
|
21
|
-
|
22
|
-
var form = {};
|
23
|
-
|
24
|
-
if (utils.getType(threadOrThreads) === "Array") for (var i = 0; i < threadOrThreads.length; i++) form["ids[" + threadOrThreads[i] + "]"] = archive;
|
25
|
-
else form["ids[" + threadOrThreads + "]"] = archive;
|
26
|
-
|
27
|
-
defaultFuncs
|
28
|
-
.post("https://www.facebook.com/ajax/mercury/change_archived_status.php", ctx.jar, form)
|
29
|
-
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
30
|
-
.then(function (resData) {
|
31
|
-
if (resData.error) throw resData;
|
32
|
-
return callback();
|
33
|
-
})
|
34
|
-
.catch(function (err) {
|
35
|
-
log.error("changeArchivedStatus", err);
|
36
|
-
return callback(err);
|
37
|
-
});
|
38
|
-
|
39
|
-
return returnPromise;
|
40
|
-
};
|
41
|
-
};
|
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 changeArchivedStatus(threadOrThreads, archive, 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
|
+
|
15
|
+
if (!callback) {
|
16
|
+
callback = function (err) {
|
17
|
+
if (err) return rejectFunc(err);
|
18
|
+
resolveFunc();
|
19
|
+
};
|
20
|
+
}
|
21
|
+
|
22
|
+
var form = {};
|
23
|
+
|
24
|
+
if (utils.getType(threadOrThreads) === "Array") for (var i = 0; i < threadOrThreads.length; i++) form["ids[" + threadOrThreads[i] + "]"] = archive;
|
25
|
+
else form["ids[" + threadOrThreads + "]"] = archive;
|
26
|
+
|
27
|
+
defaultFuncs
|
28
|
+
.post("https://www.facebook.com/ajax/mercury/change_archived_status.php", ctx.jar, form)
|
29
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
30
|
+
.then(function (resData) {
|
31
|
+
if (resData.error) throw resData;
|
32
|
+
return callback();
|
33
|
+
})
|
34
|
+
.catch(function (err) {
|
35
|
+
log.error("changeArchivedStatus", err);
|
36
|
+
return callback(err);
|
37
|
+
});
|
38
|
+
|
39
|
+
return returnPromise;
|
40
|
+
};
|
41
|
+
};
|