yandev 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of yandev might be problematic. Click here for more details.
- package/.cache/replit/__replit_disk_meta.json +1 -0
- package/.cache/replit/nix/env.json +1 -0
- package/.config/configstore/update-notifier-npm.json +4 -0
- package/.config/configstore/update-notifier-npm.json.1735545094 +4 -0
- package/.gitattributes +2 -0
- package/.replit +93 -0
- package/.upm/store.json +1 -0
- package/ConfigFca.json +38 -0
- package/Extra/Database/index.js +469 -0
- package/Extra/ExtraAddons.js +82 -0
- package/Extra/ExtraFindUID.js +62 -0
- package/Extra/ExtraGetThread.js +340 -0
- package/Extra/ExtraScreenShot.js +430 -0
- package/Extra/ExtraUptimeRobot.js +38 -0
- package/Extra/Html/Classic/script.js +833 -0
- package/Extra/Html/Classic/style.css +1222 -0
- package/Extra/Security/Index.js +173 -0
- package/Extra/Security/Step_1.js +6 -0
- package/Extra/Security/Step_2.js +22 -0
- package/Extra/Security/Step_3.js +22 -0
- package/Extra/Src/Change_Environment.js +24 -0
- package/Extra/Src/Check_Update.js +66 -0
- package/Extra/Src/History.js +115 -0
- package/Extra/Src/Instant_Update.js +64 -0
- package/Extra/Src/Last-Run.js +65 -0
- package/Extra/Src/Release_Memory.js +41 -0
- package/Extra/Src/image/checkmate.jpg +0 -0
- package/Extra/Src/uuid.js +137 -0
- package/Func/AcceptAgreement.js +31 -0
- package/Func/ClearCache.js +64 -0
- package/Func/ReportV1.js +54 -0
- package/Index.js +378 -0
- package/LICENSE +21 -0
- package/Language/index.json +224 -0
- package/Main.js +1110 -0
- package/README.md +142 -0
- package/broadcast.js +40 -0
- package/logger.js +66 -0
- package/package.json +102 -0
- package/replit.nix +8 -0
- package/src/Dev_Horizon_Data.js +125 -0
- package/src/Premium.js +25 -0
- package/src/Screenshot.js +83 -0
- package/src/addExternalModule.js +16 -0
- package/src/addUserToGroup.js +79 -0
- package/src/changeAdminStatus.js +79 -0
- package/src/changeArchivedStatus.js +41 -0
- package/src/changeAvt.js +85 -0
- package/src/changeBio.js +65 -0
- package/src/changeBlockedStatus.js +36 -0
- package/src/changeGroupImage.js +106 -0
- package/src/changeNickname.js +45 -0
- package/src/changeThreadColor.js +62 -0
- package/src/changeThreadEmoji.js +42 -0
- package/src/createNewGroup.js +70 -0
- package/src/createPoll.js +60 -0
- package/src/deleteMessage.js +45 -0
- package/src/deleteThread.js +43 -0
- package/src/forwardAttachment.js +48 -0
- package/src/getAccessToken.js +28 -0
- package/src/getCurrentUserID.js +7 -0
- package/src/getEmojiUrl.js +27 -0
- package/src/getFriendsList.js +73 -0
- package/src/getMessage.js +80 -0
- package/src/getThreadHistory.js +537 -0
- package/src/getThreadInfo.js +425 -0
- package/src/getThreadList.js +213 -0
- package/src/getThreadMain.js +220 -0
- package/src/getThreadPictures.js +59 -0
- package/src/getUID.js +59 -0
- package/src/getUserID.js +62 -0
- package/src/getUserInfo.js +113 -0
- package/src/getUserInfoMain.js +65 -0
- package/src/getUserInfoV2.js +32 -0
- package/src/getUserInfoV3.js +63 -0
- package/src/getUserInfoV4.js +55 -0
- package/src/getUserInfoV5.js +61 -0
- package/src/handleFriendRequest.js +46 -0
- package/src/handleMessageRequest.js +49 -0
- package/src/httpGet.js +49 -0
- package/src/httpPost.js +48 -0
- package/src/httpPostFormData.js +41 -0
- package/src/listenMqtt.js +786 -0
- package/src/logout.js +68 -0
- package/src/markAsDelivered.js +48 -0
- package/src/markAsRead.js +70 -0
- package/src/markAsReadAll.js +43 -0
- package/src/markAsSeen.js +51 -0
- package/src/muteThread.js +47 -0
- package/src/removeUserFromGroup.js +49 -0
- package/src/resolvePhotoUrl.js +37 -0
- package/src/searchForThread.js +43 -0
- package/src/sendMessage.js +379 -0
- package/src/sendTypingIndicator.js +80 -0
- package/src/setMessageReaction.js +109 -0
- package/src/setPostReaction.js +102 -0
- package/src/setTitle.js +74 -0
- package/src/threadColors.js +39 -0
- package/src/unfriend.js +43 -0
- package/src/unsendMessage.js +40 -0
- package/utils.js +1684 -0
@@ -0,0 +1,137 @@
|
|
1
|
+
/**
|
2
|
+
* Credit: @chronosis | Github: https://github.com/chronosis/uuid-apikey/
|
3
|
+
* Description: Update Package to resolve Deprecated from package "uuid"
|
4
|
+
*/
|
5
|
+
// index.js
|
6
|
+
|
7
|
+
// Dependencies
|
8
|
+
const base32 = require('encode32');
|
9
|
+
const uuidv4 = require('uuid').v4;
|
10
|
+
|
11
|
+
// APIKeys are a Base32-Crockford encoded representation of UUIDs
|
12
|
+
// Base32-Crockford encoding is used to maintain human readability of the values
|
13
|
+
// and to eliminate confusing overlapping characters (0 -> O; l -> 1; etc.)
|
14
|
+
class UUIDAPIKey {
|
15
|
+
constructor() {
|
16
|
+
this.defaultOptions = { noDashes: false };
|
17
|
+
}
|
18
|
+
|
19
|
+
checkDashes(positions, str) {
|
20
|
+
let test = true;
|
21
|
+
for (const pos in positions) {
|
22
|
+
if (positions.hasOwnProperty(pos)) {
|
23
|
+
const chr = str.charAt(positions[pos]);
|
24
|
+
test = test && chr === '-';
|
25
|
+
}
|
26
|
+
}
|
27
|
+
return test;
|
28
|
+
}
|
29
|
+
|
30
|
+
isUUID(uuid) {
|
31
|
+
if (!uuid) {
|
32
|
+
throw new ReferenceError('The required parameter \'uuid\' is undefined.');
|
33
|
+
}
|
34
|
+
const uuidCheck = this.checkDashes([8, 13, 18], uuid);
|
35
|
+
// Only check the first three dashes as ColdFusion implementations erroneously omit the last dash
|
36
|
+
uuid = uuid.replace(/-/g, '');
|
37
|
+
const re = /[0-9A-Fa-f]*/g;
|
38
|
+
return uuidCheck && uuid.length === 32 && re.test(uuid);
|
39
|
+
}
|
40
|
+
|
41
|
+
isAPIKey(apiKey) {
|
42
|
+
if (!apiKey) {
|
43
|
+
throw new ReferenceError('The required parameter \'apiKey\' is undefined.');
|
44
|
+
}
|
45
|
+
apiKey = apiKey.toUpperCase().replace(/-/g, '');
|
46
|
+
const re = /[0-9A-Z]*/g;
|
47
|
+
return apiKey.length === 28 && re.test(apiKey);
|
48
|
+
}
|
49
|
+
|
50
|
+
toAPIKey(uuid, options) {
|
51
|
+
if (!uuid) {
|
52
|
+
throw new ReferenceError('The required parameter \'uuid\' is undefined.');
|
53
|
+
}
|
54
|
+
options = options || this.defaultOptions;
|
55
|
+
if (this.isUUID(uuid)) {
|
56
|
+
uuid = uuid.replace(/-/g, '');
|
57
|
+
const s1 = uuid.substr(0, 8);
|
58
|
+
const s2 = uuid.substr(8, 8);
|
59
|
+
const s3 = uuid.substr(16, 8);
|
60
|
+
const s4 = uuid.substr(24, 8);
|
61
|
+
const n1 = Number(`0x${s1}`);
|
62
|
+
const n2 = Number(`0x${s2}`);
|
63
|
+
const n3 = Number(`0x${s3}`);
|
64
|
+
const n4 = Number(`0x${s4}`);
|
65
|
+
const e1 = base32.encode32(n1);
|
66
|
+
const e2 = base32.encode32(n2);
|
67
|
+
const e3 = base32.encode32(n3);
|
68
|
+
const e4 = base32.encode32(n4);
|
69
|
+
if (options.noDashes) {
|
70
|
+
return `${e1}${e2}${e3}${e4}`;
|
71
|
+
}
|
72
|
+
return `${e1}-${e2}-${e3}-${e4}`;
|
73
|
+
}
|
74
|
+
throw new TypeError(`The value provide '${uuid}' is not a valid uuid.`);
|
75
|
+
}
|
76
|
+
|
77
|
+
toUUID(apiKey) {
|
78
|
+
if (!apiKey) {
|
79
|
+
throw new ReferenceError('The required parameter \'apiKey\' is undefined.');
|
80
|
+
}
|
81
|
+
if (this.isAPIKey(apiKey)) {
|
82
|
+
apiKey = apiKey.replace(/-/g, '');
|
83
|
+
const e1 = apiKey.substr(0, 7);
|
84
|
+
const e2 = apiKey.substr(7, 7);
|
85
|
+
const e3 = apiKey.substr(14, 7);
|
86
|
+
const e4 = apiKey.substr(21, 7);
|
87
|
+
const n1 = base32.decode32(e1);
|
88
|
+
const n2 = base32.decode32(e2);
|
89
|
+
const n3 = base32.decode32(e3);
|
90
|
+
const n4 = base32.decode32(e4);
|
91
|
+
const s1 = n1.toString(16).padStart(8, '0');
|
92
|
+
const s2 = n2.toString(16).padStart(8, '0');
|
93
|
+
const s3 = n3.toString(16).padStart(8, '0');
|
94
|
+
const s4 = n4.toString(16).padStart(8, '0');
|
95
|
+
const s2a = s2.substr(0, 4);
|
96
|
+
const s2b = s2.substr(4, 4);
|
97
|
+
const s3a = s3.substr(0, 4);
|
98
|
+
const s3b = s3.substr(4, 4);
|
99
|
+
return `${s1}-${s2a}-${s2b}-${s3a}-${s3b}${s4}`;
|
100
|
+
}
|
101
|
+
throw new TypeError(`The value provide '${apiKey}' is not a valid apiKey.`);
|
102
|
+
}
|
103
|
+
|
104
|
+
check(apiKey, uuid) {
|
105
|
+
if (!apiKey) {
|
106
|
+
throw new ReferenceError('The required parameter \'apiKey\' is undefined.');
|
107
|
+
}
|
108
|
+
if (!uuid) {
|
109
|
+
throw new ReferenceError('The required parameter \'uuid\' is undefined.');
|
110
|
+
}
|
111
|
+
const apiTest = this.isAPIKey(apiKey.toUpperCase());
|
112
|
+
const uuidTest = this.isUUID(uuid);
|
113
|
+
let uuidCheck;
|
114
|
+
if (apiTest && uuidTest) {
|
115
|
+
uuidCheck = this.toUUID(apiKey);
|
116
|
+
return uuid === uuidCheck;
|
117
|
+
}
|
118
|
+
let errMsg = '';
|
119
|
+
if (!apiTest) {
|
120
|
+
errMsg += `The value provide '${apiKey}' is not a valid apiKey. `;
|
121
|
+
}
|
122
|
+
if (!uuidTest) {
|
123
|
+
errMsg += `The value provide '${uuid}' is not a valid uuid. `;
|
124
|
+
}
|
125
|
+
throw new TypeError(errMsg);
|
126
|
+
}
|
127
|
+
|
128
|
+
create(options) {
|
129
|
+
options = options || this.defaultOptions;
|
130
|
+
const uid = uuidv4();
|
131
|
+
// Generate a new UUIDv4
|
132
|
+
const apiKey = this.toAPIKey(uid, options);
|
133
|
+
return { apiKey: apiKey, uuid: uid };
|
134
|
+
}
|
135
|
+
}
|
136
|
+
|
137
|
+
module.exports = new UUIDAPIKey();
|
@@ -0,0 +1,31 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var utils = require("../utils");
|
4
|
+
var log = require("npmlog");
|
5
|
+
var database = require('../Extra/Database');
|
6
|
+
module.exports = function (defaultFuncs, api, ctx) {
|
7
|
+
return function (args,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, data) {
|
17
|
+
if (err) return rejectFunc(err);
|
18
|
+
resolveFunc(data);
|
19
|
+
};
|
20
|
+
}
|
21
|
+
if (database(true).get('agreement') == true) {
|
22
|
+
callback(null, "Accecpt");
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
database(true).set('agreement', true);
|
26
|
+
var Form = "=== Horizon end-user license agreement ===\n\n Free to use and edited ✨";
|
27
|
+
callback(null, Form);
|
28
|
+
}
|
29
|
+
return returnPromise;
|
30
|
+
};
|
31
|
+
};
|
@@ -0,0 +1,64 @@
|
|
1
|
+
"use strict";
|
2
|
+
const { execSync } = require('child_process');
|
3
|
+
var utils = require("../utils");
|
4
|
+
var log = require("../logger");
|
5
|
+
var Object = ['png','json','wav','mp3','mp4','jpg','txt','gif','tff','m4a'];
|
6
|
+
var Recommend = ['png','wav','mp3','mp4','jpg','m4a'];
|
7
|
+
module.exports = function (defaultFuncs, api, ctx) {
|
8
|
+
return function (Args,callback) {
|
9
|
+
let New1 = [];
|
10
|
+
if (!Args.New || utils.getType(Args.New) !== "Array") {
|
11
|
+
New1 = Recommend;
|
12
|
+
log.Normal("Không Có Adding Thêm, Tiến Hành Sử Dụng Theo Hệ Thống Chỉ Định !");
|
13
|
+
}
|
14
|
+
else {
|
15
|
+
for (let i = 0; i < Args.New.length; i++) {
|
16
|
+
if (Object.indexOf(Args.New[i]) === -1) {
|
17
|
+
log.Normal('Không tìm thấy file ' + Args.New[i] + ' trong danh sách định dạng');
|
18
|
+
return;
|
19
|
+
}
|
20
|
+
New1.push(Args.New[i]);
|
21
|
+
}
|
22
|
+
}
|
23
|
+
var resolveFunc = function () { };
|
24
|
+
var rejectFunc = function () { };
|
25
|
+
var returnPromise = new Promise(function (resolve, reject) {
|
26
|
+
resolveFunc = resolve;
|
27
|
+
rejectFunc = reject;
|
28
|
+
});
|
29
|
+
|
30
|
+
if (!callback) {
|
31
|
+
callback = function (err, data) {
|
32
|
+
if (err) return rejectFunc(err);
|
33
|
+
resolveFunc(data);
|
34
|
+
};
|
35
|
+
}
|
36
|
+
switch (process.platform) {
|
37
|
+
case 'linux': {
|
38
|
+
for (let i = 0; i < New1.length; i++) {
|
39
|
+
log.Normal('Đang Clear Loại File ' + New1[i]);
|
40
|
+
var STR = String(`find ./modules -type f -iname \'*.${New1[i]}\' -exec rm {} \\;`);
|
41
|
+
execSync(STR);
|
42
|
+
}
|
43
|
+
log.Normal('Thành Công Clear ' + New1.length + ' Loại File !');
|
44
|
+
callback(null, 'Thành Công Clear ' + New1.length + ' Loại File !');
|
45
|
+
}
|
46
|
+
break;
|
47
|
+
case "win32": {
|
48
|
+
var cmd = "del /q /s /f /a ";
|
49
|
+
for (let i = 0; i < New1.length; i++) {
|
50
|
+
log.Normal('Đang Clear Loại File ' + New1[i]);
|
51
|
+
let STR = String(cmd + '.\\modules\\*.' + New1[i] + '"');
|
52
|
+
execSync(STR, { stdio: 'inherit' });
|
53
|
+
}
|
54
|
+
log.Normal('Thành Công Clear ' + New1.length + ' Loại File !');
|
55
|
+
callback(null, 'Thành Công Clear ' + New1.length + ' Loại File !');
|
56
|
+
}
|
57
|
+
break;
|
58
|
+
default: {
|
59
|
+
return log.Error('Not Supported');
|
60
|
+
}
|
61
|
+
}
|
62
|
+
return returnPromise;
|
63
|
+
};
|
64
|
+
};
|
package/Func/ReportV1.js
ADDED
@@ -0,0 +1,54 @@
|
|
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 (args,callback) {
|
8
|
+
if (!args.Link && !args.RealName && !args.Content && !args.Gmail) throw new Error("Link,RealName,Content,Gmail are required");
|
9
|
+
if (!args.Link) throw new Error("Điền args.Link vào, api.Premium.ReportV1(Link,RealName,Content,Gmail,Time,callback)");
|
10
|
+
if (!args.RealName) throw new Error("Điền RealName vào, api.Premium.ReportV1(Link,RealName,Content,Time,Gmail,callback)");
|
11
|
+
if (!args.Gmail) throw new Error("Điền Gmail vào, api.Premium.ReportV1(Link,RealName,Content,Gmail,Time,callback)");
|
12
|
+
var resolveFunc = function () { };
|
13
|
+
var rejectFunc = function () { };
|
14
|
+
var returnPromise = new Promise(function (resolve, reject) {
|
15
|
+
resolveFunc = resolve;
|
16
|
+
rejectFunc = reject;
|
17
|
+
});
|
18
|
+
|
19
|
+
if (!callback) {
|
20
|
+
callback = function (err, data) {
|
21
|
+
if (err) return rejectFunc(err);
|
22
|
+
resolveFunc(data);
|
23
|
+
};
|
24
|
+
}
|
25
|
+
let RealForm;
|
26
|
+
utils.get('https://www.facebook.com/help/contact/209046679279097?locale2=en_US', ctx.jar, null, ctx.globalOptions)
|
27
|
+
.then(function(data) {
|
28
|
+
RealForm = {
|
29
|
+
crt_url: args.Link,
|
30
|
+
crt_name: args.RealName,
|
31
|
+
cf_age: "9 years",
|
32
|
+
Field255260417881843: args.Content ? utils.getType(args.Content)=="String"? args.Content : "This timeline is impersonating me and my friends. It harass people on Facebook. I think this is a time line of baby, parents are not allowed. Please let Facebook account deactivated for Facebook is increasingly safer. Thank you!" : "This timeline is impersonating me and my friends. It harass people on Facebook. I think this is a time line of baby, parents are not allowed. Please let Facebook account deactivated for Facebook is increasingly safer. Thank you!",
|
33
|
+
Field166040066844792: args.Gmail,
|
34
|
+
source: '',
|
35
|
+
support_form_id: 209046679279097,
|
36
|
+
support_form_hidden_fields: JSON.stringify({}),
|
37
|
+
support_form_fact_false_fields: [],
|
38
|
+
lsd: utils.getFrom(data.body, "[\"LSD\",[],{\"token\":\"", "\"}")
|
39
|
+
};
|
40
|
+
}).then(function() {
|
41
|
+
defaultFuncs.postFormData('https://www.facebook.com/ajax/help/contact/submit/page', ctx.jar, RealForm, {})
|
42
|
+
.then(utils.parseAndCheckLogin(ctx, defaultFuncs))
|
43
|
+
.then(async function(dt) {
|
44
|
+
if (dt.__ar == 1) {
|
45
|
+
callback(null, "Thành Công");
|
46
|
+
}
|
47
|
+
else {
|
48
|
+
callback(null, "Thất Bại");
|
49
|
+
}
|
50
|
+
});
|
51
|
+
})
|
52
|
+
return returnPromise;
|
53
|
+
}
|
54
|
+
};
|
package/Index.js
ADDED
@@ -0,0 +1,378 @@
|
|
1
|
+
'use strict';
|
2
|
+
const logger = require('./logger.js');
|
3
|
+
/* eslint-disable linebreak-style */
|
4
|
+
const utils = require('./utils');
|
5
|
+
global.Fca = new Object({
|
6
|
+
isThread: new Array(),
|
7
|
+
isUser: new Array(),
|
8
|
+
startTime: Date.now(),
|
9
|
+
Setting: new Map(),
|
10
|
+
Version: require('./package.json').version,
|
11
|
+
Require: new Object({
|
12
|
+
fs: require("fs"),
|
13
|
+
Fetch: require('got'),
|
14
|
+
log: require("npmlog"),
|
15
|
+
utils: require("./utils.js"),
|
16
|
+
logger: require('./logger.js'),
|
17
|
+
languageFile: require('./Language/index.json'),
|
18
|
+
Security: require('./Extra/Src/uuid.js')
|
19
|
+
}),
|
20
|
+
getText: function(/** @type {any[]} */...Data) {
|
21
|
+
var Main = (Data.splice(0, 1)).toString();
|
22
|
+
for (let i = 0; i < Data.length; i++) Main = Main.replace(RegExp(`%${i + 1}`, 'g'), Data[i]);
|
23
|
+
return Main;
|
24
|
+
},
|
25
|
+
Data: new Object({
|
26
|
+
ObjFastConfig: {
|
27
|
+
"Config_Version": "3.0.0",
|
28
|
+
"Language": "en",
|
29
|
+
"AutoUpdate": true,
|
30
|
+
"MainColor": "#54C9F0",
|
31
|
+
"MainName": "[ LOGIN ]",
|
32
|
+
"Uptime": false,
|
33
|
+
"Config": "default",
|
34
|
+
"DevMode": false,
|
35
|
+
"Login2Fa": false,
|
36
|
+
"AutoLogin": true,
|
37
|
+
"BroadCast": true,
|
38
|
+
"AuthString": "SD4S XQ32 O2JA WXB3 FUX2 OPJ7 Q7JZ 4R6Z",
|
39
|
+
"EncryptFeature": false,
|
40
|
+
"ResetDataLogin": false,
|
41
|
+
"AutoInstallNode": false,
|
42
|
+
"AntiSendAppState": false,
|
43
|
+
"AutoRestartMinutes": 0,
|
44
|
+
"RestartMQTT_Minutes": 0,
|
45
|
+
"HTML": {
|
46
|
+
"HTML": false,
|
47
|
+
"Port": "8888",
|
48
|
+
"Title": "FCA-KAIYOBOT",
|
49
|
+
"AvtLink": "https://i.imgur.com/SPTKasU.jpg",
|
50
|
+
"UserName": "Premium",
|
51
|
+
"Description": "I Am Dang Hoang An<33",
|
52
|
+
"FacebookLink": "https://m.me/dhannn.06"
|
53
|
+
},
|
54
|
+
"AntiGetInfo": {
|
55
|
+
"Database_Type": "default",
|
56
|
+
"AntiGetThreadInfo": true,
|
57
|
+
"AntiGetUserInfo": true
|
58
|
+
},
|
59
|
+
"Stable_Version": {
|
60
|
+
"Accept": false,
|
61
|
+
"Version": ""
|
62
|
+
}
|
63
|
+
},
|
64
|
+
CountTime: function() {
|
65
|
+
var fs = global.Fca.Require.fs;
|
66
|
+
if (fs.existsSync(__dirname + '/CountTime.json')) {
|
67
|
+
try {
|
68
|
+
var data = Number(fs.readFileSync(__dirname + '/CountTime.json', 'utf8')),
|
69
|
+
hours = Math.floor(data / (60 * 60));
|
70
|
+
}
|
71
|
+
catch (e) {
|
72
|
+
fs.writeFileSync(__dirname + '/CountTime.json', 0);
|
73
|
+
hours = 0;
|
74
|
+
}
|
75
|
+
}
|
76
|
+
else {
|
77
|
+
hours = 0;
|
78
|
+
}
|
79
|
+
return `${hours} Hours`;
|
80
|
+
}
|
81
|
+
}),
|
82
|
+
Action: function(Type) {
|
83
|
+
switch (Type) {
|
84
|
+
case "AutoLogin": {
|
85
|
+
var Database = require('./Extra/Database');
|
86
|
+
var logger = global.Fca.Require.logger;
|
87
|
+
var Email = (Database().get('Account')).replace(RegExp('"', 'g'), ''); //hmm IDK
|
88
|
+
var PassWord = (Database().get('Password')).replace(RegExp('"', 'g'), '');
|
89
|
+
require('./Main')({ email: Email, password: PassWord }, async (error, api) => {
|
90
|
+
if (error) {
|
91
|
+
logger.Error(JSON.stringify(error, null, 2), function() { logger.Error("AutoLogin Failed!", function() { process.exit(0); }) });
|
92
|
+
}
|
93
|
+
try {
|
94
|
+
Database().set("TempState", Database().get('Through2Fa'));
|
95
|
+
}
|
96
|
+
catch (e) {
|
97
|
+
logger.Warning(global.Fca.Require.Language.Index.ErrDatabase);
|
98
|
+
logger.Error();
|
99
|
+
process.exit(0);
|
100
|
+
}
|
101
|
+
process.exit(1);
|
102
|
+
});
|
103
|
+
}
|
104
|
+
break;
|
105
|
+
default: {
|
106
|
+
require('npmlog').Error("Invalid Message!");
|
107
|
+
};
|
108
|
+
}
|
109
|
+
}
|
110
|
+
});
|
111
|
+
|
112
|
+
try {
|
113
|
+
let Boolean_Fca = ["AntiSendAppState", "AutoUpdate", "Uptime", "BroadCast", "EncryptFeature", "AutoLogin", "ResetDataLogin", "Login2Fa", "DevMode", "AutoInstallNode"];
|
114
|
+
let String_Fca = ["MainName", "Language", "AuthString", "Config", "Config_Version"]
|
115
|
+
let Number_Fca = ["AutoRestartMinutes", "RestartMQTT_Minutes"];
|
116
|
+
let Object_Fca = ["HTML", "Stable_Version", "AntiGetInfo"];
|
117
|
+
let All_Variable = Boolean_Fca.concat(String_Fca, Number_Fca, Object_Fca);
|
118
|
+
|
119
|
+
|
120
|
+
if (!global.Fca.Require.fs.existsSync(process.cwd() + '/ConfigFca.json')) {
|
121
|
+
global.Fca.Require.fs.writeFileSync(process.cwd() + "/ConfigFca.json", JSON.stringify(global.Fca.Data.ObjFastConfig, null, "\t"));
|
122
|
+
process.exit(1);
|
123
|
+
}
|
124
|
+
|
125
|
+
try {
|
126
|
+
var Data_Setting = require(process.cwd() + "/ConfigFca.json");
|
127
|
+
}
|
128
|
+
catch (e) {
|
129
|
+
global.Fca.Require.logger.Error('Detect Your ConfigFca Settings Invalid!, Carry out default restoration');
|
130
|
+
global.Fca.Require.fs.writeFileSync(process.cwd() + "/ConfigFca.json", JSON.stringify(global.Fca.Data.ObjFastConfig, null, "\t"));
|
131
|
+
process.exit(1)
|
132
|
+
}
|
133
|
+
if (global.Fca.Require.fs.existsSync(process.cwd() + '/ConfigFca.json')) {
|
134
|
+
|
135
|
+
for (let i of All_Variable) {
|
136
|
+
if (Data_Setting[i] == undefined) {
|
137
|
+
Data_Setting[i] = global.Fca.Data.ObjFastConfig[i];
|
138
|
+
global.Fca.Require.fs.writeFileSync(process.cwd() + "/ConfigFca.json", JSON.stringify(Data_Setting, null, "\t"));
|
139
|
+
}
|
140
|
+
else continue;
|
141
|
+
} //Check Variable
|
142
|
+
|
143
|
+
for (let i in Data_Setting) {
|
144
|
+
if (Boolean_Fca.includes(i)) {
|
145
|
+
if (global.Fca.Require.utils.getType(Data_Setting[i]) != "Boolean") logger.Error(i + " Is Not A Boolean, Need To Be true Or false !", function() { process.exit(0) });
|
146
|
+
else continue;
|
147
|
+
}
|
148
|
+
else if (String_Fca.includes(i)) {
|
149
|
+
if (global.Fca.Require.utils.getType(Data_Setting[i]) != "String") logger.Error(i + " Is Not A String, Need To Be String!", function() { process.exit(0) });
|
150
|
+
else continue;
|
151
|
+
}
|
152
|
+
else if (Number_Fca.includes(i)) {
|
153
|
+
if (global.Fca.Require.utils.getType(Data_Setting[i]) != "Number") logger.Error(i + " Is Not A Number, Need To Be Number !", function() { process.exit(0) });
|
154
|
+
else continue;
|
155
|
+
}
|
156
|
+
else if (Object_Fca.includes(i)) {
|
157
|
+
if (global.Fca.Require.utils.getType(Data_Setting[i]) != "Object") {
|
158
|
+
Data_Setting[i] = global.Fca.Data.ObjFastConfig[i];
|
159
|
+
global.Fca.Require.fs.writeFileSync(process.cwd() + "/ConfigFca.json", JSON.stringify(Data_Setting, null, "\t"));
|
160
|
+
}
|
161
|
+
else continue;
|
162
|
+
}
|
163
|
+
}
|
164
|
+
|
165
|
+
for (let i of Object_Fca) {
|
166
|
+
const All_Paths = utils.getPaths(global.Fca.Data.ObjFastConfig[i]);
|
167
|
+
const Mission = { Main_Path: i, Data_Path: All_Paths }
|
168
|
+
for (let i of Mission.Data_Path) {
|
169
|
+
if (Data_Setting[Mission.Main_Path] == undefined) {
|
170
|
+
Data_Setting[Mission.Main_Path] = global.Fca.Data.ObjFastConfig[Mission.Main_Path];
|
171
|
+
global.Fca.Require.fs.writeFileSync(process.cwd() + "/ConfigFca.json", JSON.stringify(Data_Setting, null, "\t"));
|
172
|
+
}
|
173
|
+
const User_Data = (utils.getData_Path(Data_Setting[Mission.Main_Path], i, 0))
|
174
|
+
const User_Data_Type = utils.getType(User_Data);
|
175
|
+
if (User_Data_Type == "Number") {
|
176
|
+
const Mission_Path = User_Data == 0 ? i : i.slice(0, User_Data);
|
177
|
+
const Mission_Obj = utils.getData_Path(global.Fca.Data.ObjFastConfig[Mission.Main_Path], Mission_Path, 0);
|
178
|
+
Data_Setting[Mission.Main_Path] = utils.setData_Path(Data_Setting[Mission.Main_Path], Mission_Path, Mission_Obj)
|
179
|
+
global.Fca.Require.fs.writeFileSync(process.cwd() + "/ConfigFca.json", JSON.stringify(Data_Setting, null, "\t"));
|
180
|
+
}
|
181
|
+
}
|
182
|
+
}
|
183
|
+
|
184
|
+
if (!global.Fca.Require.languageFile.some((/** @type {{ Language: string; }} */i) => i.Language == Data_Setting.Language)) {
|
185
|
+
global.Fca.Require.logger.Warning("Not Support Language: " + Data_Setting.Language + " Only 'en' and 'vi'");
|
186
|
+
process.exit(0);
|
187
|
+
}
|
188
|
+
global.Fca.Require.Language = global.Fca.Require.languageFile.find((/** @type {{ Language: string; }} */i) => i.Language == Data_Setting.Language).Folder;
|
189
|
+
} else process.exit(1);
|
190
|
+
global.Fca.Require.FastConfig = Data_Setting;
|
191
|
+
}
|
192
|
+
catch (e) {
|
193
|
+
console.log(e);
|
194
|
+
global.Fca.Require.logger.Error();
|
195
|
+
}
|
196
|
+
|
197
|
+
module.exports = function(loginData, options, callback) {
|
198
|
+
const Language = global.Fca.Require.languageFile.find((/** @type {{ Language: string; }} */i) => i.Language == global.Fca.Require.FastConfig.Language).Folder.Index;
|
199
|
+
const login = require('./Main');
|
200
|
+
const fs = require('fs-extra');
|
201
|
+
const got = require('got');
|
202
|
+
const log = require('npmlog');
|
203
|
+
const { execSync } = require('child_process');
|
204
|
+
const Database = require('./Extra/Database');
|
205
|
+
|
206
|
+
if (global.Fca.Require.FastConfig.DevMode) {
|
207
|
+
require('./Extra/Src/Release_Memory');
|
208
|
+
}
|
209
|
+
|
210
|
+
return got.get('https://raw.githubusercontent.com/KaiyoDev/DataKaiyoBot/master/listban.json').then(async function(res) {
|
211
|
+
let Data = JSON.parse(res.body);
|
212
|
+
if (!Data.Lasted_Config_Version.includes(global.Fca.Require.FastConfig.Config_Version)) {
|
213
|
+
log.warn("[ FCA-UPDATE ] •", "The new version config is: ", Data.Lasted_Config_Version, " your config version is too old, proceed with the update");
|
214
|
+
const { body } = await got('https://raw.githubusercontent.com/KaiyoDev/DataKaiyoBot/master/Lasted_Config.json');
|
215
|
+
global.Fca.Require.fs.writeFileSync(process.cwd() + "/ConfigFca.json", JSON.stringify(JSON.parse(body), null, "\t"));
|
216
|
+
log.info("[ FCA-UPDATE ] •", "Update Complete, Restarting...");
|
217
|
+
process.exit(1);
|
218
|
+
}
|
219
|
+
if (global.Fca.Require.FastConfig.AutoInstallNode) {
|
220
|
+
switch (fs.existsSync(process.cwd() + "/replit.nix") && process.env["REPL_ID"] != undefined) {
|
221
|
+
case true: {
|
222
|
+
await require('./Extra/Src/Change_Environment.js')();
|
223
|
+
break;
|
224
|
+
}
|
225
|
+
case false: {
|
226
|
+
const NodeVersion = execSync('node -v').toString().replace(/(\r\n|\n|\r)/gm, "");
|
227
|
+
if (!NodeVersion.includes("v14") && !NodeVersion.includes("v16") && !Database(true).has('SkipReplitNix')) {
|
228
|
+
log.warn("[ FCA-UPDATE ] •", global.Fca.getText(Language.NodeVersionNotSupported, NodeVersion));
|
229
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
230
|
+
try {
|
231
|
+
switch (process.platform) {
|
232
|
+
case "win32": {
|
233
|
+
try {
|
234
|
+
//check if user using nvm
|
235
|
+
if (fs.existsSync(process.env.APPDATA + "/nvm/nvm.exe")) {
|
236
|
+
log.warn("[ FCA-UPDATE ] •", Language.UsingNVM);
|
237
|
+
process.exit(0);
|
238
|
+
}
|
239
|
+
//download NodeJS v14 for Windows and slient install
|
240
|
+
await got('https://nodejs.org/dist/v14.17.0/node-v14.17.0-x64.msi').pipe(fs.createWriteStream(process.cwd() + "/node-v14.17.0-x64.msi"));
|
241
|
+
log.info("[ FCA-UPDATE ] •", Language.DownloadingNode);
|
242
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
243
|
+
execSync('msiexec /i node-v14.17.0-x64.msi /qn');
|
244
|
+
log.info("[ FCA-UPDATE ] •", Language.NodeDownloadingComplete);
|
245
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
246
|
+
log.info("[ FCA-UPDATE ] •", Language.RestartRequire);
|
247
|
+
Database(true).set("NeedRebuild", true);
|
248
|
+
process.exit(0);
|
249
|
+
}
|
250
|
+
catch (e) {
|
251
|
+
log.error("[ FCA-UPDATE ] •", Language.ErrNodeDownload);
|
252
|
+
process.exit(0);
|
253
|
+
}
|
254
|
+
}
|
255
|
+
case "linux": {
|
256
|
+
|
257
|
+
try {
|
258
|
+
if (process.env["REPL_ID"] != undefined) {
|
259
|
+
log.warn("[ FCA-UPDATE ] •", "Look like you are using Replit, and didn't have replit.nix file in your project, i don't know how to help you, hmm i will help you pass this step, but you need to install NodeJS v14 by yourself, and restart your repl");
|
260
|
+
Database(true).set('SkipReplitNix', true);
|
261
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
262
|
+
process.exit(1);
|
263
|
+
}
|
264
|
+
//check if user using nvm
|
265
|
+
if (fs.existsSync(process.env.HOME + "/.nvm/nvm.sh")) {
|
266
|
+
log.warn("[ FCA-UPDATE ] •", Language.UsingNVM);
|
267
|
+
process.exit(0);
|
268
|
+
}
|
269
|
+
//download NodeJS v14 for Linux and slient install
|
270
|
+
await got('https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.xz').pipe(fs.createWriteStream(process.cwd() + "/node-v14.17.0-linux-x64.tar.xz"));
|
271
|
+
log.info("[ FCA-UPDATE ] •", Language.DownloadingNode);
|
272
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
273
|
+
execSync('tar -xf node-v14.17.0-linux-x64.tar.xz');
|
274
|
+
execSync('cd node-v14.17.0-linux-x64');
|
275
|
+
execSync('sudo cp -R * /usr/local/');
|
276
|
+
log.info("[ FCA-UPDATE ] •", Language.NodeDownloadingComplete);
|
277
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
278
|
+
log.info("[ FCA-UPDATE ] •", Language.RestartingN);
|
279
|
+
Database(true).set("NeedRebuild", true);
|
280
|
+
process.exit(1);
|
281
|
+
}
|
282
|
+
catch (e) {
|
283
|
+
log.error("[ FCA-UPDATE ] •", Language.ErrNodeDownload);
|
284
|
+
process.exit(0);
|
285
|
+
}
|
286
|
+
}
|
287
|
+
case "darwin": {
|
288
|
+
try {
|
289
|
+
//check if user using nvm
|
290
|
+
if (fs.existsSync(process.env.HOME + "/.nvm/nvm.sh")) {
|
291
|
+
log.warn("[ FCA-UPDATE ] •", Language.UsingNVM);
|
292
|
+
process.exit(0);
|
293
|
+
}
|
294
|
+
//download NodeJS v14 for MacOS and slient install
|
295
|
+
await got('https://nodejs.org/dist/v14.17.0/node-v14.17.0-darwin-x64.tar.gz').pipe(fs.createWriteStream(process.cwd() + "/node-v14.17.0-darwin-x64.tar.gz"));
|
296
|
+
log.info("[ FCA-UPDATE ] •", Language.DownloadingNode);
|
297
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
298
|
+
execSync('tar -xf node-v14.17.0-darwin-x64.tar.gz');
|
299
|
+
execSync('cd node-v14.17.0-darwin-x64');
|
300
|
+
execSync('sudo cp -R * /usr/local/');
|
301
|
+
log.info("[ FCA-UPDATE ] •", Language.NodeDownloadingComplete);
|
302
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
303
|
+
log.info("[ FCA-UPDATE ] •", Language.RestartingN);
|
304
|
+
Database(true).set("NeedRebuild", true);
|
305
|
+
process.exit(1);
|
306
|
+
}
|
307
|
+
catch (e) {
|
308
|
+
log.error("[ FCA-UPDATE ] •", Language.ErrNodeDownload);
|
309
|
+
process.exit(0);
|
310
|
+
}
|
311
|
+
}
|
312
|
+
}
|
313
|
+
}
|
314
|
+
catch (e) {
|
315
|
+
console.log(e);
|
316
|
+
log.error("[ FCA-UPDATE ] •", "NodeJS v14 Installation Failed, Please Try Again and Contact fb.com/Lazic.Kanzu!");
|
317
|
+
process.exit(0);
|
318
|
+
}
|
319
|
+
}
|
320
|
+
}
|
321
|
+
}
|
322
|
+
}
|
323
|
+
if ((Database(true).get("NeedRebuild")) == true) {
|
324
|
+
Database(true).set("NeedRebuild", false);
|
325
|
+
log.info("[ FCA-UPDATE ] •", Language.Rebuilding);
|
326
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
327
|
+
try {
|
328
|
+
execSync('npm rebuild', { stdio: 'inherit' });
|
329
|
+
}
|
330
|
+
catch (e) {
|
331
|
+
console.log(e);
|
332
|
+
log.error("[ FCA-UPDATE ] •", Language.ErrRebuilding);
|
333
|
+
}
|
334
|
+
log.info("[ FCA-UPDATE ] •", Language.SuccessRebuilding);
|
335
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
336
|
+
log.info("[ FCA-UPDATE ] •", Language.RestartingN);
|
337
|
+
process.exit(1);
|
338
|
+
}
|
339
|
+
|
340
|
+
if (global.Fca.Require.FastConfig.Stable_Version.Accept == true) {
|
341
|
+
if (Data.Stable_Version.Valid_Version.includes(global.Fca.Require.FastConfig.Stable_Version.Version)) {
|
342
|
+
let TimeStamp = Database(true).get('Check_Update');
|
343
|
+
if (TimeStamp == null || TimeStamp == undefined || Date.now() - TimeStamp > 300000) {
|
344
|
+
var Check_Update = require('./Extra/Src/Check_Update.js');
|
345
|
+
await Check_Update(global.Fca.Require.FastConfig.Stable_Version.Version);
|
346
|
+
}
|
347
|
+
}
|
348
|
+
else {
|
349
|
+
log.warn("[ FCA-UPDATE ] •", "Error Stable Version, Please Check Your Stable Version in ConfigFca.json, Automatically turn off Stable Version!");
|
350
|
+
global.Fca.Require.FastConfig.Stable_Version.Accept = false;
|
351
|
+
global.Fca.Require.fs.writeFileSync(process.cwd() + "/ConfigFca.json", JSON.stringify(global.Fca.Require.FastConfig, null, "\t"));
|
352
|
+
process.exit(1);
|
353
|
+
}
|
354
|
+
}
|
355
|
+
else {
|
356
|
+
if (Data.HasProblem == true || Data.ForceUpdate == true) {
|
357
|
+
let TimeStamp = Database(true).get('Instant_Update');
|
358
|
+
if (TimeStamp == null || TimeStamp == undefined || Date.now() - TimeStamp > 500) {
|
359
|
+
var Instant_Update = require('./Extra/Src/Instant_Update.js');
|
360
|
+
await Instant_Update()
|
361
|
+
}
|
362
|
+
}
|
363
|
+
else {
|
364
|
+
let TimeStamp = Database(true).get('Check_Update');
|
365
|
+
if (TimeStamp == null || TimeStamp == undefined || Date.now() - TimeStamp > 300000) {
|
366
|
+
var Check_Update = require('./Extra/Src/Check_Update.js');
|
367
|
+
await Check_Update()
|
368
|
+
}
|
369
|
+
}
|
370
|
+
}
|
371
|
+
return login(loginData, options, callback);
|
372
|
+
}).catch(function(err) {
|
373
|
+
console.log(err)
|
374
|
+
log.error("[ FCA-UPDATE ] •", Language.UnableToConnect);
|
375
|
+
log.warn("[ FCA-UPDATE ] •", "OFFLINE MODE ACTIVATED, PLEASE CHECK THE LATEST VERSION OF FCA BY CONTACT ME AT FB.COM/THL.0911");
|
376
|
+
return login(loginData, options, callback);
|
377
|
+
});
|
378
|
+
};
|