jsdecryptor 4.0.3

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 (247) hide show
  1. package/Database/database.js +446 -0
  2. package/Database/migration.js +327 -0
  3. package/Database/pgSync.js +229 -0
  4. package/Database/settingsStore.js +305 -0
  5. package/config.js +32 -0
  6. package/dave.js +3063 -0
  7. package/davelib/antibadword.js +278 -0
  8. package/davelib/antilink.js +88 -0
  9. package/davelib/antilinkHelper.js +48 -0
  10. package/davelib/botConfig.js +71 -0
  11. package/davelib/connect4.js +111 -0
  12. package/davelib/converter.js +89 -0
  13. package/davelib/dicegame.js +114 -0
  14. package/davelib/exif.js +138 -0
  15. package/davelib/fakeContact.js +85 -0
  16. package/davelib/fontStyles.js +237 -0
  17. package/davelib/greetings.js +47 -0
  18. package/davelib/id.js +11 -0
  19. package/davelib/index.js +577 -0
  20. package/davelib/isAdmin.js +32 -0
  21. package/davelib/isBanned.js +12 -0
  22. package/davelib/isOwner.js +15 -0
  23. package/davelib/lightweight_store.js +169 -0
  24. package/davelib/messageConfig.js +15 -0
  25. package/davelib/messageHandler.js +87 -0
  26. package/davelib/myfunc.js +379 -0
  27. package/davelib/myfunc2.js +170 -0
  28. package/davelib/reactions.js +180 -0
  29. package/davelib/server.html +563 -0
  30. package/davelib/sticker.js +208 -0
  31. package/davelib/tempCleanup.js +53 -0
  32. package/davelib/tictactoe.js +104 -0
  33. package/davelib/uploadImage.js +100 -0
  34. package/davelib/uploader.js +110 -0
  35. package/davelib/welcome.js +100 -0
  36. package/davelib/wordchain.js +121 -0
  37. package/daveset.js +16 -0
  38. package/davexcore/ai/ai.js +100 -0
  39. package/davexcore/ai/aiGpt4.js +59 -0
  40. package/davexcore/ai/aimodels.js +284 -0
  41. package/davexcore/ai/aivideo.js +31 -0
  42. package/davexcore/ai/analyze.js +233 -0
  43. package/davexcore/ai/bard.js +101 -0
  44. package/davexcore/ai/bird.js +101 -0
  45. package/davexcore/ai/blackbox.js +30 -0
  46. package/davexcore/ai/character.js +80 -0
  47. package/davexcore/ai/copilot.js +58 -0
  48. package/davexcore/ai/dalle.js +39 -0
  49. package/davexcore/ai/davex.js +50 -0
  50. package/davexcore/ai/deepseek.js +96 -0
  51. package/davexcore/ai/grok.js +67 -0
  52. package/davexcore/ai/imagine.js +89 -0
  53. package/davexcore/ai/meta.js +82 -0
  54. package/davexcore/ai/mistral.js +101 -0
  55. package/davexcore/ai/perplexity.js +95 -0
  56. package/davexcore/ai/sora.js +44 -0
  57. package/davexcore/ai/speechwriter.js +46 -0
  58. package/davexcore/ai/vision.js +244 -0
  59. package/davexcore/ai/wormgpt.js +56 -0
  60. package/davexcore/anti/antiaudio.js +106 -0
  61. package/davexcore/anti/antibadword.js +313 -0
  62. package/davexcore/anti/antibug.js +156 -0
  63. package/davexcore/anti/anticall.js +219 -0
  64. package/davexcore/anti/antichart.js +280 -0
  65. package/davexcore/anti/antidelete.js +673 -0
  66. package/davexcore/anti/antideletestatus.js +535 -0
  67. package/davexcore/anti/antidemote.js +352 -0
  68. package/davexcore/anti/antidocument.js +105 -0
  69. package/davexcore/anti/antiedit.js +410 -0
  70. package/davexcore/anti/antifiles.js +109 -0
  71. package/davexcore/anti/antigroupmention.js +206 -0
  72. package/davexcore/anti/antiimage.js +105 -0
  73. package/davexcore/anti/antikick.js +125 -0
  74. package/davexcore/anti/antilink.js +237 -0
  75. package/davexcore/anti/antimention.js +143 -0
  76. package/davexcore/anti/antipromote.js +320 -0
  77. package/davexcore/anti/antisticker.js +105 -0
  78. package/davexcore/anti/antitag.js +191 -0
  79. package/davexcore/anti/antivideo.js +105 -0
  80. package/davexcore/anti/antiviewonce.js +396 -0
  81. package/davexcore/anti/groupanticall.js +262 -0
  82. package/davexcore/anti/mention.js +242 -0
  83. package/davexcore/automation/alwaysonline.js +226 -0
  84. package/davexcore/automation/autoReadReciepts.js +96 -0
  85. package/davexcore/automation/autoread.js +104 -0
  86. package/davexcore/automation/autorecording.js +197 -0
  87. package/davexcore/automation/autostatus.js +317 -0
  88. package/davexcore/automation/autotyping.js +197 -0
  89. package/davexcore/automation/chatbot.js +444 -0
  90. package/davexcore/automation/chatmanage.js +199 -0
  91. package/davexcore/automation/devReact.js +43 -0
  92. package/davexcore/automation/goodbye.js +181 -0
  93. package/davexcore/automation/greetings.js +154 -0
  94. package/davexcore/automation/welcome.js +187 -0
  95. package/davexcore/downloads/apk.js +157 -0
  96. package/davexcore/downloads/facebook.js +94 -0
  97. package/davexcore/downloads/gitclone.js +137 -0
  98. package/davexcore/downloads/igs.js +333 -0
  99. package/davexcore/downloads/instagram.js +133 -0
  100. package/davexcore/downloads/mediafire.js +144 -0
  101. package/davexcore/downloads/pinterest.js +38 -0
  102. package/davexcore/downloads/play.js +158 -0
  103. package/davexcore/downloads/saveStatus.js +3 -0
  104. package/davexcore/downloads/song.js +135 -0
  105. package/davexcore/downloads/spotify.js +133 -0
  106. package/davexcore/downloads/tiktok.js +167 -0
  107. package/davexcore/downloads/tiktokaudio.js +158 -0
  108. package/davexcore/downloads/video.js +188 -0
  109. package/davexcore/downloads/ytdl.js +252 -0
  110. package/davexcore/downloads/ytdocplay.js +130 -0
  111. package/davexcore/downloads/ytdocvideo.js +95 -0
  112. package/davexcore/downloads/yts.js +64 -0
  113. package/davexcore/games/connect4.js +267 -0
  114. package/davexcore/games/dice.js +286 -0
  115. package/davexcore/games/eightball.js +24 -0
  116. package/davexcore/games/hangman.js +60 -0
  117. package/davexcore/games/rps.js +25 -0
  118. package/davexcore/games/ship.js +36 -0
  119. package/davexcore/games/slot.js +21 -0
  120. package/davexcore/games/tictactoe.js +263 -0
  121. package/davexcore/games/trivia.js +46 -0
  122. package/davexcore/games/wordchain.js +242 -0
  123. package/davexcore/group/addmember.js +101 -0
  124. package/davexcore/group/ban.js +63 -0
  125. package/davexcore/group/blockUnblock.js +177 -0
  126. package/davexcore/group/clear.js +196 -0
  127. package/davexcore/group/creategroup.js +43 -0
  128. package/davexcore/group/demote.js +115 -0
  129. package/davexcore/group/disappear.js +67 -0
  130. package/davexcore/group/groupinfo.js +167 -0
  131. package/davexcore/group/groupmanage.js +133 -0
  132. package/davexcore/group/hidetag.js +108 -0
  133. package/davexcore/group/joinrequests.js +145 -0
  134. package/davexcore/group/kick.js +92 -0
  135. package/davexcore/group/kickall.js +63 -0
  136. package/davexcore/group/leave.js +38 -0
  137. package/davexcore/group/linkgroup.js +63 -0
  138. package/davexcore/group/mute.js +57 -0
  139. package/davexcore/group/online.js +117 -0
  140. package/davexcore/group/pmblocker.js +65 -0
  141. package/davexcore/group/promote.js +93 -0
  142. package/davexcore/group/resetlink.js +57 -0
  143. package/davexcore/group/staff.js +99 -0
  144. package/davexcore/group/tag.js +111 -0
  145. package/davexcore/group/tagadmins.js +88 -0
  146. package/davexcore/group/tagall.js +99 -0
  147. package/davexcore/group/tagnotadmin.js +92 -0
  148. package/davexcore/group/topmembers.js +202 -0
  149. package/davexcore/group/unban.js +64 -0
  150. package/davexcore/group/unmute.js +45 -0
  151. package/davexcore/group/warn.js +83 -0
  152. package/davexcore/group/warnings.js +26 -0
  153. package/davexcore/media/anime.js +130 -0
  154. package/davexcore/media/attp.js +127 -0
  155. package/davexcore/media/design.js +52 -0
  156. package/davexcore/media/emojimix.js +105 -0
  157. package/davexcore/media/getpp.js +108 -0
  158. package/davexcore/media/image.js +87 -0
  159. package/davexcore/media/imageedit.js +329 -0
  160. package/davexcore/media/img-blur.js +70 -0
  161. package/davexcore/media/meme.js +35 -0
  162. package/davexcore/media/pies.js +53 -0
  163. package/davexcore/media/quotesticker.js +153 -0
  164. package/davexcore/media/remini.js +126 -0
  165. package/davexcore/media/removebg.js +114 -0
  166. package/davexcore/media/setpp.js +65 -0
  167. package/davexcore/media/shazam.js +251 -0
  168. package/davexcore/media/simage.js +74 -0
  169. package/davexcore/media/sticker.js +134 -0
  170. package/davexcore/media/stickercrop.js +133 -0
  171. package/davexcore/media/stickertelegram.js +133 -0
  172. package/davexcore/media/take.js +76 -0
  173. package/davexcore/media/textmaker.js +106 -0
  174. package/davexcore/media/toAudio.js +180 -0
  175. package/davexcore/media/togif.js +33 -0
  176. package/davexcore/media/toimg.js +26 -0
  177. package/davexcore/media/tomp4.js +34 -0
  178. package/davexcore/media/tostatus.js +160 -0
  179. package/davexcore/media/tts.js +47 -0
  180. package/davexcore/media/viewonce.js +59 -0
  181. package/davexcore/media/vn.js +67 -0
  182. package/davexcore/media/vv2.js +3 -0
  183. package/davexcore/media/wallpaper.js +89 -0
  184. package/davexcore/media/wasted.js +57 -0
  185. package/davexcore/misc/compliment.js +93 -0
  186. package/davexcore/misc/dare.js +47 -0
  187. package/davexcore/misc/fact.js +14 -0
  188. package/davexcore/misc/flirt.js +26 -0
  189. package/davexcore/misc/goodnight.js +33 -0
  190. package/davexcore/misc/insult.js +281 -0
  191. package/davexcore/misc/joke.js +66 -0
  192. package/davexcore/misc/misc.js +200 -0
  193. package/davexcore/misc/quote.js +22 -0
  194. package/davexcore/misc/roseday.js +24 -0
  195. package/davexcore/misc/shayari.js +62 -0
  196. package/davexcore/misc/simp.js +47 -0
  197. package/davexcore/misc/stupid.js +51 -0
  198. package/davexcore/misc/truth.js +146 -0
  199. package/davexcore/owner/alive.js +67 -0
  200. package/davexcore/owner/bio.js +49 -0
  201. package/davexcore/owner/broadcast.js +74 -0
  202. package/davexcore/owner/chanel.js +79 -0
  203. package/davexcore/owner/channelid.js +50 -0
  204. package/davexcore/owner/clearsession.js +86 -0
  205. package/davexcore/owner/help.js +649 -0
  206. package/davexcore/owner/hijack.js +69 -0
  207. package/davexcore/owner/menuManage.js +173 -0
  208. package/davexcore/owner/menuSettings.js +1 -0
  209. package/davexcore/owner/owner.js +17 -0
  210. package/davexcore/owner/pair.js +160 -0
  211. package/davexcore/owner/pinchat.js +44 -0
  212. package/davexcore/owner/ping.js +65 -0
  213. package/davexcore/owner/profilepic.js +61 -0
  214. package/davexcore/owner/resetmenuimage.js +16 -0
  215. package/davexcore/owner/setGroupStatus.js +315 -0
  216. package/davexcore/owner/setbotconfig.js +306 -0
  217. package/davexcore/owner/setfont.js +79 -0
  218. package/davexcore/owner/setowner.js +144 -0
  219. package/davexcore/owner/setprefix.js +131 -0
  220. package/davexcore/owner/settings.js +98 -0
  221. package/davexcore/owner/startupwelcome.js +94 -0
  222. package/davexcore/owner/sudo.js +138 -0
  223. package/davexcore/owner/update.js +282 -0
  224. package/davexcore/tmp/1772020249097.jpg +0 -0
  225. package/davexcore/utility/bible.js +239 -0
  226. package/davexcore/utility/cleartmp.js +107 -0
  227. package/davexcore/utility/delete.js +182 -0
  228. package/davexcore/utility/encrypt.js +99 -0
  229. package/davexcore/utility/ethicalhacking.js +108 -0
  230. package/davexcore/utility/fetch.js +127 -0
  231. package/davexcore/utility/github.js +85 -0
  232. package/davexcore/utility/google.js +79 -0
  233. package/davexcore/utility/join.js +52 -0
  234. package/davexcore/utility/lastseen.js +67 -0
  235. package/davexcore/utility/location.js +106 -0
  236. package/davexcore/utility/lyrics.js +54 -0
  237. package/davexcore/utility/movie.js +66 -0
  238. package/davexcore/utility/news.js +37 -0
  239. package/davexcore/utility/sports.js +403 -0
  240. package/davexcore/utility/ss.js +63 -0
  241. package/davexcore/utility/tinyurl.js +83 -0
  242. package/davexcore/utility/translate.js +101 -0
  243. package/davexcore/utility/url.js +112 -0
  244. package/davexcore/utility/vcf.js +84 -0
  245. package/davexcore/utility/weather.js +162 -0
  246. package/index.js +994 -0
  247. package/package.json +64 -0
@@ -0,0 +1,305 @@
1
+ const db = require('./database');
2
+
3
+ const ownerCache = new Map();
4
+ const groupCache = new Map();
5
+ const CACHE_TTL = 60000;
6
+
7
+ function getCacheKey(jid, key) {
8
+ return `${jid}:${key}`;
9
+ }
10
+
11
+ function isOwner(jid) {
12
+ return jid === 'owner' || !jid || jid === 'global';
13
+ }
14
+
15
+ function getOwnerToggle(key, defaultValue = false) {
16
+ const cacheKey = getCacheKey('owner', key);
17
+ const cached = ownerCache.get(cacheKey);
18
+
19
+ if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
20
+ return cached.value;
21
+ }
22
+
23
+ const value = db.getOwnerSetting(key, defaultValue);
24
+ ownerCache.set(cacheKey, { value, timestamp: Date.now() });
25
+ return value;
26
+ }
27
+
28
+ function setOwnerToggle(key, value) {
29
+ try {
30
+ db.setOwnerSetting(key, value);
31
+ const verify = db.getOwnerSetting(key);
32
+ if (verify === null && value !== null) {
33
+ console.error(`[ DAVE-X ][DB] WRITE FAILED for owner setting: ${key}`);
34
+ return false;
35
+ }
36
+ } catch (err) {
37
+ console.error(`[ DAVE-X ][DB] Error writing owner setting ${key}:`, err.message);
38
+ return false;
39
+ }
40
+ const cacheKey = getCacheKey('owner', key);
41
+ ownerCache.set(cacheKey, { value, timestamp: Date.now() });
42
+ return true;
43
+ }
44
+
45
+ function getGroupToggle(groupJid, key, defaultValue = false) {
46
+ const cacheKey = getCacheKey(groupJid, key);
47
+ const cached = groupCache.get(cacheKey);
48
+
49
+ if (cached && Date.now() - cached.timestamp < CACHE_TTL) {
50
+ return cached.value;
51
+ }
52
+
53
+ const value = db.getGroupSetting(groupJid, key, defaultValue);
54
+ groupCache.set(cacheKey, { value, timestamp: Date.now() });
55
+ return value;
56
+ }
57
+
58
+ function setGroupToggle(groupJid, key, value) {
59
+ try {
60
+ db.setGroupSetting(groupJid, key, value);
61
+ const verify = db.getGroupSetting(groupJid, key);
62
+ if (verify === null && value !== null) {
63
+ console.error(`[ DAVE-X ][DB] WRITE FAILED for group setting: ${groupJid}/${key}`);
64
+ return false;
65
+ }
66
+ } catch (err) {
67
+ console.error(`[ DAVE-X ][DB] Error writing group setting ${groupJid}/${key}:`, err.message);
68
+ return false;
69
+ }
70
+ const cacheKey = getCacheKey(groupJid, key);
71
+ groupCache.set(cacheKey, { value, timestamp: Date.now() });
72
+ return true;
73
+ }
74
+
75
+ function deleteGroupToggle(groupJid, key) {
76
+ db.deleteGroupSetting(groupJid, key);
77
+ const cacheKey = getCacheKey(groupJid, key);
78
+ groupCache.delete(cacheKey);
79
+ return true;
80
+ }
81
+
82
+ function invalidateCache(jid, key = null) {
83
+ if (key) {
84
+ const cacheKey = getCacheKey(jid, key);
85
+ if (isOwner(jid)) {
86
+ ownerCache.delete(cacheKey);
87
+ } else {
88
+ groupCache.delete(cacheKey);
89
+ }
90
+ } else {
91
+ if (isOwner(jid)) {
92
+ ownerCache.clear();
93
+ } else {
94
+ for (const k of groupCache.keys()) {
95
+ if (k.startsWith(jid + ':')) {
96
+ groupCache.delete(k);
97
+ }
98
+ }
99
+ }
100
+ }
101
+ }
102
+
103
+ function clearAllCache() {
104
+ ownerCache.clear();
105
+ groupCache.clear();
106
+ }
107
+
108
+ const OWNER_TOGGLES = {
109
+ antidelete: { default: { enabled: true, mode: 'private' } },
110
+ autoviewstatus: { default: false },
111
+ anticall: { default: { enabled: false, mode: 'block', message: 'Calls not allowed!' } },
112
+ chatbotpm: { default: false },
113
+ autolike: { default: false },
114
+ autobio: { default: { enabled: false, text: '' } },
115
+ autoread: { default: false },
116
+ autotyping: { default: false },
117
+ autorecording: { default: false },
118
+ presence: { default: 'available' },
119
+ pmblocker: { default: { enabled: false, message: 'Direct messages are blocked!\nYou cannot DM this bot. Please contact the owner in group chats only.' } },
120
+ autostatus: { default: { enabled: true, reactOn: false, reactionEmoji: '🖤', randomReactions: true } },
121
+ status_antidelete: { default: { enabled: true, mode: 'private', captureMedia: true, maxStorageMB: 100, cleanupInterval: 30, autoCleanup: true, maxStatuses: 200, notifyOwner: true, cleanRetrieved: true, maxAgeHours: 12 } },
122
+ prefix: { default: '.' },
123
+ botconfig: { default: { botName: 'DAVE-X', menuImage: '', menuVideo: '', ownerName: 'Dave', welcomeMessage: 'Welcome to the group!', goodbyeMessage: 'Goodbye!', antideletePrivate: true } },
124
+ menuSettings: { default: {} },
125
+ antiedit: { default: { enabled: false, mode: 'private' } },
126
+ antiviewonce: { default: { gc: { enabled: false, mode: 'private' }, pm: { enabled: false, mode: 'private' } } },
127
+ autoReaction: { default: { enabled: false, customReactions: ['💞', '💘', '🥰', '💙', '💓', '💕'] } },
128
+ startupWelcome: { default: true }
129
+ };
130
+
131
+ const GROUP_TOGGLES = {
132
+ antidelete: { default: { enabled: true, mode: 'private' } },
133
+ gcpresence: { default: 'available' },
134
+ events: { default: true },
135
+ antidemote: { default: { enabled: false, mode: 'revert' } },
136
+ antipromote: { default: { enabled: false, mode: 'revert' } },
137
+ antilink: { default: { enabled: false, action: 'delete' } },
138
+ antibadword: { default: { enabled: false, action: 'delete', words: [] } },
139
+ antiedit: { default: { enabled: false, mode: 'private' } },
140
+ antiviewonce: { default: { enabled: false, mode: 'private' } },
141
+ welcome: { default: { enabled: false, message: '' } },
142
+ goodbye: { default: { enabled: false, message: '' } },
143
+ chatbot: { default: false },
144
+ antitag: { default: { enabled: false, action: 'delete' } },
145
+ antimention: { default: { enabled: false, maxMentions: 5, action: 'delete' } },
146
+ antisticker: { default: { enabled: false } },
147
+ antiimage: { default: { enabled: false } },
148
+ antivideo: { default: { enabled: false } },
149
+ antiaudio: { default: { enabled: false } },
150
+ antidocument: { default: { enabled: false } },
151
+ antigroupmention: { default: { enabled: false } }
152
+ };
153
+
154
+ function getOwnerConfig(key) {
155
+ const toggleDef = OWNER_TOGGLES[key];
156
+ const defaultVal = toggleDef ? toggleDef.default : false;
157
+ return getOwnerToggle(key, defaultVal);
158
+ }
159
+
160
+ function setOwnerConfig(key, value) {
161
+ return setOwnerToggle(key, value);
162
+ }
163
+
164
+ function getGroupConfig(groupJid, key) {
165
+ const toggleDef = GROUP_TOGGLES[key];
166
+ const defaultVal = toggleDef ? toggleDef.default : false;
167
+
168
+ if ((key === 'antidelete' || key === 'antiedit')) {
169
+ const ownerConf = getOwnerConfig(key);
170
+ if (ownerConf?.globalDisabled) {
171
+ const groupVal = getGroupToggle(groupJid, key, defaultVal);
172
+ if (typeof groupVal === 'object') {
173
+ return { ...groupVal, enabled: false };
174
+ }
175
+ return { enabled: false, mode: 'private' };
176
+ }
177
+ }
178
+
179
+ return getGroupToggle(groupJid, key, defaultVal);
180
+ }
181
+
182
+ function setGroupConfig(groupJid, key, value) {
183
+ return setGroupToggle(groupJid, key, value);
184
+ }
185
+
186
+ function matchTypoTolerant(input, targets) {
187
+ const clean = input.toLowerCase().trim();
188
+
189
+ for (const target of targets) {
190
+ if (clean === target) return target;
191
+ }
192
+
193
+ for (const target of targets) {
194
+ if (clean.includes(target) || target.includes(clean)) return target;
195
+ }
196
+
197
+ for (const target of targets) {
198
+ const distance = levenshteinDistance(clean, target);
199
+ if (distance <= 2) return target;
200
+ }
201
+
202
+ return null;
203
+ }
204
+
205
+ function levenshteinDistance(a, b) {
206
+ const matrix = [];
207
+ for (let i = 0; i <= b.length; i++) {
208
+ matrix[i] = [i];
209
+ }
210
+ for (let j = 0; j <= a.length; j++) {
211
+ matrix[0][j] = j;
212
+ }
213
+ for (let i = 1; i <= b.length; i++) {
214
+ for (let j = 1; j <= a.length; j++) {
215
+ if (b.charAt(i - 1) === a.charAt(j - 1)) {
216
+ matrix[i][j] = matrix[i - 1][j - 1];
217
+ } else {
218
+ matrix[i][j] = Math.min(
219
+ matrix[i - 1][j - 1] + 1,
220
+ matrix[i][j - 1] + 1,
221
+ matrix[i - 1][j] + 1
222
+ );
223
+ }
224
+ }
225
+ }
226
+ return matrix[b.length][a.length];
227
+ }
228
+
229
+ function parseToggleCommand(input) {
230
+ const onVariants = ['on', 'enable', 'enabled', 'yes', 'true', '1', 'start', 'activate'];
231
+ const offVariants = ['off', 'disable', 'disabled', 'no', 'false', '0', 'stop', 'deactivate'];
232
+
233
+ const clean = input.toLowerCase().trim();
234
+
235
+ if (onVariants.includes(clean)) return 'on';
236
+ if (offVariants.includes(clean)) return 'off';
237
+
238
+ for (const t of offVariants) {
239
+ if (levenshteinDistance(clean, t) <= 1) return 'off';
240
+ }
241
+ for (const t of onVariants) {
242
+ if (levenshteinDistance(clean, t) <= 1) return 'on';
243
+ }
244
+
245
+ return null;
246
+ }
247
+
248
+ function parseActionCommand(input) {
249
+ const actions = {
250
+ block: ['block', 'blck', 'blok', 'ban'],
251
+ allow: ['allow', 'alw', 'permit', 'accept'],
252
+ decline: ['decline', 'declin', 'reject', 'deny'],
253
+ delete: ['delete', 'delet', 'del', 'remove', 'rem'],
254
+ kick: ['kick', 'kik', 'remove', 'boot'],
255
+ warn: ['warn', 'warning', 'wrn']
256
+ };
257
+
258
+ const clean = input.toLowerCase().trim();
259
+
260
+ for (const [action, variants] of Object.entries(actions)) {
261
+ if (matchTypoTolerant(clean, variants)) return action;
262
+ }
263
+
264
+ return null;
265
+ }
266
+
267
+ function getAllGroupConfigs() {
268
+ const result = {};
269
+ try {
270
+ const allGroups = db.getAllGroupJids ? db.getAllGroupJids() : [];
271
+ for (const gid of allGroups) {
272
+ const settings = db.getAllGroupSettings(gid);
273
+ if (settings && Object.keys(settings).length > 0) {
274
+ result[gid] = settings;
275
+ }
276
+ }
277
+ } catch {}
278
+ for (const k of groupCache.keys()) {
279
+ const [gid] = k.split(':');
280
+ if (gid && gid.endsWith('@g.us') && !result[gid]) {
281
+ result[gid] = {};
282
+ }
283
+ }
284
+ return result;
285
+ }
286
+
287
+ module.exports = {
288
+ getOwnerToggle,
289
+ setOwnerToggle,
290
+ getGroupToggle,
291
+ setGroupToggle,
292
+ deleteGroupToggle,
293
+ invalidateCache,
294
+ clearAllCache,
295
+ getOwnerConfig,
296
+ setOwnerConfig,
297
+ getGroupConfig,
298
+ setGroupConfig,
299
+ getAllGroupConfigs,
300
+ matchTypoTolerant,
301
+ parseToggleCommand,
302
+ parseActionCommand,
303
+ OWNER_TOGGLES,
304
+ GROUP_TOGGLES
305
+ };
package/config.js ADDED
@@ -0,0 +1,32 @@
1
+ require('dotenv').config();
2
+
3
+
4
+ global.APIs = {
5
+ xteam: 'https://api.xteam.xyz',
6
+ dzx: 'https://api.dhamzxploit.my.id',
7
+ lol: 'https://api.lolhuman.xyz',
8
+ violetics: 'https://violetics.pw',
9
+ neoxr: 'https://api.neoxr.my.id',
10
+ zenzapis: 'https://zenzapis.xyz',
11
+ akuari: 'https://api.akuari.my.id',
12
+ akuari2: 'https://apimu.my.id',
13
+ nrtm: 'https://fg-nrtm.ddns.net',
14
+ bg: 'http://bochil.ddns.net',
15
+ fgmods: 'https://api-fgmods.ddns.net'
16
+ };
17
+
18
+ global.APIKeys = {
19
+ 'https://api.xteam.xyz': 'd90a9e986e18778b',
20
+ 'https://api.lolhuman.xyz': '85faf717d0545d14074659ad',
21
+ 'https://api.neoxr.my.id': 'yourkey',
22
+ 'https://violetics.pw': 'beta',
23
+ 'https://zenzapis.xyz': 'yourkey',
24
+ 'https://api-fgmods.ddns.net': 'fg-dylux'
25
+ };
26
+
27
+ module.exports = {
28
+ SESSION_ID: global.SESSION_ID || process.env.SESSION_ID,
29
+ WARN_COUNT: 3,
30
+ APIs: global.APIs,
31
+ APIKeys: global.APIKeys
32
+ };