fca-priyansh 15.0.0 → 17.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (74) hide show
  1. package/Extra/Balancer.js +49 -0
  2. package/Extra/Bypass/956/index.js +234 -0
  3. package/Extra/Bypass/test/aaaa.json +170 -0
  4. package/Extra/Bypass/test/index.js +188 -0
  5. package/Extra/Database/index.js +249 -140
  6. package/Extra/ExtraAddons.js +35 -33
  7. package/Extra/ExtraFindUID.js +3 -1
  8. package/Extra/ExtraGetThread.js +303 -56
  9. package/Extra/ExtraUptimeRobot.js +15 -3
  10. package/Extra/Html/Classic/script.js +3 -3
  11. package/Extra/Security/AES_256_GCM/index.js +0 -0
  12. package/Extra/Security/Base/Step_1.js +6 -0
  13. package/Extra/Security/Base/Step_2.js +22 -0
  14. package/Extra/Security/Base/Step_3.js +22 -0
  15. package/Extra/Security/Base/index.js +191 -0
  16. package/Extra/Security/Index.js +5 -146
  17. package/Extra/Security/Step_1.js +4 -9
  18. package/Extra/Security/Step_2.js +2 -0
  19. package/Extra/Security/Step_3.js +4 -2
  20. package/Extra/Src/Change_Environment.js +1 -1
  21. package/Extra/Src/Check_Update.js +67 -0
  22. package/Extra/Src/History.js +2 -2
  23. package/Extra/Src/Instant_Update.js +65 -0
  24. package/Extra/Src/Premium.js +35 -38
  25. package/Extra/Src/Release_Memory.js +160 -0
  26. package/Extra/Src/Websocket.js +213 -0
  27. package/Extra/Src/image/checkmate.jpg +0 -0
  28. package/Extra/Src/test.js +28 -0
  29. package/Extra/Src/uuid.js +1 -1
  30. package/Func/AcceptAgreement.js +4 -5
  31. package/Func/ClearCache.js +7 -7
  32. package/Func/ReportV1.js +5 -5
  33. package/LICENSE +1 -4
  34. package/Language/index.json +59 -8
  35. package/Main.js +1444 -0
  36. package/README.md +198 -1
  37. package/broadcast.js +43 -37
  38. package/index.js +305 -1709
  39. package/logger.js +4 -4
  40. package/package.json +16 -11
  41. package/src/Dev_Horizon_Data.js +3 -3
  42. package/src/Dev_getThreadInfoOLD.js +422 -0
  43. package/src/Dev_shareTest2.js +68 -0
  44. package/src/Dev_shareTest3.js +71 -0
  45. package/src/Premium.js +8 -13
  46. package/src/Screenshot.js +4 -6
  47. package/src/editMessage.js +53 -0
  48. package/src/getAccessToken.js +0 -4
  49. package/src/getFriendsList.js +1 -1
  50. package/src/getMessage.js +26 -3
  51. package/src/getThreadHistory.js +1 -1
  52. package/src/getThreadInfo.js +237 -161
  53. package/src/getThreadInfoOLD.js +422 -0
  54. package/src/getThreadMain.js +1 -1
  55. package/src/getUID.js +3 -3
  56. package/src/getUserInfo.js +56 -73
  57. package/src/getUserInfoMain.js +2 -2
  58. package/src/getUserInfoV2.js +0 -4
  59. package/src/getUserInfoV3.js +3 -3
  60. package/src/getUserInfoV4.js +5 -5
  61. package/src/getUserInfoV5.js +4 -4
  62. package/src/listenMqtt.js +905 -625
  63. package/src/listenMqttV1.js +846 -0
  64. package/src/sendMessage.js +54 -2
  65. package/src/sendMqttMessage.js +71 -0
  66. package/src/setPostReaction.js +3 -3
  67. package/src/shareContact.js +55 -0
  68. package/src/shareLink.js +58 -0
  69. package/src/unsendMessage.js +28 -20
  70. package/src/unsendMqttMessage.js +66 -0
  71. package/utils.js +1567 -138
  72. package/.gitattributes +0 -2
  73. package/gitattributes +0 -2
  74. package/gitignore.txt +0 -10
@@ -2,80 +2,77 @@ module.exports = async function(SessionID) {
2
2
  try {
3
3
  var userName,Text;
4
4
  var os = require('os');
5
- var Database = require("../../Extra/Database");
6
- var Fetch = global.Fca.Require.Fetch;
5
+ var Database = require("../Database");
7
6
  var { getAll,readyCreate,deleteAll } = require('../ExtraGetThread');
8
7
  if (process.env.REPL_OWNER != undefined) userName = process.env.REPL_OWNER;
9
8
  else if (os.hostname() != null || os.hostname() != undefined) userName = os.hostname();
10
9
  else userName = os.userInfo().username;
11
- if (await Database.has('UserName')) {
12
- if (await Database.get('UserName') != userName) {
13
- await Database.set('Premium', false);
14
- await Database.set('PremiumKey', '');
15
- await Database.set('UserName', userName);
10
+ if (Database(true).has('UserName')) {
11
+ if (Database(true).get('UserName') != userName) {
12
+ Database(true).set('Premium', false);
13
+ Database(true).set('PremiumKey', '');
14
+ Database(true).set('UserName', userName);
16
15
  }
17
16
  }
18
- if (await Database.has('PremiumKey') && await Database.get('PremiumKey') != '' && await Database.has('Premium') && await Database.get('Premium') == true) {
17
+ if (Database(true).has('PremiumKey') && Database(true).get('PremiumKey') != '' && Database(true).has('Premium') && Database(true).get('Premium') == true) {
19
18
  try {
20
- await Database.set('Premium', true);
21
- await Database.set('PremiumKey', String(global.Fca.Require.Priyansh.PreKey));
22
- await Database.set('UserName', userName);
19
+ Database(true).set('Premium', true);
20
+ Database(true).set('PremiumKey', String(global.Fca.Require.Priyansh.PreKey));
21
+ Database(true).set('UserName', userName);
23
22
  process.env.HalzionVersion = 1973
24
- Text = "You Are Wrong Version: Premium Access";
23
+ Text = "Bạn Đang Sài Phiên Bản: Premium Access";
25
24
  }
26
25
  catch (error) {
27
- Text = "Connection errors";
26
+ Text = "Lỗi Kết Nối";
28
27
  }
29
28
  } else if (global.Fca.Require.Priyansh.PreKey) {
30
29
  try {
31
- await Database.set('Premium', true);
32
- await Database.set('PremiumKey', String(global.Fca.Require.Priyansh.PreKey));
33
- await Database.set('UserName', userName);
30
+ Database(true).set('Premium', true);
31
+ Database(true).set('PremiumKey', String(global.Fca.Require.Priyansh.PreKey));
32
+ Database(true).set('UserName', userName);
34
33
  process.env.HalzionVersion = 1973
35
- Text = "You Are Wrong Version: Premium Access";
34
+ Text = "Bạn Đang Sài Phiên Bản: Premium Access";
36
35
  }
37
36
  catch (error) {
38
- Text = "Connection errors";
37
+ Text = "Lỗi Kết Nối";
39
38
  }
40
39
  }
41
40
  else if (!global.Fca.Require.Priyansh.PreKey) {
42
41
  try {
43
- await Database.set('Premium', true);
44
- await Database.set('PremiumKey', String(global.Fca.Require.Priyansh.PreKey));
45
- await Database.set('UserName', userName);
42
+ Database(true).set('Premium', true);
43
+ Database(true).set('PremiumKey', String(global.Fca.Require.Priyansh.PreKey));
44
+ Database(true).set('UserName', userName);
46
45
  process.env.HalzionVersion = 1973
47
- Text = "You Are Wrong Version: Premium Access";
46
+ Text = "Bạn Đang Sài Phiên Bản: Premium Access";
48
47
  }
49
48
  catch (error) {
50
- Text = "Connection errors";
49
+ Text = "Lỗi Kết Nối";
51
50
  }
52
51
  }
53
52
  } catch (e) {
54
53
  try {
55
- await Database.set('Premium', true);
56
- await Database.set('PremiumKey', String(global.Fca.Require.Priyansh.PreKey));
57
- await Database.set('UserName', userName);
54
+ Database(true).set('Premium', true);
55
+ Database(true).set('PremiumKey', String(global.Fca.Require.Priyansh.PreKey));
56
+ Database(true).set('UserName', userName);
58
57
  process.env.HalzionVersion = 1973
59
- Text = "You Are Wrong Version: Premium Access";
58
+ Text = "Bạn Đang Sài Phiên Bản: Premium Access";
60
59
  }
61
60
  catch (error) {
62
- Text = "Connection errors";
61
+ Text = "Lỗi Kết Nối";
63
62
  }
64
63
  }
65
64
  if (process.env.HalzionVersion == 1973) {
66
65
  try {
67
66
  let data = [];
68
- var getAll = await getAll()
69
- if (getAll.length == 1) {
70
- return;
71
- } else if (getAll.length > 1) {
72
- for (let i of getAll) {
73
- if (i.data.messageCount != undefined) {
74
- data.push(i.data.threadID);
75
- } else continue;
67
+ var getAll = await getAll();
68
+ if (getAll.length > 1) {
69
+ getAll.forEach((i) => {
70
+ if (i.data.messageCount !== undefined) {
71
+ data.push(i.data.threadID);
76
72
  }
77
- deleteAll(data);
78
- }
73
+ });
74
+ deleteAll(data);
75
+ }
79
76
  } catch (e) {
80
77
  console.log(e);
81
78
  }
@@ -0,0 +1,160 @@
1
+ /* eslint-disable linebreak-style */
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+ const v8 = require('v8');
5
+ const EventEmitter = require('events');
6
+
7
+ class MemoryManager extends EventEmitter {
8
+ constructor(options = {}) {
9
+ super();
10
+ this.thresholds = {
11
+ warning: options.warningThreshold || 0.7,
12
+ release: options.releaseThreshold || 0.8,
13
+ max: options.maxThreshold || 0.9,
14
+ };
15
+ this.interval = options.interval || 5000;
16
+ this.logLevel = options.logLevel || 'info';
17
+ this.logFile = options.logFile || path.join(__dirname, 'memory.log');
18
+ this.allowLog = options.allowLog || true;
19
+ this.weakRefs = new WeakMap();
20
+ this.smartReleaseEnabled = options.smartReleaseEnabled || false;
21
+ this.memoryUsageHistory = [];
22
+ }
23
+
24
+ start() {
25
+ this.intervalId = setInterval(() => {
26
+ const memoryUsage = this.getMemoryUsage();
27
+ this.logMemoryUsage(memoryUsage);
28
+
29
+ if (memoryUsage > this.thresholds.warning) {
30
+ this.emit('memoryWarning', memoryUsage);
31
+ }
32
+
33
+ if (memoryUsage > this.thresholds.release) {
34
+ this.releaseMemory(memoryUsage);
35
+ }
36
+
37
+ if (memoryUsage > this.thresholds.max) {
38
+ this.emit('memoryMax', memoryUsage);
39
+ }
40
+
41
+ if (this.smartReleaseEnabled) {
42
+ this.memoryUsageHistory.push(memoryUsage);
43
+ this.smartRelease();
44
+ }
45
+ }, this.interval);
46
+ }
47
+
48
+ stop() {
49
+ clearInterval(this.intervalId);
50
+ }
51
+
52
+ getMemoryUsage() {
53
+ const heapStats = v8.getHeapStatistics();
54
+ const totalHeapSize = heapStats.total_available_size / 1024 / 1024;
55
+ const usedHeapSize = heapStats.used_heap_size / 1024 / 1024;
56
+ return usedHeapSize / totalHeapSize;
57
+ }
58
+
59
+ releaseMemory(memoryUsage) {
60
+ if (global.gc) {
61
+ global.gc();
62
+ } else {
63
+ v8.setFlagsFromString('--expose_gc');
64
+ const vm = require('vm');
65
+ vm.runInNewContext('gc')();
66
+ }
67
+ this.emit('memoryReleased', memoryUsage);
68
+ }
69
+
70
+ logMemoryUsage(memoryUsage) {
71
+ const timestamp = new Date().toLocaleString("vi-vn", {timeZone: "Asia/Ho_Chi_Minh"});
72
+ const logMessage = `${timestamp} - Memory usage: ${(memoryUsage * 100).toFixed(2)}%`;
73
+
74
+ switch (this.logLevel) {
75
+ case 'debug':
76
+ console.debug(logMessage);
77
+ break;
78
+ case 'info':
79
+ global.Fca.Require.logger.Info(logMessage);
80
+ break;
81
+ case 'warn':
82
+ global.Fca.Require.logger.Normal(logMessage);
83
+ break;
84
+ case 'error':
85
+ global.Fca.Require.logger.Error(logMessage);
86
+ break;
87
+ default:
88
+ global.Fca.Require.logger.Normal(logMessage);
89
+ }
90
+ if (this.allowLog) {
91
+ fs.appendFile(this.logFile, `${logMessage}\n`, (err) => {
92
+ if (err) throw err;
93
+ });
94
+ }
95
+ }
96
+
97
+ onMaxMemory(callback) {
98
+ this.on('memoryMax', callback);
99
+ }
100
+
101
+ addMemoryUsageListener(callback) {
102
+ this.on('memoryWarning', callback);
103
+ this.on('memoryReleased', callback);
104
+ this.on('memoryMax', callback);
105
+ }
106
+
107
+ removeMemoryUsageListener(callback) {
108
+ this.off('memoryWarning', callback);
109
+ this.off('memoryReleased', callback);
110
+ this.off('memoryMax', callback);
111
+ }
112
+
113
+ addThreshold(type, value) {
114
+ if (type === 'warning' || type === 'release' || type === 'max') {
115
+ this.thresholds[type] = value;
116
+ } else {
117
+ throw new Error('Invalid threshold type');
118
+ }
119
+ }
120
+
121
+ removeThreshold(type) {
122
+ if (type === 'warning' || type === 'release' || type === 'max') {
123
+ delete this.thresholds[type];
124
+ } else {
125
+ throw new Error('Invalid threshold type');
126
+ }
127
+ }
128
+
129
+ smartRelease() {
130
+ const memoryUsageHistory = this.memoryUsageHistory.slice(-100);
131
+ const averageUsage = memoryUsageHistory.reduce((sum, usage) => sum + usage, 0) / memoryUsageHistory.length;
132
+ const maxUsage = Math.max(...memoryUsageHistory);
133
+
134
+ if (averageUsage > this.thresholds.release && maxUsage > this.thresholds.max) {
135
+ this.releaseMemory(maxUsage);
136
+ }
137
+ }
138
+
139
+ autoStart(interval) { //1h
140
+ this.stopMemoryManager();
141
+ this.startMemoryManager();
142
+ this.autoStartInterval = setInterval(() => {
143
+ this.stopMemoryManager();
144
+ this.startMemoryManager();
145
+ }, interval);
146
+ }
147
+
148
+ stopMemoryManager() {
149
+ this.stop();
150
+ clearInterval(this.intervalId);
151
+ clearInterval(this.autoStartInterval);
152
+ }
153
+
154
+ startMemoryManager() {
155
+ this.start();
156
+ }
157
+
158
+ }
159
+
160
+ module.exports = MemoryManager;
@@ -0,0 +1,213 @@
1
+ /* eslint-disable no-prototype-builtins */
2
+ /* eslint-disable linebreak-style */
3
+ /**
4
+ const Eval = require('eval');
5
+ const Database = require('../Database');
6
+ global.ws = new Object({
7
+ client: {},
8
+ });
9
+ const All_Session_ID = Database().get('Session_ID') || []; [ { Session_ID: ".", TimeStamp: "" }]
10
+ for (let v of All_Session_ID) {
11
+ if (v.TimeStamp <= Date.now()) {
12
+ const index = All_Session_ID.findIndex(i => i.Session_ID == v.Session_ID);
13
+ All_Session_ID.splice(index,1);
14
+ }
15
+ else {
16
+ setTimeout(() => {
17
+ const index = All_Session_ID.findIndex(i => i.Session_ID == v.Session_ID);
18
+ All_Session_ID.splice(index,1);
19
+ }, v.TimeStamp - Date.now());
20
+ }
21
+ }
22
+
23
+ Database().set("Session_ID", All_Session_ID);
24
+
25
+ function generateRandomString() {
26
+ var string = '';
27
+ var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
28
+ for (var i = 0; i < 16; i++) {
29
+ if (i == 4 || i == 8 || i == 12) {
30
+ string += '-';
31
+ }
32
+ var randomIndex = Math.floor(Math.random() * characters.length);
33
+ string += characters.charAt(randomIndex);
34
+ }
35
+ return string;
36
+ }
37
+
38
+ const HowTo = {
39
+ AutoUpdate: "Automatically update if there is a new version. (Restart required)",
40
+ AutoLogin: "Automatically login and retrieve cookies to continue running the bot whenever kicked out of the account. (Restart required)",
41
+ Login2Fa: "Use two-factor authentication code to log in. (Restart required)",
42
+ Uptime: "Help your process to operate for a longer period of time.(Restart required)",
43
+ BroadCast: "Receive messages from the server.(Restart required)",
44
+ EncryptFeature: "Encrypt your account (appstate) to prevent it from being accessed or damaged by others.(Restart required)",
45
+ ResetDataLogin: "Used to reset autologin account and password.(Restart required)",
46
+ DevMode: "Developer mode, insider, testing untested features.(Restart required)",
47
+ AutoInstallNode: "Automatically download NodeJS version as per system's requirement.(Restart required)",
48
+ AntiSendAppState: "Check and prevent sending your account (appstate) via messages.",
49
+ HTML: "Display the website of FCA.(Restart required)",
50
+ Accept: "Is a part of stable_version, turned on to use a stable version without errors! (Restart required)",
51
+ AntiGetThreadInfo: "Using data storage and release algorithms to avoid being blocked by Facebook.",
52
+ AntiGetUserInfo: "Using data storage and release algorithms to avoid being blocked by Facebook.",
53
+ Status: "Turn on/off the websocket-extension feature. (Restart required)",
54
+ Language: "Select system language (Restart required)",
55
+ MainName: "Name on the top whenever log data. (Restart required)",
56
+ UserName: "Your name display in Express - HTML. (Restart required)",
57
+ MusicLink: "Your music link. (Restart required)",
58
+ AuthString: "Code to retrieve 2FA authenticator. (Restart required)",
59
+ PreKey: "Obsolete feature.",
60
+ Config: "Feature is delayed.",
61
+ Version: "stable version - Stable_Version Feature. (Restart required)",
62
+ Database_Type: "Type of database. (Restart required)",
63
+ AppState_Path: "Name of the file containing your appstate.",
64
+ AutoRestartMinutes: "Auto-restart after a certain number of minutes. (Restart required)",
65
+ RestartMQTT_Minutes: "Automatically restarting MQTT without restarting the bot helps prevent console hangups. (Restart required)",
66
+ Example: {
67
+ Language: "vi or en",
68
+ AuthString: "Like this SD4S XQ32 O2JA WXB3 FUX2 OPJ7 Q7JZ 4R6Z | https://i.imgur.com/RAg3rvw.png",
69
+ Version: "Valid version: https://github.com/KanzuXHorizon/Global_Horizon/blob/main/InstantAction.json",
70
+ Database_Type: "default or json",
71
+ AppState_Path: "fbstate.json, appstate.json,...",
72
+ AutoRestartMinutes: "Number 0 to turn off, Encourage number 60",
73
+ RestartMQTT_Minutes: "Number 0 to turn off, Encourage number 45"
74
+
75
+ }
76
+ };
77
+
78
+ module.exports.connect = function(WebSocket) {
79
+ WebSocket.on('connection', function (Websocket, req) {
80
+ var Ws_Client;
81
+ if (!global.ws.client.hasOwnProperty(req.socket.remoteAddress)) {
82
+ global.ws.client[req.socket.remoteAddress] = { Websocket, Status: false, ResetPassWordTime: 0 };
83
+ Ws_Client = global.ws.client[req.socket.remoteAddress];
84
+ }
85
+ else {
86
+ global.ws.client[req.socket.remoteAddress] = { Websocket, Status: global.ws.client[req.socket.remoteAddress].Status, ResetPassWordTime: global.ws.client[req.socket.remoteAddress].ResetPassWordTime };
87
+ Ws_Client = global.ws.client[req.socket.remoteAddress];
88
+ }
89
+ Ws_Client.Websocket.send(JSON.stringify({ Status: "Username&PassWord"}));
90
+ Ws_Client.Websocket.on('message', function(message) {
91
+ message = JSON.parse(message);
92
+ switch (message.type) {
93
+ case "login": {
94
+ if (!message.username || !message.password) return Ws_Client.Websocket.send(JSON.stringify({ Status: false, Code: 1 }));
95
+ const User_UserName = Database().get('Ws_UserName');
96
+ const User_PassWord = Database().get('Ws_PassWord');
97
+ if (message.username != User_UserName || User_PassWord != message.password) return Ws_Client.Websocket.send(JSON.stringify({ Status: false, Code: 2}));
98
+ const Format = {
99
+ Session_ID: generateRandomString(),
100
+ TimeStamp: Date.now() + 24 * 60 * 60 * 1000
101
+ };
102
+ All_Session_ID.push(Format);
103
+ Database().set("Session_ID", All_Session_ID);
104
+ global.ws.client[req.socket.remoteAddress].Status = true;
105
+ setTimeout(() => {
106
+ global.ws.client[req.socket.remoteAddress].Status = false;
107
+ }, (Date.now() + 24 * 60 * 60 * 1000) - Date.now());
108
+ return Ws_Client.Websocket.send(JSON.stringify({ Status: "Success", Session_ID: Format.Session_ID, TimeStamp: Format.TimeStamp }));
109
+ }
110
+ case "check": {
111
+ if (!message.Session_ID || !message.TimeStamp) return Ws_Client.Websocket.send(JSON.stringify({ Status: false, Code: 3}));
112
+ const Format = {
113
+ Session_ID: message.Session_ID,
114
+ TimeStamp: message.TimeStamp
115
+ };
116
+ if (Format.TimeStamp <= Date.now()) {
117
+ let index = All_Session_ID.findIndex(i => i.Session_ID == Format.Session_ID);
118
+ All_Session_ID.splice(index,1);
119
+ Database().set("Session_ID", All_Session_ID);
120
+ Ws_Client.Status = false;
121
+ Ws_Client.Websocket.send(JSON.stringify({ Status: false, Code: 4}));
122
+ return delete global.ws.client[Format.Session_ID];
123
+ }
124
+ if (All_Session_ID.some(i => i.Session_ID == message.Session_ID)) {
125
+ global.ws.client[req.socket.remoteAddress].Status = true;
126
+ return Ws_Client.Websocket.send(JSON.stringify({ Status: "Success" }));
127
+ }
128
+ else {
129
+ global.ws.client[req.socket.remoteAddress].Status = false;
130
+ return Ws_Client.Websocket.send(JSON.stringify({ Status: false, Code: 5 }));
131
+ }
132
+ }
133
+ case "resetPassword": {
134
+ if (!message.Otp || !message.NewPassword) return Ws_Client.Websocket.send(JSON.stringify({ Status: false, Code: 7 }));
135
+ if (global.ws.client[req.socket.remoteAddress].ResetPassWordTime == 3) return Ws_Client.Websocket.send(JSON.stringify({ Status: false, Code: 9 }));
136
+ const speakeasy = require('speakeasy');
137
+ const secret = Database().get('Ws_2Fa');
138
+ if (message.Otp != speakeasy.totp({
139
+ secret: secret,
140
+ encoding: 'base32'
141
+ })) {
142
+ global.ws.client[req.socket.remoteAddress].ResetPassWordTime += 1;
143
+ return Ws_Client.Websocket.send(JSON.stringify({ Status: false, Code: 8 }));
144
+ }
145
+ else {
146
+ Database().set('Ws_PassWord', message.NewPassword);
147
+ return Ws_Client.Websocket.send(JSON.stringify({ Status: 'Success' }));
148
+ }
149
+ }
150
+ default: {
151
+ if (Ws_Client.Status != true) return Ws_Client.Websocket.send(JSON.stringify({ Status: false, Code: 6 }));
152
+ switch (message.type) {
153
+ case "Command": {
154
+ if (message.Data == "Stop") {
155
+ return process.exit(0);
156
+ }
157
+ else Eval(message.Data, {} ,true);
158
+ }
159
+ break;
160
+ case "ChangeAppState": {
161
+ try {
162
+ const AppState = JSON.stringify(JSON.parse(message.Data), null ,2);
163
+ require('fs').writeFileSync(process.cwd() + `/${global.Fca.Require.FastConfig.Websocket_Extension.AppState_Path}`, AppState, 'utf-8');
164
+ return Ws_Client.Websocket.send(JSON.stringify({ Type: "ChangeAppState", Data: 0 }));
165
+ }
166
+ catch (e) {
167
+ return Ws_Client.Websocket.send(JSON.stringify({ Type: "ChangeAppState", Data: e }));
168
+ }
169
+ }
170
+ case "GetDocument": {
171
+
172
+ return Ws_Client.Websocket.send(JSON.stringify({ Status: "Success", Data: HowTo }));
173
+ }
174
+ case "getFastConfig": {
175
+ return Ws_Client.Websocket.send(JSON.stringify({ Status: "Success", Data: global.Fca.Require.FastConfig }));
176
+ }
177
+ case "ping": {
178
+ return Ws_Client.Websocket.send(JSON.stringify({ Status: "Pong" }));
179
+ }
180
+ case "FastConfig_Change": {
181
+ const FastConfig_Path = require(process.cwd() + "/FastConfigFca.json");
182
+ const FastConfig_Global = global.Fca.Require.FastConfig;
183
+ const SetConfig = function(Name, Value, Path, Main_Path) {
184
+ try {
185
+ if (Path && Main_Path) {
186
+ FastConfig_Path[Main_Path][Name] = Value;
187
+ (HowTo[Name]).includes('(Restart required)') == false ? global.Fca.Require.FastConfig = FastConfig_Path : '';
188
+ }
189
+ else {
190
+ FastConfig_Path[Name] = Value;
191
+ (HowTo[Name]).includes('(Restart required)') == false ? global.Fca.Require.FastConfig[Name] = Value : '';
192
+ }
193
+ global.Fca.Require.fs.writeFileSync(process.cwd() + "/FastConfigFca.json", JSON.stringify(FastConfig_Path, null, "\t"));
194
+ return Ws_Client.Websocket.send(JSON.stringify({ Type: 'Noti', Action: `Success ${ (HowTo[Name]).includes('(Restart required)') == true ? 'RestartRequired' : ''}` }));
195
+ }
196
+ catch (e) {
197
+ global.Fca.Require.fs.writeFileSync(process.cwd() + "/FastConfigFca.json", JSON.stringify(FastConfig_Global, null, "\t"));
198
+ return Ws_Client.Websocket.send(JSON.stringify({ Type: 'Noti', Action: e}));
199
+ }
200
+ };
201
+ return SetConfig(message.Data.Name, message.Data.Value, message.Data.Path, message.Data.Main_Path);
202
+ }
203
+ case "All_logs": {
204
+ return Ws_Client.Websocket.send(JSON.stringify({ Type: "Console", Data: console.history.join(" <br> ")}));
205
+ }
206
+ }
207
+ }
208
+ }
209
+ });
210
+ });
211
+ return { Client: global.ws.client, WSS: WebSocket };
212
+ };
213
+ */
Binary file
@@ -0,0 +1,28 @@
1
+ const MemoryManager = require('./Release_Memory');
2
+ const path = require('path');
3
+
4
+ // Tạo một đối tượng MemoryManager với các tùy chọn cấu hình tối ưu
5
+ const memoryManager = new MemoryManager({
6
+ warningThreshold: 0.6, // Ngưỡng cảnh báo sử dụng bộ nhớ (60%)
7
+ releaseThreshold: 0.7, // Ngưỡng giải phóng bộ nhớ (70%)
8
+ maxThreshold: 0.8, // Ngưỡng tối đa sử dụng bộ nhớ (80%)
9
+ interval: 30000, // Khoảng thời gian kiểm tra bộ nhớ (30 giây)
10
+ logLevel: 'warn', // Chỉ ghi nhật ký khi có cảnh báo hoặc lỗi
11
+ logFile: path.join(__dirname, 'memory.log'), // Tệp nhật ký
12
+ smartReleaseEnabled: true, // Bật tính năng giải phóng bộ nhớ thông minh
13
+ });
14
+
15
+ memoryManager.addMemoryUsageListener((memoryUsage) => {
16
+ console.log(`Memory released: ${(memoryUsage * 100).toFixed(2)}%`);
17
+ });
18
+
19
+
20
+ // Bắt đầu quá trình quản lý bộ nhớ tự động
21
+ memoryManager.autoStart(3600000); // 1 giờ
22
+
23
+
24
+ // Lưu trữ dữ liệu quan trọng trong WeakMap
25
+ const importantData = { sensitive: 'data' };
26
+ memoryManager.weakRefs.set('aaaaaaaaa', importantData);
27
+
28
+ console.log(memoryManager.weakRefs.get('aaaaaaaaa'))
package/Extra/Src/uuid.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Credit: @chronosis | Github: https://github.com/chronosis/uuid-apikey/
3
- * Description: Update Package to réolve Deprecated from package "uuid"
3
+ * Description: Update Package to resolve Deprecated from package "uuid"
4
4
  */
5
5
  // index.js
6
6
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  var utils = require("../utils");
4
4
  var log = require("npmlog");
5
-
5
+ var database = require('../Extra/Database');
6
6
  module.exports = function (defaultFuncs, api, ctx) {
7
7
  return function (args,callback) {
8
8
  var resolveFunc = function () { };
@@ -18,15 +18,14 @@ module.exports = function (defaultFuncs, api, ctx) {
18
18
  resolveFunc(data);
19
19
  };
20
20
  }
21
- var Database = require('synthetic-horizon-database');
22
- if (Database.get('agreement', {}, true) == true) {
21
+ if (database(true).get('agreement') == true) {
23
22
  callback(null, "Accecpt");
24
23
  }
25
24
  else {
26
- Database.set('agreement', true,true);
25
+ database(true).set('agreement', true);
27
26
  var Form = "=== Horizon end-user license agreement ===\n\n Free to use and edited ✨";
28
27
  callback(null, Form);
29
28
  }
30
29
  return returnPromise;
31
- }
30
+ };
32
31
  };
@@ -9,12 +9,12 @@ module.exports = function (defaultFuncs, api, ctx) {
9
9
  let New1 = [];
10
10
  if (!Args.New || utils.getType(Args.New) !== "Array") {
11
11
  New1 = Recommend;
12
- log.Normal("No Adding, Proceed to Use According to the Designated System !");
12
+ log.Normal("Không Adding Thêm, Tiến Hành Sử Dụng Theo Hệ Thống Chỉ Định !");
13
13
  }
14
14
  else {
15
15
  for (let i = 0; i < Args.New.length; i++) {
16
16
  if (Object.indexOf(Args.New[i]) === -1) {
17
- log.Normal('File not found ' + Args.New[i] + ' in the format list');
17
+ log.Normal('Không tìm thấy file ' + Args.New[i] + ' trong danh sách định dạng');
18
18
  return;
19
19
  }
20
20
  New1.push(Args.New[i]);
@@ -36,12 +36,12 @@ module.exports = function (defaultFuncs, api, ctx) {
36
36
  switch (process.platform) {
37
37
  case 'linux': {
38
38
  for (let i = 0; i < New1.length; i++) {
39
- log.Normal('Clearing File Type ' + New1[i]);
39
+ log.Normal('Đang Clear Loại File ' + New1[i]);
40
40
  var STR = String(`find ./modules -type f -iname \'*.${New1[i]}\' -exec rm {} \\;`);
41
41
  execSync(STR);
42
42
  }
43
- log.Normal('Success Clear ' + New1.length + ' File type !');
44
- callback(null, 'Success Clear ' + New1.length + ' File type !');
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
45
  }
46
46
  break;
47
47
  case "win32": {
@@ -51,8 +51,8 @@ module.exports = function (defaultFuncs, api, ctx) {
51
51
  let STR = String(cmd + '.\\modules\\*.' + New1[i] + '"');
52
52
  execSync(STR, { stdio: 'inherit' });
53
53
  }
54
- log.Normal('Success Clear ' + New1.length + ' File type !');
55
- callback(null, 'Success Clear ' + New1.length + ' File type !');
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
56
  }
57
57
  break;
58
58
  default: {
package/Func/ReportV1.js CHANGED
@@ -6,9 +6,9 @@ var log = require("npmlog");
6
6
  module.exports = function (defaultFuncs, api, ctx) {
7
7
  return function (args,callback) {
8
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("Enter args.Link, api.Premium.ReportV1(Link,RealName,Content,Gmail,Time,callback)");
10
- if (!args.RealName) throw new Error("Enter RealName, api.Premium.ReportV1(Link,RealName,Content,Time,Gmail,callback)");
11
- if (!args.Gmail) throw new Error("Enter Gmail, api.Premium.ReportV1(Link,RealName,Content,Gmail,Time,callback)");
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
12
  var resolveFunc = function () { };
13
13
  var rejectFunc = function () { };
14
14
  var returnPromise = new Promise(function (resolve, reject) {
@@ -42,10 +42,10 @@ module.exports = function (defaultFuncs, api, ctx) {
42
42
  .then(utils.parseAndCheckLogin(ctx, defaultFuncs))
43
43
  .then(async function(dt) {
44
44
  if (dt.__ar == 1) {
45
- callback(null, "Success");
45
+ callback(null, "Thành Công");
46
46
  }
47
47
  else {
48
- callback(null, "Failure");
48
+ callback(null, "Thất Bại");
49
49
  }
50
50
  });
51
51
  })
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023 Nguyễn Thái Hảo
3
+ Copyright (c) 2024 Priyanshu Rajput
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -9,9 +9,6 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
9
  copies of the Software, and to permit persons to whom the Software is
10
10
  furnished to do so, subject to the following conditions:
11
11
 
12
- DO NOT: - re-up this package without agreement from the author. if you do, you will have your name in Globalban
13
- - And More Thing.
14
-
15
12
  The above copyright notice and this permission notice shall be included in all
16
13
  copies or substantial portions of the Software.
17
14