fca-smart-shankar 13.0.0 → 16.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.
Files changed (169) hide show
  1. package/.cache/replit/env/latest +56 -0
  2. package/.cache/replit/env/latest.json +1 -0
  3. package/.cache/replit/modules/nodejs-14.res +1 -0
  4. package/.cache/replit/modules/replit.res +1 -0
  5. package/.cache/replit/modules/web.res +1 -0
  6. package/.cache/replit/modules.stamp +0 -0
  7. package/.cache/typescript/5.5/package.json +1 -0
  8. package/.config/configstore/update-notifier-npm.json +4 -0
  9. package/.gitattributes +2 -0
  10. package/.replit +3 -12
  11. package/.upm/store.json +1 -1
  12. package/Extra/Balancer.js +49 -0
  13. package/Extra/Bypass/956/index.js +234 -0
  14. package/Extra/Bypass/test/aaaa.json +170 -0
  15. package/Extra/Bypass/test/index.js +188 -0
  16. package/Extra/Database/index.js +469 -0
  17. package/Extra/ExtraAddons.js +82 -0
  18. package/Extra/ExtraFindUID.js +62 -0
  19. package/Extra/ExtraGetThread.js +365 -0
  20. package/Extra/ExtraScreenShot.js +430 -0
  21. package/Extra/ExtraUptimeRobot.js +38 -0
  22. package/Extra/Html/Classic/script.js +119 -0
  23. package/Extra/Html/Classic/style.css +8 -0
  24. package/Extra/Security/AES_256_GCM/index.js +0 -0
  25. package/Extra/Security/Base/Step_1.js +6 -0
  26. package/Extra/Security/Base/Step_2.js +22 -0
  27. package/Extra/Security/Base/Step_3.js +22 -0
  28. package/Extra/Security/Base/index.js +191 -0
  29. package/Extra/Security/Index.js +5 -0
  30. package/Extra/Security/Step_1.js +6 -0
  31. package/Extra/Security/Step_2.js +22 -0
  32. package/Extra/Security/Step_3.js +22 -0
  33. package/Extra/Src/Change_Environment.js +24 -0
  34. package/Extra/Src/Check_Update.js +67 -0
  35. package/Extra/Src/History.js +115 -0
  36. package/Extra/Src/Instant_Update.js +65 -0
  37. package/Extra/Src/Last-Run.js +65 -0
  38. package/Extra/Src/Premium.js +81 -0
  39. package/Extra/Src/Release_Memory.js +160 -0
  40. package/Extra/Src/Websocket.js +213 -0
  41. package/Extra/Src/image/checkmate.jpg +0 -0
  42. package/Extra/Src/test.js +28 -0
  43. package/Extra/Src/uuid.js +137 -0
  44. package/Func/AcceptAgreement.js +31 -0
  45. package/Func/ClearCache.js +64 -0
  46. package/Func/ReportV1.js +54 -0
  47. package/LICENSE +678 -0
  48. package/Language/index.json +228 -0
  49. package/Main.js +1444 -0
  50. package/README.md +30 -175
  51. package/SECURITY.md +18 -0
  52. package/broadcast.js +44 -0
  53. package/index.js +414 -511
  54. package/logger.js +66 -0
  55. package/package.json +85 -370
  56. package/src/Dev_Horizon_Data.js +125 -0
  57. package/src/Dev_getThreadInfoOLD.js +422 -0
  58. package/src/Dev_shareTest2.js +68 -0
  59. package/src/Dev_shareTest3.js +71 -0
  60. package/src/Premium.js +25 -0
  61. package/src/Screenshot.js +83 -0
  62. package/src/addExternalModule.js +5 -14
  63. package/src/addUserToGroup.js +20 -56
  64. package/src/changeAdminStatus.js +20 -44
  65. package/src/changeArchivedStatus.js +11 -25
  66. package/src/{changeAvatarV2.js → changeAvt.js} +2 -3
  67. package/src/changeBio.js +15 -26
  68. package/src/changeBlockedStatus.js +8 -21
  69. package/src/changeGroupImage.js +24 -53
  70. package/src/changeNickname.js +13 -27
  71. package/src/changeThreadColor.js +19 -22
  72. package/src/changeThreadEmoji.js +11 -24
  73. package/src/createNewGroup.js +20 -38
  74. package/src/createPoll.js +16 -27
  75. package/src/deleteMessage.js +13 -24
  76. package/src/deleteThread.js +12 -25
  77. package/src/editMessage.js +53 -71
  78. package/src/forwardAttachment.js +15 -27
  79. package/src/getAccessToken.js +28 -0
  80. package/src/getCurrentUserID.js +1 -1
  81. package/src/getEmojiUrl.js +8 -10
  82. package/src/getFriendsList.js +15 -25
  83. package/src/getMessage.js +81 -813
  84. package/src/getThreadHistory.js +98 -241
  85. package/src/getThreadInfo.js +287 -90
  86. package/src/getThreadInfoOLD.js +422 -0
  87. package/src/getThreadList.js +157 -214
  88. package/src/getThreadMain.js +220 -0
  89. package/src/getThreadPictures.js +19 -39
  90. package/src/getUID.js +50 -113
  91. package/src/getUserID.js +14 -18
  92. package/src/getUserInfo.js +71 -65
  93. package/src/getUserInfoMain.js +65 -0
  94. package/src/getUserInfoV2.js +32 -0
  95. package/src/getUserInfoV3.js +63 -0
  96. package/src/getUserInfoV4.js +55 -0
  97. package/src/getUserInfoV5.js +61 -0
  98. package/src/handleFriendRequest.js +13 -24
  99. package/src/handleMessageRequest.js +20 -36
  100. package/src/httpGet.js +18 -34
  101. package/src/httpPost.js +18 -35
  102. package/src/httpPostFormData.js +24 -53
  103. package/src/listenMqtt.js +944 -680
  104. package/src/listenMqttV1.js +846 -0
  105. package/src/logout.js +15 -22
  106. package/src/markAsDelivered.js +15 -25
  107. package/src/markAsRead.js +27 -45
  108. package/src/markAsReadAll.js +14 -21
  109. package/src/markAsSeen.js +18 -28
  110. package/src/muteThread.js +12 -17
  111. package/src/removeUserFromGroup.js +17 -47
  112. package/src/resolvePhotoUrl.js +13 -21
  113. package/src/searchForThread.js +13 -23
  114. package/src/sendMessage.js +117 -178
  115. package/src/sendMqttMessage.js +71 -0
  116. package/src/sendTypingIndicator.js +16 -46
  117. package/src/setMessageReaction.js +20 -33
  118. package/src/setPostReaction.js +95 -105
  119. package/src/setTitle.js +18 -34
  120. package/src/shareContact.js +37 -92
  121. package/src/shareLink.js +4 -5
  122. package/src/threadColors.js +18 -110
  123. package/src/unfriend.js +9 -18
  124. package/src/unsendMessage.js +34 -31
  125. package/src/unsendMqttMessage.js +66 -0
  126. package/test/Database_Test.js +4 -0
  127. package/test/Db2.js +530 -0
  128. package/test/Shankar_Database/A_README.md +1 -0
  129. package/test/Shankar_Database/Database.db +0 -0
  130. package/test/data/shareAttach.js +1 -1
  131. package/test/env/.env +0 -0
  132. package/test/example-db.db +0 -0
  133. package/test/memoryleak.js +18 -0
  134. package/test/test.js +1 -1
  135. package/test/testname.js +1342 -0
  136. package/test/testv2.js +3 -0
  137. package/utils.js +2918 -1393
  138. package/CHANGELOG.md +0 -2
  139. package/LICENSE-MIT +0 -21
  140. package/generated-icon.png +0 -0
  141. package/replit.nix +0 -5
  142. package/shankar-fca.json +0 -4
  143. package/src/changeAvatar.js +0 -136
  144. package/src/changeBlockedStatusMqtt.js +0 -80
  145. package/src/changeCover.js +0 -73
  146. package/src/changeName.js +0 -79
  147. package/src/changeUsername.js +0 -59
  148. package/src/createCommentPost.js +0 -230
  149. package/src/createPost.js +0 -277
  150. package/src/data/getThreadInfo.json +0 -1
  151. package/src/editMessageOld.js +0 -67
  152. package/src/follow.js +0 -74
  153. package/src/getAccess.js +0 -112
  154. package/src/getAvatarUser.js +0 -78
  155. package/src/getRegion.js +0 -7
  156. package/src/getThreadHistoryDeprecated.js +0 -93
  157. package/src/getThreadInfoDeprecated.js +0 -80
  158. package/src/getThreadListDeprecated.js +0 -75
  159. package/src/listenNotification.js +0 -85
  160. package/src/pinMessage.js +0 -59
  161. package/src/refreshFb_dtsg.js +0 -89
  162. package/src/searchStickers.js +0 -53
  163. package/src/sendMessageMqtt.js +0 -322
  164. package/src/sendTypingIndicatorV2.js +0 -28
  165. package/src/setMessageReactionMqtt.js +0 -62
  166. package/src/setProfileGuard.js +0 -45
  167. package/src/setStoryReaction.js +0 -64
  168. package/src/stopListenMqtt.js +0 -26
  169. package/src/uploadAttachment.js +0 -94
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ var utils = require('../utils');
4
+ var logger = require('../logger')
5
+ var OTP = require('totp-generator');
6
+
7
+ module.exports.getInfo = async function (id,jar,ctx,defaultFuncs) {
8
+ var AccessToken = await module.exports.getAccessToken(jar,ctx,defaultFuncs);
9
+ var { body:Data } = await utils.get(`https://graph.facebook.com/${id}?fields=age_range,picture,cover,name,first_name,email,about,birthday,gender,website,hometown,link,location,quotes,relationship_status,significant_other,username,subscribers.limite(0)&access_token=${AccessToken}`,jar,null,ctx.globalOptions);
10
+ var Format = {
11
+ id: JSON.parse(Data).id || "No Data",
12
+ name: JSON.parse(Data).name || "No Data Available",
13
+ first_name: JSON.parse(Data).first_name || "No Data Available",
14
+ username: JSON.parse(Data).username || "No Data Available",
15
+ link: JSON.parse(Data).link || "No Data Available",
16
+ verified: JSON.parse(Data).verified || "No Data Available",
17
+ about: JSON.parse(Data).about || "No Data Available",
18
+ avatar: JSON.parse(Data).picture.data.url || "No Data Available",
19
+ cover: JSON.parse(Data).cover.source || "No Data Available",
20
+ birthday: JSON.parse(Data).birthday || "No Data Available",
21
+ age: JSON.parse(Data).age_range.min || "No Data Available",
22
+ follow: JSON.parse(Data).subscribers.summary.total_count || "No Data Available",
23
+ gender: JSON.parse(Data).gender || "No Data Available",
24
+ hometown: JSON.parse(Data).hometown || "No Data Available",
25
+ email: JSON.parse(Data).email || "No Data Available",
26
+ interested_in: JSON.parse(Data).interested_in || "No Data Available",
27
+ location: JSON.parse(Data).location || "No Data Available",
28
+ locale: JSON.parse(Data).locale || "No Data Available",
29
+ relationship_status: JSON.parse(Data).relationship_status || "No Data Available",
30
+ love: JSON.parse(Data).significant_other || "No Data Available",
31
+ website: JSON.parse(Data).website || "No Data Available",
32
+ quotes: JSON.parse(Data).quotes || "No Data Available",
33
+ timezone: JSON.parse(Data).timezone || "No Data Available",
34
+ updated_time: JSON.parse(Data).updated_time || "No Data Available"
35
+ }
36
+ return Format;
37
+ }
38
+
39
+ /**
40
+ * Help: @ManhG
41
+ * Author: @KanzuWakazaki
42
+ */
43
+
44
+ module.exports.getAccessToken = async function (jar, ctx,defaultFuncs) {
45
+ if (global.Fca.Data.AccessToken) {
46
+ return global.Fca.Data.AccessToken;
47
+ }
48
+ else {
49
+ var nextURLS = "https://business.facebook.com/security/twofactor/reauth/enter/"
50
+ return defaultFuncs.get('https://business.facebook.com/content_management', jar, null, ctx.globalOptions).then(async function(data) {
51
+ try {
52
+ if (/"],\["(.*?)","/.exec(/LMBootstrapper(.*?){"__m":"LMBootstrapper"}/.exec(data.body)[1])[1]) {
53
+ global.Fca.Data.AccessToken = /"],\["(.*?)","/.exec(/LMBootstrapper(.*?){"__m":"LMBootstrapper"}/.exec(data.body)[1])[1];
54
+ return /"],\["(.*?)","/.exec(/LMBootstrapper(.*?){"__m":"LMBootstrapper"}/.exec(data.body)[1])[1];
55
+ }
56
+ }
57
+ catch (_) {
58
+ if (global.Fca.Require.ShankarConfig.AuthString.includes('|')) return logger.Error(global.Fca.Require.Language.Index.Missing)
59
+ var OPTCODE = global.Fca.Require.ShankarConfig.AuthString.includes(" ") ? global.Fca.Require.ShankarConfig.AuthString.replace(RegExp(" ", 'g'), "") : global.Fca.Require.ShankarConfig.AuthString;
60
+ var Form = {
61
+ approvals_code: OTP(String(OPTCODE)),
62
+ save_device: false,
63
+ lsd: utils.getFrom(data.body, "[\"LSD\",[],{\"token\":\"", "\"}")
64
+ }
65
+ return defaultFuncs.post(nextURLS, jar, Form, ctx.globalOptions, {
66
+ referer: "https://business.facebook.com/security/twofactor/reauth/?twofac_next=https%3A%2F%2Fbusiness.facebook.com%2Fcontent_management&type=avoid_bypass&app_id=0&save_device=0",
67
+ }).then(async function(dataa) {
68
+ if (String(dataa.body).includes(false)) throw { Error: "Invaild OTP | ShankarConfigFca.json: AuthString" }
69
+ return utils.get('https://business.facebook.com/content_management', jar, null, ctx.globalOptions,{
70
+ referer: "https://business.facebook.com/security/twofactor/reauth/?twofac_next=https%3A%2F%2Fbusiness.facebook.com%2Fcontent_management&type=avoid_bypass&app_id=0&save_device=0",
71
+ }).then(async function(data) {
72
+ var Access_Token = /"],\["(.*?)","/.exec(/BusinessToolEmptyView.brands.react(.*?){"__m":"BusinessToolEmptyView.brands.react"}/.exec(data.body)[1])[1];
73
+ global.Fca.Data.AccessToken = Access_Token;
74
+ return Access_Token;
75
+ });
76
+ });
77
+ }
78
+ })
79
+ }
80
+ }
81
+
82
+ //hard working =))
@@ -0,0 +1,62 @@
1
+ 'use strict';
2
+
3
+ const got = global.Fca.Require.Fetch;
4
+
5
+ /**
6
+ * @param {string | URL} url
7
+ * @param {{ sendMessage: (arg0: string, arg1: any) => any; }} api
8
+ */
9
+ async function getUIDSlow(url,api) {
10
+ var FormData = require("form-data");
11
+ var Form = new FormData();
12
+ var Url = new URL(url);
13
+ Form.append('username', Url.pathname.replace(/\//g, ""));
14
+ try {
15
+ var data = await got.post('https://api.findids.net/api/get-uid-from-username',{
16
+ body: Form,
17
+ userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.79 Safari/537.36'
18
+ })
19
+ } catch (e) {
20
+ console.log(global.Fca.Data.event.threadID,e)
21
+ return api.sendMessage("Lỗi: " + e.message,global.Fca.Data.event.threadID);
22
+ }
23
+ if (JSON.parse(data.body.toString()).status != 200) return api.sendMessage('Has Encountered an Error !',global.Fca.Data.event.threadID)
24
+ if (typeof JSON.parse(data.body.toString()).error === 'string') return "errr"
25
+ else return JSON.parse(data.body.toString()).data.id || "nịt";
26
+ }
27
+
28
+ /**
29
+ * @param {string | URL} url
30
+ * @param {{ sendMessage: (arg0: string, arg1: any, arg2: any) => any; }} api
31
+ */
32
+ async function getUIDFast(url,api) {
33
+ var FormData = require("form-data");
34
+ var Form = new FormData();
35
+ var Url = new URL(url);
36
+ Form.append('link', Url.href);
37
+ try {
38
+ var data = await got.post('https://id.traodoisub.com/api.php',{
39
+ body: Form
40
+ })
41
+ } catch (e) {
42
+ return api.sendMessage("Error: " + e.message,global.Fca.Data.event.threadID,global.Fca.Data.event.messageID);
43
+ }
44
+ if (JSON.parse(data.body.toString()).error) return api.sendMessage(JSON.parse(data.body.toString()).error,global.Fca.Data.event.threadID,global.Fca.Data.event.messageID);
45
+ else return JSON.parse(data.body.toString()).id || "I feel a little sad";
46
+ }
47
+
48
+ /**
49
+ * @param {any} url
50
+ * @param {any} api
51
+ */
52
+ async function getUID(url,api) {
53
+ var getUID = await getUIDFast(url,api);
54
+ if (!isNaN(getUID) == true) return getUID;
55
+ else {
56
+ let getUID = await getUIDSlow(url,api);
57
+ if (!isNaN(data) == true) return getUID;
58
+ else return null;
59
+ }
60
+ }
61
+
62
+ module.exports = getUID;
@@ -0,0 +1,365 @@
1
+ /* eslint-disable */
2
+ "use strict";
3
+ var Database= require("./Database");
4
+ const { lastRun,capture } = require('./Src/Last-Run');
5
+ const logger = require("../logger");
6
+ const getText = global.Fca.getText;
7
+ var language = require("../Language/index.json");
8
+ const fs = require("fs");
9
+ language = language.find(i => i.Language == require(process.cwd() + "/ShankarConfigFca.json").Language).Folder.ExtraGetThread;
10
+ const Always_True = [];
11
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
12
+ if (!fs.existsSync(process.cwd() + "/Shankar_Database/Threads.json")) {
13
+ fs.writeFileSync(process.cwd() + "/Shankar_Database/Threads.json",JSON.stringify({}));
14
+ }
15
+ }
16
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type != "default" && global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type != "json") {
17
+ logger.Warning("Database_Type in ShankarConfigFca.json is not valid. Only default and json are valid.");
18
+ process.exit(0);
19
+ }
20
+
21
+ exports.createData = function(threadID,threadData) {
22
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
23
+ try {
24
+ Database(true).set(String(threadID),Object(threadData));
25
+ logger.Normal(getText(language.CreateDatabaseSuccess,String(threadID)));
26
+ }
27
+ catch (e) {
28
+ console.log(e);
29
+ logger.Warning(getText(language.CreateDatabaseFailure,String(threadID)));
30
+ }
31
+ }
32
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
33
+ try {
34
+ try {
35
+ var data = require(process.cwd() + "/Shankar_Database/Threads.json");
36
+ }
37
+ catch (e) {
38
+ var data = {};
39
+ fs.writeFileSync(process.cwd() + "/Shankar_Database/Threads.json",JSON.stringify(data));
40
+ }
41
+
42
+ data[String(threadID)] = Object(threadData);
43
+ fs.writeFileSync(process.cwd() + "/Shankar_Database/Threads.json",JSON.stringify(data));
44
+ logger.Normal(getText(language.CreateDatabaseSuccess,String(threadID)));
45
+ }
46
+ catch (e) {
47
+ console.log(e);
48
+ logger.Warning(getText(language.CreateDatabaseFailure,String(threadID)));
49
+ }
50
+ }
51
+ }
52
+
53
+ exports.updateData = function(threadID,threadData) {
54
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
55
+ try {
56
+ Database(true).set(String(threadID),Object(threadData));
57
+ logger.Normal(getText(language.updateDataSuccess,String(threadID)));
58
+ }
59
+ catch (e) {
60
+ console.log(e);
61
+ logger.Warning(getText(language.updateDataFailure,String(threadID)));
62
+ }
63
+ }
64
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
65
+ try {
66
+ try {
67
+ var data = require(process.cwd() + "/Shankar_Database/Threads.json");
68
+ }
69
+ catch (e) {
70
+ var data = {};
71
+ fs.writeFileSync(process.cwd() + "/Shankar_Database/Threads.json",JSON.stringify(data));
72
+ }
73
+
74
+ data[String(threadID)] = Object(threadData);
75
+ fs.writeFileSync(process.cwd() + "/Shankar_Database/Threads.json",JSON.stringify(data));
76
+ logger.Normal(getText(language.updateDataSuccess,String(threadID)));
77
+ }
78
+ catch (e) {
79
+ console.log(e);
80
+ logger.Warning(getText(language.updateDataFailure,String(threadID)));
81
+ }
82
+ }
83
+ }
84
+
85
+ exports.updateMessageCount = function(threadID,threadData) {
86
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
87
+ try {
88
+ Database(true).set(String(threadID),Object(threadData));
89
+ }
90
+ catch (e) {
91
+ console.log(e);
92
+ }
93
+ }
94
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
95
+ try {
96
+ try {
97
+ var data = require(process.cwd() + "/Shankar_Database/Threads.json");
98
+ }
99
+ catch (e) {
100
+ var data = {};
101
+ fs.writeFileSync(process.cwd() + "/Shankar_Database/Threads.json",JSON.stringify(data));
102
+ }
103
+
104
+ data[String(threadID)] = Object(threadData);
105
+ fs.writeFileSync(process.cwd() + "/Shankar_Database/Threads.json",JSON.stringify(data));
106
+ }
107
+ catch (e) {
108
+ console.log(e);
109
+ }
110
+ }
111
+ }
112
+
113
+ exports.getData = function(threadID) {
114
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
115
+ let Sw;
116
+ if (Always_True.includes(threadID)) Sw = true
117
+ else Sw = Database(true).has(String(threadID))
118
+ switch (Sw) {
119
+ case true: {
120
+ return Database(true).get(String(threadID))
121
+ }
122
+ case false: {
123
+ return null;
124
+ }
125
+ }
126
+ }
127
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
128
+ try {
129
+ let Sw;
130
+ if (Always_True.includes(threadID)) Sw = true
131
+ else Sw = data.hasOwnProperty(String(threadID))
132
+ var data = require(process.cwd() + "/Shankar_Database/Threads.json");
133
+ switch (Sw) {
134
+ case true: {
135
+ return data[String(threadID)];
136
+ }
137
+ case false: {
138
+ return null;
139
+ }
140
+ }
141
+ }
142
+ catch (e) {
143
+ console.log(e);
144
+ return null;
145
+ }
146
+ }
147
+ }
148
+
149
+ exports.deleteAll = function(data) {
150
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
151
+ for (let i of data) {
152
+ Database(true).delete(String(i));
153
+ }
154
+ }
155
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
156
+ try {
157
+ var data1 = require(process.cwd() + "/Shankar_Database/Threads.json");
158
+ for (let i of data) {
159
+ delete data1[String(i)];
160
+ }
161
+ fs.writeFileSync(process.cwd() + "/Shankar_Database/Threads.json",JSON.stringify(data1));
162
+ }
163
+ catch (e) {
164
+ console.log(e);
165
+ }
166
+ }
167
+ }
168
+
169
+ exports.getAll = function() {
170
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
171
+ return Database(true).list();
172
+ }
173
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
174
+ try {
175
+ const Data_Res = []
176
+ var data = require(process.cwd() + "/Shankar_Database/Threads.json");
177
+ for (let i of Object.keys(data)) {
178
+ Data_Res.push({
179
+ ID: String(i),
180
+ data: data[String(i)]
181
+ });
182
+ }
183
+ return Data_Res;
184
+ }
185
+ catch (e) {
186
+ console.log(e);
187
+ return [];
188
+ }
189
+ }
190
+ }
191
+
192
+ exports.hasData = function(threadID) {
193
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
194
+ if (Always_True.includes(threadID)) return true;
195
+ else {
196
+ const Data_Back = Database(true).has(String(threadID));
197
+ if (Data_Back === true) Always_True.push(threadID);
198
+ return Data_Back;
199
+ }
200
+ }
201
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
202
+ try {
203
+ if (Always_True.includes(threadID)) return true;
204
+ else {
205
+ var data = require(process.cwd() + "/Shankar_Database/Threads.json");
206
+ var has = data.hasOwnProperty(String(threadID));
207
+ if (has === true) Always_True.push(threadID);
208
+ return has
209
+ }
210
+ }
211
+ catch (e) {
212
+ console.log(e);
213
+ return false;
214
+ }
215
+ }
216
+ }
217
+
218
+ exports.alreadyUpdate = function(threadID) {
219
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
220
+ var Time = Database(true).get(String(threadID)).TimeUpdate;
221
+ try {
222
+ if (global.Fca.startTime >= (Time + (3600 * 1000))) {
223
+ logger.Normal(getText(language.alreadyUpdate, String(threadID)));
224
+ return true;
225
+ }
226
+ else return false;
227
+ }
228
+ catch (e) {
229
+ console.log(e);
230
+ return true;
231
+ }
232
+ }
233
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
234
+ try {
235
+ var data = require(process.cwd() + "/Shankar_Database/Threads.json");
236
+ var Time = data[String(threadID)].TimeUpdate;
237
+ try {
238
+ if (global.Fca.startTime >= (Time + (3600 * 1000))) {
239
+ logger.Normal(getText(language.alreadyUpdate, String(threadID)));
240
+ return true;
241
+ }
242
+ else return false;
243
+ }
244
+ catch (e) {
245
+ console.log(e);
246
+ return true;
247
+ }
248
+ }
249
+ catch (e) {
250
+ console.log(e);
251
+ return true;
252
+ }
253
+ }
254
+ }
255
+
256
+ exports.readyCreate = function(Name) {
257
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
258
+ switch (Database(true).has(String(Name))) {
259
+ case true: {
260
+ if (!Always_True.includes(Name)) Always_True.push(Name);
261
+
262
+ if (Number(global.Fca.startTime) >= Number(Database(true).get(String(Name)) + (120 * 1000))) {
263
+ return true;
264
+ }
265
+ else {
266
+ return false;
267
+ }
268
+ }
269
+ case false: {
270
+ return false;
271
+ }
272
+ }
273
+ }
274
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
275
+ try {
276
+ var data = require(process.cwd() + "/Shankar_Database/Threads.json");
277
+ switch (data.hasOwnProperty(String(Name))) {
278
+ case true: {
279
+ if (Number(global.Fca.startTime) >= Number(data[String(Name)] + (120 * 1000))) {
280
+ return true;
281
+ }
282
+ else {
283
+ return false;
284
+ }
285
+ }
286
+ case false: {
287
+ return false;
288
+ }
289
+ }
290
+ }
291
+ catch (e) {
292
+ console.log(e);
293
+ return false;
294
+ }
295
+ }
296
+ }
297
+
298
+ exports.setLastRun = function(Name,LastRun) {
299
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
300
+ Database(true).set(String(Name),String(lastRun(LastRun)));
301
+ }
302
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
303
+ try {
304
+ var data = require(process.cwd() + "/Shankar_Database/Threads.json");
305
+ data[String(Name)] = String(lastRun(LastRun));
306
+ fs.writeFileSync(process.cwd() + "/Shankar_Database/Threads.json",JSON.stringify(data));
307
+ }
308
+ catch (e) {
309
+ console.log(e);
310
+ }
311
+ }
312
+ }
313
+
314
+ exports.getLastRun = function(Name) {
315
+ if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "default") {
316
+ let Sw;
317
+ if (Always_True.includes(Name)) Sw = true;
318
+ else Sw = Database(true).has(String(Name));
319
+
320
+ switch (Sw) {
321
+ case true: {
322
+ return Database(true).get(String(Name));
323
+ }
324
+ case false: {
325
+ try {
326
+ capture(Name)
327
+ this.setLastRun(Name,Name);
328
+ return Database(true).get(String(Name));
329
+ }
330
+ catch(e) {
331
+ console.log(e);
332
+ return Date.now();
333
+ }
334
+ }
335
+ }
336
+ }
337
+ else if (global.Fca.Require.ShankarConfig.AntiGetInfo.Database_Type == "json") {
338
+ try {
339
+ let Sw;
340
+ if (Always_True.includes(Name)) Sw = true;
341
+ else Sw = data.hasOwnProperty(String(Name));
342
+ var data = require(process.cwd() + "/Shankar_Database/Threads.json");
343
+ switch (Sw) {
344
+ case true: {
345
+ return data[String(Name)];
346
+ }
347
+ case false: {
348
+ try {
349
+ capture(Name)
350
+ this.setLastRun(Name,Name);
351
+ return data[String(Name)];
352
+ }
353
+ catch(e) {
354
+ console.log(e);
355
+ return Date.now();
356
+ }
357
+ }
358
+ }
359
+ }
360
+ catch (e) {
361
+ console.log(e);
362
+ return Date.now();
363
+ }
364
+ }
365
+ }