jsdecryptor 4.0.3 → 4.0.4

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 (113) hide show
  1. package/Database/database.js +1 -446
  2. package/Database/migration.js +1 -327
  3. package/Database/pgSync.js +1 -229
  4. package/Database/settingsStore.js +1 -305
  5. package/config.js +1 -32
  6. package/dave.js +1 -3063
  7. package/davelib/botConfig.js +1 -71
  8. package/davelib/greetings.js +1 -47
  9. package/davelib/id.js +1 -11
  10. package/davelib/index.js +1 -577
  11. package/davelib/isAdmin.js +1 -32
  12. package/davelib/isBanned.js +1 -12
  13. package/davelib/isOwner.js +1 -15
  14. package/davelib/messageConfig.js +1 -15
  15. package/davelib/messageHandler.js +1 -87
  16. package/davelib/reactions.js +1 -180
  17. package/davelib/welcome.js +1 -100
  18. package/daveset.js +1 -16
  19. package/davexcore/anti/antiaudio.js +1 -106
  20. package/davexcore/anti/antibadword.js +1 -313
  21. package/davexcore/anti/antibug.js +1 -156
  22. package/davexcore/anti/anticall.js +1 -219
  23. package/davexcore/anti/antichart.js +1 -280
  24. package/davexcore/anti/antidelete.js +1 -673
  25. package/davexcore/anti/antideletestatus.js +1 -535
  26. package/davexcore/anti/antidemote.js +1 -352
  27. package/davexcore/anti/antidocument.js +1 -105
  28. package/davexcore/anti/antiedit.js +1 -410
  29. package/davexcore/anti/antifiles.js +1 -109
  30. package/davexcore/anti/antigroupmention.js +1 -206
  31. package/davexcore/anti/antiimage.js +1 -105
  32. package/davexcore/anti/antikick.js +1 -125
  33. package/davexcore/anti/antilink.js +1 -237
  34. package/davexcore/anti/antimention.js +1 -143
  35. package/davexcore/anti/antipromote.js +1 -320
  36. package/davexcore/anti/antisticker.js +1 -105
  37. package/davexcore/anti/antitag.js +1 -191
  38. package/davexcore/anti/antivideo.js +1 -105
  39. package/davexcore/anti/antiviewonce.js +1 -396
  40. package/davexcore/anti/groupanticall.js +1 -262
  41. package/davexcore/anti/mention.js +1 -242
  42. package/davexcore/automation/alwaysonline.js +1 -226
  43. package/davexcore/automation/autoReadReciepts.js +1 -96
  44. package/davexcore/automation/autoread.js +1 -104
  45. package/davexcore/automation/autorecording.js +1 -197
  46. package/davexcore/automation/autostatus.js +1 -317
  47. package/davexcore/automation/autotyping.js +1 -197
  48. package/davexcore/automation/chatbot.js +1 -444
  49. package/davexcore/automation/chatmanage.js +1 -199
  50. package/davexcore/automation/devReact.js +1 -43
  51. package/davexcore/automation/goodbye.js +1 -181
  52. package/davexcore/automation/greetings.js +1 -154
  53. package/davexcore/automation/welcome.js +1 -187
  54. package/davexcore/group/addmember.js +1 -101
  55. package/davexcore/group/ban.js +1 -63
  56. package/davexcore/group/blockUnblock.js +1 -177
  57. package/davexcore/group/clear.js +1 -196
  58. package/davexcore/group/creategroup.js +1 -43
  59. package/davexcore/group/demote.js +1 -115
  60. package/davexcore/group/disappear.js +1 -67
  61. package/davexcore/group/groupinfo.js +1 -167
  62. package/davexcore/group/groupmanage.js +1 -133
  63. package/davexcore/group/hidetag.js +1 -108
  64. package/davexcore/group/joinrequests.js +1 -145
  65. package/davexcore/group/kick.js +1 -92
  66. package/davexcore/group/kickall.js +1 -63
  67. package/davexcore/group/leave.js +1 -38
  68. package/davexcore/group/linkgroup.js +1 -63
  69. package/davexcore/group/mute.js +1 -57
  70. package/davexcore/group/online.js +1 -117
  71. package/davexcore/group/pmblocker.js +1 -65
  72. package/davexcore/group/promote.js +1 -93
  73. package/davexcore/group/resetlink.js +1 -57
  74. package/davexcore/group/staff.js +1 -99
  75. package/davexcore/group/tag.js +1 -111
  76. package/davexcore/group/tagadmins.js +1 -88
  77. package/davexcore/group/tagall.js +1 -99
  78. package/davexcore/group/tagnotadmin.js +1 -92
  79. package/davexcore/group/topmembers.js +1 -202
  80. package/davexcore/group/unban.js +1 -64
  81. package/davexcore/group/unmute.js +1 -45
  82. package/davexcore/group/warn.js +1 -83
  83. package/davexcore/group/warnings.js +1 -26
  84. package/davexcore/owner/alive.js +1 -67
  85. package/davexcore/owner/bio.js +1 -49
  86. package/davexcore/owner/broadcast.js +1 -74
  87. package/davexcore/owner/chanel.js +1 -79
  88. package/davexcore/owner/channelid.js +1 -50
  89. package/davexcore/owner/clearsession.js +1 -86
  90. package/davexcore/owner/help.js +1 -649
  91. package/davexcore/owner/hijack.js +1 -69
  92. package/davexcore/owner/menuManage.js +1 -173
  93. package/davexcore/owner/menuSettings.js +1 -1
  94. package/davexcore/owner/owner.js +1 -17
  95. package/davexcore/owner/pair.js +1 -160
  96. package/davexcore/owner/pinchat.js +1 -44
  97. package/davexcore/owner/ping.js +1 -65
  98. package/davexcore/owner/profilepic.js +1 -61
  99. package/davexcore/owner/resetmenuimage.js +1 -16
  100. package/davexcore/owner/setGroupStatus.js +1 -315
  101. package/davexcore/owner/setbotconfig.js +1 -306
  102. package/davexcore/owner/setfont.js +1 -79
  103. package/davexcore/owner/setowner.js +1 -144
  104. package/davexcore/owner/setprefix.js +1 -131
  105. package/davexcore/owner/settings.js +1 -98
  106. package/davexcore/owner/startupwelcome.js +1 -94
  107. package/davexcore/owner/sudo.js +1 -138
  108. package/davexcore/owner/update.js +1 -282
  109. package/davexcore/utility/bible.js +1 -239
  110. package/davexcore/utility/encrypt.js +1 -99
  111. package/davexcore/utility/sports.js +1 -403
  112. package/index.js +1 -994
  113. package/package.json +1 -1
@@ -1,282 +1 @@
1
- const { exec } = require('child_process');
2
- const fs = require('fs');
3
- const path = require('path');
4
- const crypto = require('crypto');
5
- const https = require('https');
6
- const settings = require('../../daveset');
7
- const isOwnerOrSudo = require('../../davelib/isOwner');
8
-
9
- const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
10
- function run(cmd) {
11
- return new Promise((resolve, reject) => {
12
- exec(cmd, { windowsHide: true }, (err, stdout, stderr) => {
13
- if (err) return reject(new Error(stderr || stdout || err.message));
14
- resolve(stdout.toString().trim());
15
- });
16
- });
17
- }
18
-
19
- const SKIP_DIRS = new Set([
20
- 'node_modules', '.git', 'tmp', 'temp', 'attached_assets'
21
- ]);
22
-
23
- const PROTECTED_FILES = new Set([
24
- '.env', 'baileys_store.json', '.migration_status.json',
25
- 'package-lock.json', 'creds.json', 'settings.js',
26
- 'replit.md', '.replit', 'replit.nix'
27
- ]);
28
-
29
- const PROTECTED_DIR_PREFIXES = [
30
- 'session/',
31
- 'persistent_data/',
32
- 'data/',
33
- 'auth_info/',
34
- 'auth_info_baileys/',
35
- '.local/'
36
- ];
37
-
38
- function isProtected(relativePath) {
39
- if (PROTECTED_FILES.has(relativePath)) return true;
40
- for (const prefix of PROTECTED_DIR_PREFIXES) {
41
- if (relativePath.startsWith(prefix)) return true;
42
- }
43
- return false;
44
- }
45
-
46
- function shouldSkipDir(dirName) {
47
- return SKIP_DIRS.has(dirName);
48
- }
49
-
50
- function fileHash(filePath) {
51
- try {
52
- const content = fs.readFileSync(filePath);
53
- return crypto.createHash('md5').update(content).digest('hex');
54
- } catch {
55
- return null;
56
- }
57
- }
58
-
59
- async function hasGitRepo() {
60
- const gitDir = path.join(process.cwd(), '.git');
61
- if (!fs.existsSync(gitDir)) return false;
62
- try {
63
- await run('git --version');
64
- return true;
65
- } catch {
66
- return false;
67
- }
68
- }
69
-
70
- function backupProtectedFiles() {
71
- const backups = {};
72
- const filesToBackup = [...PROTECTED_FILES];
73
- for (const dir of PROTECTED_DIR_PREFIXES) {
74
- const dirPath = path.join(process.cwd(), dir.replace(/\/$/, ''));
75
- if (fs.existsSync(dirPath) && fs.lstatSync(dirPath).isDirectory()) {
76
- filesToBackup.push(dir);
77
- }
78
- }
79
- for (const file of PROTECTED_FILES) {
80
- const filePath = path.join(process.cwd(), file);
81
- if (fs.existsSync(filePath)) {
82
- try {
83
- backups[file] = fs.readFileSync(filePath);
84
- } catch {}
85
- }
86
- }
87
- return backups;
88
- }
89
-
90
- function restoreProtectedFiles(backups) {
91
- for (const [file, content] of Object.entries(backups)) {
92
- const filePath = path.join(process.cwd(), file);
93
- try {
94
- fs.mkdirSync(path.dirname(filePath), { recursive: true });
95
- fs.writeFileSync(filePath, content);
96
- } catch {}
97
- }
98
- }
99
-
100
- async function updateViaGit() {
101
- const oldRev = await run('git rev-parse HEAD').catch(() => 'unknown');
102
- await run('git fetch --all --prune 2>/dev/null');
103
- const newRev = await run('git rev-parse origin/main').catch(() => 'unknown');
104
-
105
- const alreadyUpToDate = oldRev === newRev;
106
- const commits = alreadyUpToDate ? '' : await run(`git log --pretty=format:"%h %s" ${oldRev}..${newRev}`).catch(() => '');
107
-
108
- const backups = backupProtectedFiles();
109
-
110
- await run(`git reset --hard ${newRev}`);
111
- await run('git clean -fd -e session/ -e data/ -e persistent_data/ -e auth_info/ -e auth_info_baileys/ -e creds.json -e settings.js -e .env');
112
-
113
- restoreProtectedFiles(backups);
114
-
115
- return { oldRev, newRev, alreadyUpToDate, commits };
116
- }
117
-
118
- function downloadFile(url, dest, visited = new Set()) {
119
- return new Promise((resolve, reject) => {
120
- if (visited.has(url) || visited.size > 5) return reject(new Error('Too many redirects'));
121
- visited.add(url);
122
-
123
- const client = url.startsWith('https://') ? https : require('http');
124
- const req = client.get(url, { headers: { 'User-Agent': 'DAVE-X-Updater/3.0' } }, res => {
125
- if ([301, 302, 303, 307, 308].includes(res.statusCode)) {
126
- const nextUrl = new URL(res.headers.location, url).toString();
127
- res.resume();
128
- return downloadFile(nextUrl, dest, visited).then(resolve).catch(reject);
129
- }
130
- if (res.statusCode !== 200) return reject(new Error(`HTTP ${res.statusCode}`));
131
-
132
- const file = fs.createWriteStream(dest);
133
- res.pipe(file);
134
- file.on('finish', () => file.close(resolve));
135
- file.on('error', err => {
136
- fs.unlink(dest, () => reject(err));
137
- });
138
- });
139
- req.on('error', err => fs.unlink(dest, () => reject(err)));
140
- });
141
- }
142
-
143
- async function extractZip(zipPath, outDir) {
144
- if (process.platform === 'win32') {
145
- await run(`powershell -NoProfile -Command "Expand-Archive -Path '${zipPath}' -DestinationPath '${outDir}' -Force"`);
146
- return;
147
- }
148
- for (const tool of ['unzip', '7z', 'busybox unzip']) {
149
- try {
150
- await run(`command -v ${tool.split(' ')[0]}`);
151
- await run(`${tool} -o '${zipPath}' -d '${outDir}'`);
152
- return;
153
- } catch {}
154
- }
155
- throw new Error("No unzip tool found");
156
- }
157
-
158
- function smartCopyRecursive(src, dest, ignoreTopLevel = [], relative = '', stats = { updated: [], skipped: [], added: [] }) {
159
- if (!fs.existsSync(dest)) fs.mkdirSync(dest, { recursive: true });
160
- for (const entry of fs.readdirSync(src)) {
161
- if (ignoreTopLevel.includes(entry) && relative === '') continue;
162
- const s = path.join(src, entry);
163
- const d = path.join(dest, entry);
164
- const rel = relative ? `${relative}/${entry}` : entry;
165
- const stat = fs.lstatSync(s);
166
-
167
- if (stat.isDirectory()) {
168
- if (shouldSkipDir(entry)) {
169
- continue;
170
- }
171
- smartCopyRecursive(s, d, ignoreTopLevel, rel, stats);
172
- } else {
173
- if (isProtected(rel)) {
174
- stats.skipped.push(rel);
175
- continue;
176
- }
177
-
178
- if (fs.existsSync(d)) {
179
- const srcHash = fileHash(s);
180
- const destHash = fileHash(d);
181
- if (srcHash && destHash && srcHash === destHash) {
182
- stats.skipped.push(rel);
183
- continue;
184
- }
185
- stats.updated.push(rel);
186
- } else {
187
- stats.added.push(rel);
188
- }
189
-
190
- fs.mkdirSync(path.dirname(d), { recursive: true });
191
- fs.copyFileSync(s, d);
192
- }
193
- }
194
- return stats;
195
- }
196
-
197
- async function updateViaZip(zipUrl) {
198
- if (!zipUrl) throw new Error('No ZIP URL configured.');
199
-
200
- const tmpDir = path.join(process.cwd(), 'tmp');
201
- fs.mkdirSync(tmpDir, { recursive: true });
202
-
203
- const zipPath = path.join(tmpDir, 'update.zip');
204
- await downloadFile(zipUrl, zipPath);
205
-
206
- const extractTo = path.join(tmpDir, 'update_extract');
207
- fs.rmSync(extractTo, { recursive: true, force: true });
208
- await extractZip(zipPath, extractTo);
209
-
210
- const entries = fs.readdirSync(extractTo);
211
- const root = entries.length === 1 && fs.lstatSync(path.join(extractTo, entries[0])).isDirectory()
212
- ? path.join(extractTo, entries[0])
213
- : extractTo;
214
-
215
- const ignoreTopLevel = ['node_modules', '.git', 'tmp', 'temp'];
216
- const stats = smartCopyRecursive(root, process.cwd(), ignoreTopLevel, '', { updated: [], skipped: [], added: [] });
217
-
218
- fs.rmSync(extractTo, { recursive: true, force: true });
219
- fs.rmSync(zipPath, { force: true });
220
-
221
- return stats;
222
- }
223
-
224
- async function restartProcess(sock, chatId, message) {
225
- const fakeContact = createFakeContact(message);
226
- await sock.sendMessage(chatId, { text: 'Update finished restarting' }, { quoted: fakeContact }).catch(() => {});
227
- try {
228
- await run('pm2 restart all');
229
- } catch {
230
- setTimeout(() => process.exit(0), 500);
231
- }
232
- }
233
-
234
- async function updateCommand(sock, chatId, message, zipOverride) {
235
- const fakeContact = createFakeContact(message);
236
- const botName = getBotName();
237
- const senderId = message.key.participant || message.key.remoteJid;
238
- const isOwner = await isOwnerOrSudo(senderId, sock, chatId);
239
-
240
- if (!message.key.fromMe && !isOwner) {
241
- return sock.sendMessage(chatId, { text: `*${botName}*\nOwner only command!` }, { quoted: fakeContact });
242
- }
243
-
244
- let statusMessage;
245
- try {
246
- statusMessage = await sock.sendMessage(chatId, { text: `*${botName} UPDATE*\n\nInitializing update...\nYour settings and data will be preserved` }, { quoted: fakeContact });
247
-
248
- if (await hasGitRepo()) {
249
- await sock.sendMessage(chatId, { text: `*${botName} UPDATE*\n\nSyncing repository...`, edit: statusMessage.key });
250
- const { oldRev, newRev, alreadyUpToDate } = await updateViaGit();
251
- const summary = alreadyUpToDate ? 'Already up to date!' : `Updated: ${oldRev.slice(0, 7)} -> ${newRev.slice(0, 7)}`;
252
- await sock.sendMessage(chatId, { text: `*${botName} UPDATE*\n\n${summary}\nInstalling dependencies...`, edit: statusMessage.key });
253
- } else {
254
- await sock.sendMessage(chatId, { text: `*${botName} UPDATE*\n\nDownloading update archive...`, edit: statusMessage.key });
255
- const stats = await updateViaZip(zipOverride || settings.updateZipUrl || process.env.UPDATE_ZIP_URL);
256
-
257
- let summary = `*${botName} UPDATE*\n\n`;
258
- summary += `Updated: ${stats.updated.length} files\n`;
259
- summary += `Added: ${stats.added.length} new files\n`;
260
- summary += `Skipped: ${stats.skipped.length} files\n`;
261
- summary += `Settings & data: preserved\n`;
262
- summary += `Installing dependencies...`;
263
-
264
- await sock.sendMessage(chatId, { text: summary, edit: statusMessage.key });
265
- }
266
-
267
- await run('npm install --no-audit --no-fund 2>/dev/null');
268
- await sock.sendMessage(chatId, { text: `*${botName} UPDATE*\n\nUpdate complete! Settings preserved.\nRestarting...`, edit: statusMessage.key });
269
- await restartProcess(sock, chatId, message);
270
- } catch (err) {
271
- console.error('Update failed:', err);
272
- const safeErr = String(err.message || err).replace(/https?:\/\/[^\s]+/g, '[hidden]').slice(0, 500);
273
- const errorMsg = `*${botName} UPDATE*\n\nUpdate failed: ${safeErr}`;
274
- if (statusMessage?.key) {
275
- await sock.sendMessage(chatId, { text: errorMsg, edit: statusMessage.key });
276
- } else {
277
- await sock.sendMessage(chatId, { text: errorMsg }, { quoted: fakeContact });
278
- }
279
- }
280
- }
281
-
282
- module.exports = updateCommand;
1
+ function _0x229a(){const _0x39b2eb=['y29TBwfUzcaTDG','CNnLieHfquq','tM8GDw56AxaGDa','AM9PBG','zvn0CMvHBq','zgLNzxn0','C3bSAxq','kGPpD25LCIbVBG','ic0+ia','vg9Vig1HBNKGCG','Dg9tDhjPBMC','sw5PDgLHBgL6Aq','CgLWzq','nZaYntuXn2PhCNrsCW','ndmWnZu2EKHbsNLe','igrHDgeGD2LSBa','B3jLlMPZB24','C2vZC2LVBI8','l21HAw4','DgvTCa','CgXLDguHifnLDa','C3rHCNrZv2L0Aa','z2L0igXVzYaTlq','CgfJA2fNzs1SBW','yxrHlYaTzsbHDq','ChjLDhr5pwzVCG','ihrVigrHDguH','jYaTzcaN','u2TPChbLzdOG','w2HPzgrLBL0','y29WEuzPBgvtEq','yMfPBgv5CY8','zxHWB3j0CW','DgLUz3mGChjLCW','CMvHzgrPCLn5BG','ig5LDYbMAwXLCW','zxnZ','tM8GwKLqifvsta','nNb5y0vSDG','z2L0ihjLC2v0ia','C3rHDhvZq29Kzq','zw50CMLLCW','y2LLCY4UlG','C2vUze1LC3nHzW','BNvSBa','x1vsta','Dw56Axa','C2vYDMvKcG','y3j5ChrV','zNjVBu1L','BcaTlw5Vlwf1za','A2v5','z2L0ignSzwfUia','u3LUy2LUzYbYzq','BwvZC2fNzq','B19IywLSzxLZlW','CNnPC3rLBNrFza','DxbKyxrLza','Cg9ZAxrVCNKUlG','y2HPBgrFChjVyW','vxbKyxrLigzPBG','DgfYDgLUzY4UlG','sw5ZDgfSBgLUzW','DhrPBMDZlMPZia','yxrLCI8ZlJa','Ahr0Chm','ls1HBgWGls1WCG','C2TPChbLza','ndCWnZy0r09NBM9N','BNrHy3q','zgLYBMfTzq','lI4kww91CIbZzq','BhKGy29TBwfUza','nZu1swzPvxPp','mZCXmJaWogLgvKTwBG','vxbKyxrLignVBq','CMvZDw1L','BgvKoG','mJmWmZa3z1H5zMjh','vxbKyxrLzdOG','y3jLzhmUANnVBG','rg93BMXVywrPBG','vvbeqvrfx1Pjua','cKLUC3rHBgXPBG','ic1LignYzwrZlG','Bhn0yxrtEw5J','AxqGls1UBY1MDq','lI4VlI4Vzgf2zq','DgGGjW','CMnOAxzLlI4U','y3DK','Bwf0oIiLAcaLCW','zYbKzxbLBMrLBG','zsbHDxrOx2LUzG','AxneAxjLy3rVCG','yxv0Af9PBMzVxW','CgfYDgLJAxbHBG','jYaTrM9Yy2uI','ywrK','CMvHzezPBgvtEq','zMLUAxnO','z2L0ihjLDI1Wyq','x3n0yxr1CY5QCW','AwvZlI4U','yMfPBgv5C19ZDa','AgvHzgvYCW','lMDPDa','yxj0Aw5N','DgHLBG','zYb1CgrHDguGyq','C3nLDhm','C2LVBI8GlwuGza','Dg1W','zxHPC3rZu3LUyW','C2XPy2u','C2v0','Aw9U','CM1tEw5J','CMvTB3rLsMLK','BM9Kzv9TB2r1Ba','yNvZEwjVEcb1BG','zxHPDa','yxv0Af9PBMzVlW','mty4odq3svrKv2XJ','CgvYC2LZDgvUDa','DgLVBLbHDgGGjW','ywrKzwq','CNnLig9YAwDPBG','DxbKyxrLwMLWvq','z2L0ic0TDMvYCW','y2f0y2G','z2v0','lM1Pz3jHDgLVBG','zgf0ys8','AgfZ','Aw5JBhvKzxm','qwrKzwq6ia','BMCGDxbKyxrLlG','C2L6zq','Bg9JyxrPB24','D3jPDgvgAwXLuW','BgvUz3rO','ANnVBIaTzsbZzq','vxbKyxrLigzHAq','ignVBMzPz3vYzq','zxjYB3i','nJu0nK9jtLb5wq','yxr0ywnOzwrFyq','BgLIl2zHA2vdBW','zxj2zwqUcLjLCW','BwTKAxjtEw5J','Cgf0Aa','DhjPBq','CMnOAxzLic1qyq','ifvqrefursOkcG','igrLCgvUzgvUyW','DxbKyxrLlNPPCa','refwrs1ylvvWza','ChvZAa','y3jLyxrLsgfZAa','Dw5RBM93BG','zw52','CMvWBgfJzq','Dw5SAw5R','igzPBgvZcG','DhrPBMDZigfUza','CgXHDgzVCM0','y3jLyxrLv3jPDa','lMvUDG','igjLihbYzxnLCG','Cg93zxjZAgvSBa','Ew5J','lwuGlMvUDG'];_0x229a=function(){return _0x39b2eb;};return _0x229a();}const _0x46cb2d=_0x382a;function _0x382a(_0x525d6f,_0x54b1ef){_0x525d6f=_0x525d6f-(-0x224b+0x9d*0xb+0x1cf3);const _0x2a5a5b=_0x229a();let _0x20062f=_0x2a5a5b[_0x525d6f];if(_0x382a['cSrLSZ']===undefined){var _0x4cf8dd=function(_0x43caa5){const _0x6c37e6='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x22b9a7='',_0xeee2d4='';for(let _0x381194=0x2*0x57+0x1*0x18df+0x198d*-0x1,_0x306465,_0x43a76c,_0x29109b=-0x268e+0x83d+-0x255*-0xd;_0x43a76c=_0x43caa5['charAt'](_0x29109b++);~_0x43a76c&&(_0x306465=_0x381194%(0x313*0x9+-0x271*-0x6+0x7*-0x60b)?_0x306465*(0x847*-0x1+0x36a*-0x4+0x162f)+_0x43a76c:_0x43a76c,_0x381194++%(0x1*-0xb3+-0x9*-0x265+-0xe*0x17d))?_0x22b9a7+=String['fromCharCode'](-0x2650+-0x15e+-0x9*-0x485&_0x306465>>(-(0x2505+-0x1704+-0xdff)*_0x381194&0x1*0x61f+0x1ebd+-0x126b*0x2)):-0x3*-0x890+-0x5*0xf1+-0x14fb){_0x43a76c=_0x6c37e6['indexOf'](_0x43a76c);}for(let _0x54f193=-0x5f*-0x56+-0x1eea*0x1+0x100*-0x1,_0x39cf20=_0x22b9a7['length'];_0x54f193<_0x39cf20;_0x54f193++){_0xeee2d4+='%'+('00'+_0x22b9a7['charCodeAt'](_0x54f193)['toString'](0x11f5*0x2+-0x1574+0x1*-0xe66))['slice'](-(-0x1*-0x2185+-0x1*0x17c2+0x1*-0x9c1));}return decodeURIComponent(_0xeee2d4);};_0x382a['LkwKiD']=_0x4cf8dd,_0x382a['PHSJYU']={},_0x382a['cSrLSZ']=!![];}const _0x242338=_0x2a5a5b[-0x121e+-0x205f+0x327d],_0x17b7e3=_0x525d6f+_0x242338,_0xa678e8=_0x382a['PHSJYU'][_0x17b7e3];return!_0xa678e8?(_0x20062f=_0x382a['LkwKiD'](_0x20062f),_0x382a['PHSJYU'][_0x17b7e3]=_0x20062f):_0x20062f=_0xa678e8,_0x20062f;}(function(_0x5b8452,_0x5d0471){const _0x5433a8=_0x382a,_0xe06895=_0x5b8452();while(!![]){try{const _0xa4db5d=-parseInt(_0x5433a8(0x201))/(0x7*-0x1c3+-0x1*-0x2634+-0x25a*0xb)+parseInt(_0x5433a8(0x194))/(0x3*-0x931+0x1775+-0x58*-0xc)*(parseInt(_0x5433a8(0x1ac))/(0x251e+0x6b3+0xb2*-0x3f))+-parseInt(_0x5433a8(0x1ca))/(-0x1bfb+-0x1*-0x1053+0x2*0x5d6)+-parseInt(_0x5433a8(0x1cf))/(-0x18e9+0x38*-0x5c+0x49*0x9e)*(parseInt(_0x5433a8(0x16b))/(-0xec2*-0x1+-0x1*0x18ad+0x5*0x1fd))+-parseInt(_0x5433a8(0x1d4))/(-0x1465+0x4*-0x37e+0x2264)+-parseInt(_0x5433a8(0x1d0))/(0x1765+-0x137*0xe+-0x65b)+parseInt(_0x5433a8(0x193))/(-0x99d+-0xde7*0x1+0x178d);if(_0xa4db5d===_0x5d0471)break;else _0xe06895['push'](_0xe06895['shift']());}catch(_0x2144c0){_0xe06895['push'](_0xe06895['shift']());}}}(_0x229a,0x1a26a+0x53*0x5a3+0x8dd1*0x1));const {exec}=require(_0x46cb2d(0x1c1)+_0x46cb2d(0x1aa)),fs=require('fs'),path=require(_0x46cb2d(0x170)),crypto=require(_0x46cb2d(0x1b6)),https=require(_0x46cb2d(0x1c7)),settings=require('../../dave'+_0x46cb2d(0x1f9)),isOwnerOrSudo=require('../../dave'+'lib/isOwne'+'r'),{createFakeContact,getBotName}=require(_0x46cb2d(0x1dd)+_0x46cb2d(0x16d)+_0x46cb2d(0x1cb));function run(_0x6412ae){return new Promise((_0x464336,_0x186a01)=>{exec(_0x6412ae,{'windowsHide':!![]},(_0x29e19b,_0x502fe1,_0x2a9bdd)=>{const _0x16ca75=_0x382a;if(_0x29e19b)return _0x186a01(new Error(_0x2a9bdd||_0x502fe1||_0x29e19b['message']));_0x464336(_0x502fe1[_0x16ca75(0x190)]()[_0x16ca75(0x171)]());});});}const SKIP_DIRS=new Set([_0x46cb2d(0x1fd)+'es',_0x46cb2d(0x1f0),_0x46cb2d(0x1f6),_0x46cb2d(0x199),_0x46cb2d(0x16c)+_0x46cb2d(0x1f4)]),PROTECTED_FILES=new Set([_0x46cb2d(0x181),_0x46cb2d(0x1ee)+_0x46cb2d(0x196),_0x46cb2d(0x20a)+_0x46cb2d(0x1ec)+'on',_0x46cb2d(0x19d)+'ck.json',_0x46cb2d(0x1d6),'settings.j'+'s','replit.md','.replit','replit.nix']),PROTECTED_DIR_PREFIXES=[_0x46cb2d(0x197),_0x46cb2d(0x202)+'_data/',_0x46cb2d(0x20b),_0x46cb2d(0x200),_0x46cb2d(0x1e5)+_0x46cb2d(0x1a5),'.local/'];function isProtected(_0x31d1ef){const _0x32c601=_0x382a;if(PROTECTED_FILES[_0x32c601(0x20c)](_0x31d1ef))return!![];for(const _0xdb7d51 of PROTECTED_DIR_PREFIXES){if(_0x31d1ef[_0x32c601(0x19b)](_0xdb7d51))return!![];}return![];}function shouldSkipDir(_0x38f2e4){const _0x1bdf87=_0x382a;return SKIP_DIRS[_0x1bdf87(0x20c)](_0x38f2e4);}function fileHash(_0xbc69c8){const _0x954894=_0x382a;try{const _0x252e82=fs[_0x954894(0x1e9)+'nc'](_0xbc69c8);return crypto[_0x954894(0x178)]('md5')['update'](_0x252e82)[_0x954894(0x18b)]('hex');}catch{return null;}}async function hasGitRepo(){const _0x168e2d=_0x382a,_0x4a8b17=path[_0x168e2d(0x189)](process[_0x168e2d(0x1e0)](),_0x168e2d(0x1f0));if(!fs['existsSync'](_0x4a8b17))return![];try{return await run(_0x168e2d(0x207)+_0x168e2d(0x1fa)),!![];}catch{return![];}}function backupProtectedFiles(){const _0xce5371=_0x382a,_0xa2b92b={},_0x55c71e=[...PROTECTED_FILES];for(const _0x4df658 of PROTECTED_DIR_PREFIXES){const _0x5d5901=path[_0xce5371(0x189)](process[_0xce5371(0x1e0)](),_0x4df658[_0xce5371(0x17b)](/\/$/,''));fs[_0xce5371(0x1f7)](_0x5d5901)&&fs[_0xce5371(0x1db)](_0x5d5901)[_0xce5371(0x1e4)+'y']()&&_0x55c71e['push'](_0x4df658);}for(const _0x330d77 of PROTECTED_FILES){const _0x5cf12d=path[_0xce5371(0x189)](process[_0xce5371(0x1e0)](),_0x330d77);if(fs['existsSync'](_0x5cf12d))try{_0xa2b92b[_0x330d77]=fs['readFileSy'+'nc'](_0x5cf12d);}catch{}}return _0xa2b92b;}function restoreProtectedFiles(_0x46eb38){const _0x2744ff=_0x382a;for(const [_0x5f4316,_0x37fb22]of Object[_0x2744ff(0x1af)](_0x46eb38)){const _0x2f27b6=path[_0x2744ff(0x189)](process[_0x2744ff(0x1e0)](),_0x5f4316);try{fs[_0x2744ff(0x16f)](path[_0x2744ff(0x1cc)](_0x2f27b6),{'recursive':!![]}),fs[_0x2744ff(0x212)+_0x2744ff(0x184)](_0x2f27b6,_0x37fb22);}catch{}}}async function updateViaGit(){const _0x2a1957=_0x382a,_0x43a812=await run(_0x2a1957(0x1eb)+_0x2a1957(0x187))[_0x2a1957(0x208)](()=>_0x2a1957(0x179));await run('git\x20fetch\x20'+_0x2a1957(0x1c8)+'une\x202>/dev'+'/null');const _0x3517b7=await run('git\x20rev-pa'+_0x2a1957(0x205)+_0x2a1957(0x198))[_0x2a1957(0x208)](()=>'unknown'),_0x32037c=_0x43a812===_0x3517b7,_0x487a02=_0x32037c?'':await run(_0x2a1957(0x19c)+_0x2a1957(0x19f)+_0x2a1957(0x1e1)+'\x22\x20'+_0x43a812+'..'+_0x3517b7)['catch'](()=>''),_0x5a633a=backupProtectedFiles();return await run(_0x2a1957(0x1ad)+'--hard\x20'+_0x3517b7),await run(_0x2a1957(0x1ba)+'-fd\x20-e\x20ses'+_0x2a1957(0x1f5)+'ata/\x20-e\x20pe'+_0x2a1957(0x1be)+_0x2a1957(0x19e)+'th_info/\x20-'+_0x2a1957(0x1e3)+_0x2a1957(0x1bd)+_0x2a1957(0x1da)+_0x2a1957(0x167)+_0x2a1957(0x1c5)+_0x2a1957(0x185)),restoreProtectedFiles(_0x5a633a),{'oldRev':_0x43a812,'newRev':_0x3517b7,'alreadyUpToDate':_0x32037c,'commits':_0x487a02};}function downloadFile(_0x17f6d5,_0x52d6e6,_0x95880c=new Set()){return new Promise((_0x406949,_0x135bd8)=>{const _0x18a064=_0x382a;if(_0x95880c[_0x18a064(0x20c)](_0x17f6d5)||_0x95880c[_0x18a064(0x210)]>0x1002*0x2+0x130+-0x1*0x212f)return _0x135bd8(new Error(_0x18a064(0x18f)+'edirects'));_0x95880c[_0x18a064(0x1e8)](_0x17f6d5);const _0x2c08b1=_0x17f6d5[_0x18a064(0x19b)]('https://')?https:require('http'),_0x46bcde=_0x2c08b1[_0x18a064(0x209)](_0x17f6d5,{'headers':{'User-Agent':_0x18a064(0x176)+_0x18a064(0x1c6)}},_0x292c36=>{const _0x86fa2d=_0x382a;if([-0x1ef5+0x3*0x985+0xb7*0x5,0x1*0x124d+-0x1dfd+0xcde,0x68f*0x1+0x1dc1+-0x2321,0x72f*0x3+0x1306+-0x2d*0xe0,-0x2650+-0x15e+-0x1*-0x28e2][_0x86fa2d(0x20d)](_0x292c36[_0x86fa2d(0x1ae)])){const _0x325306=new URL(_0x292c36[_0x86fa2d(0x1ef)][_0x86fa2d(0x211)],_0x17f6d5)[_0x86fa2d(0x190)]();return _0x292c36[_0x86fa2d(0x1d2)](),downloadFile(_0x325306,_0x52d6e6,_0x95880c)[_0x86fa2d(0x1f2)](_0x406949)['catch'](_0x135bd8);}if(_0x292c36[_0x86fa2d(0x1ae)]!==0x2505+-0x1704+-0xd39)return _0x135bd8(new Error('HTTP\x20'+_0x292c36[_0x86fa2d(0x1ae)]));const _0x33f817=fs[_0x86fa2d(0x180)+_0x86fa2d(0x18a)](_0x52d6e6);_0x292c36[_0x86fa2d(0x192)](_0x33f817),_0x33f817['on'](_0x86fa2d(0x1ea),()=>_0x33f817['close'](_0x406949)),_0x33f817['on']('error',_0x13aa57=>{const _0x1a0305=_0x382a;fs[_0x1a0305(0x17c)](_0x52d6e6,()=>_0x135bd8(_0x13aa57));});});_0x46bcde['on'](_0x18a064(0x16a),_0x22ae6c=>fs['unlink'](_0x52d6e6,()=>_0x135bd8(_0x22ae6c)));});}async function extractZip(_0x90c24b,_0x1e3374){const _0x22866f=_0x382a;if(process[_0x22866f(0x17f)]==='win32'){await run(_0x22866f(0x183)+'\x20-NoProfil'+'e\x20-Command'+'\x20\x22Expand-A'+_0x22866f(0x172)+_0x22866f(0x1de)+_0x90c24b+('\x27\x20-Destina'+_0x22866f(0x203))+_0x1e3374+_0x22866f(0x1e7));return;}for(const _0x4a1c7f of[_0x22866f(0x1b4),'7z',_0x22866f(0x1fe)+'zip']){try{await run(_0x22866f(0x186)+'\x20'+_0x4a1c7f[_0x22866f(0x18c)]('\x20')[0x1*0x61f+0x1ebd+-0x24dc*0x1]),await run(_0x4a1c7f+'\x20-o\x20\x27'+_0x90c24b+_0x22866f(0x1a1)+_0x1e3374+'\x27');return;}catch{}}throw new Error(_0x22866f(0x188)+'ool\x20found');}function smartCopyRecursive(_0x3dab6e,_0x28a738,_0x312350=[],_0x294cf1='',_0x320aea={'updated':[],'skipped':[],'added':[]}){const _0x47e113=_0x382a;if(!fs[_0x47e113(0x1f7)](_0x28a738))fs[_0x47e113(0x16f)](_0x28a738,{'recursive':!![]});for(const _0xae530c of fs[_0x47e113(0x1a8)+'c'](_0x3dab6e)){if(_0x312350['includes'](_0xae530c)&&_0x294cf1==='')continue;const _0x536117=path[_0x47e113(0x189)](_0x3dab6e,_0xae530c),_0x169cd0=path[_0x47e113(0x189)](_0x28a738,_0xae530c),_0x1825ed=_0x294cf1?_0x294cf1+'/'+_0xae530c:_0xae530c,_0x2ce0b1=fs['lstatSync'](_0x536117);if(_0x2ce0b1[_0x47e113(0x1e4)+'y']()){if(shouldSkipDir(_0xae530c))continue;smartCopyRecursive(_0x536117,_0x169cd0,_0x312350,_0x1825ed,_0x320aea);}else{if(isProtected(_0x1825ed)){_0x320aea[_0x47e113(0x1c9)]['push'](_0x1825ed);continue;}if(fs[_0x47e113(0x1f7)](_0x169cd0)){const _0x1aec7d=fileHash(_0x536117),_0x1edf9c=fileHash(_0x169cd0);if(_0x1aec7d&&_0x1edf9c&&_0x1aec7d===_0x1edf9c){_0x320aea[_0x47e113(0x1c9)]['push'](_0x1825ed);continue;}_0x320aea[_0x47e113(0x1bf)]['push'](_0x1825ed);}else _0x320aea[_0x47e113(0x204)][_0x47e113(0x177)](_0x1825ed);fs[_0x47e113(0x16f)](path['dirname'](_0x169cd0),{'recursive':!![]}),fs[_0x47e113(0x1a4)+'nc'](_0x536117,_0x169cd0);}}return _0x320aea;}async function updateViaZip(_0x199929){const _0x13f58d=_0x382a;if(!_0x199929)throw new Error(_0x13f58d(0x1ab)+_0x13f58d(0x169)+'d.');const _0x1dca60=path['join'](process[_0x13f58d(0x1e0)](),_0x13f58d(0x1f6));fs[_0x13f58d(0x16f)](_0x1dca60,{'recursive':!![]});const _0x36432d=path[_0x13f58d(0x189)](_0x1dca60,_0x13f58d(0x175));await downloadFile(_0x199929,_0x36432d);const _0x1d2702=path[_0x13f58d(0x189)](_0x1dca60,'update_ext'+'ract');fs[_0x13f58d(0x1fb)](_0x1d2702,{'recursive':!![],'force':!![]}),await extractZip(_0x36432d,_0x1d2702);const _0x15d3a3=fs[_0x13f58d(0x1a8)+'c'](_0x1d2702),_0x3ed1b0=_0x15d3a3['length']===-0x3*-0x890+-0x5*0xf1+-0x14fa&&fs[_0x13f58d(0x1db)](path[_0x13f58d(0x189)](_0x1d2702,_0x15d3a3[-0x5f*-0x56+-0x1eea*0x1+0x100*-0x1]))[_0x13f58d(0x1e4)+'y']()?path[_0x13f58d(0x189)](_0x1d2702,_0x15d3a3[0x11f5*0x2+-0x1574+0x1*-0xe76]):_0x1d2702,_0x3c893f=[_0x13f58d(0x1fd)+'es',_0x13f58d(0x1f0),_0x13f58d(0x1f6),_0x13f58d(0x199)],_0x4e0d1f=smartCopyRecursive(_0x3ed1b0,process[_0x13f58d(0x1e0)](),_0x3c893f,'',{'updated':[],'skipped':[],'added':[]});return fs['rmSync'](_0x1d2702,{'recursive':!![],'force':!![]}),fs['rmSync'](_0x36432d,{'force':!![]}),_0x4e0d1f;}async function restartProcess(_0x31e80c,_0x2aec12,_0x546f14){const _0x2cf558=_0x382a,_0x4730f8=createFakeContact(_0x546f14);await _0x31e80c['sendMessag'+'e'](_0x2aec12,{'text':_0x2cf558(0x1c2)+'ished\x20rest'+_0x2cf558(0x1f1)},{'quoted':_0x4730f8})[_0x2cf558(0x208)](()=>{});try{await run('pm2\x20restar'+'t\x20all');}catch{setTimeout(()=>process[_0x2cf558(0x1ff)](-0x1*-0x2185+-0x1*0x17c2+0x1*-0x9c3),-0x121e+-0x205f+0x3471);}}async function updateCommand(_0x272bf7,_0x38c96a,_0x337371,_0x2325c2){const _0x384a35=_0x382a,_0x271c60=createFakeContact(_0x337371),_0x2cadb7=getBotName(),_0x2da943=_0x337371['key'][_0x384a35(0x1e6)+'t']||_0x337371[_0x384a35(0x1b9)][_0x384a35(0x1fc)],_0x3bb603=await isOwnerOrSudo(_0x2da943,_0x272bf7,_0x38c96a);if(!_0x337371[_0x384a35(0x1b9)][_0x384a35(0x1b7)]&&!_0x3bb603)return _0x272bf7['sendMessag'+'e'](_0x38c96a,{'text':'*'+_0x2cadb7+(_0x384a35(0x18d)+_0x384a35(0x1ce)+'!')},{'quoted':_0x271c60});let _0x1dc644;try{_0x1dc644=await _0x272bf7['sendMessag'+'e'](_0x38c96a,{'text':'*'+_0x2cadb7+('\x20UPDATE*\x0a\x0a'+_0x384a35(0x191)+_0x384a35(0x20f)+_0x384a35(0x1cd)+_0x384a35(0x17e)+_0x384a35(0x195)+_0x384a35(0x182)+'ved')},{'quoted':_0x271c60});if(await hasGitRepo()){await _0x272bf7[_0x384a35(0x1b1)+'e'](_0x38c96a,{'text':'*'+_0x2cadb7+(_0x384a35(0x173)+_0x384a35(0x1bb)+_0x384a35(0x1c0)+'.'),'edit':_0x1dc644['key']});const {oldRev:_0x44739a,newRev:_0x485acf,alreadyUpToDate:_0x505c1a}=await updateViaGit(),_0x24ba22=_0x505c1a?'Already\x20up'+_0x384a35(0x1a0):_0x384a35(0x1d5)+_0x44739a[_0x384a35(0x1f8)](0x1c69+0x1e52+-0x5*0xbbf,-0x25dc*0x1+-0x1e8c+0x446f)+_0x384a35(0x18e)+_0x485acf[_0x384a35(0x1f8)](-0x2*-0x36f+0x2*0x4a+-0x772,-0x15d2+-0x17c8+-0x2da1*-0x1);await _0x272bf7[_0x384a35(0x1b1)+'e'](_0x38c96a,{'text':'*'+_0x2cadb7+_0x384a35(0x173)+_0x24ba22+(_0x384a35(0x1d9)+_0x384a35(0x1e2)+_0x384a35(0x1b0)),'edit':_0x1dc644[_0x384a35(0x1b9)]});}else{await _0x272bf7[_0x384a35(0x1b1)+'e'](_0x38c96a,{'text':'*'+_0x2cadb7+(_0x384a35(0x173)+_0x384a35(0x1d7)+_0x384a35(0x1f3)+_0x384a35(0x1df)),'edit':_0x1dc644[_0x384a35(0x1b9)]});const _0x43bad6=await updateViaZip(_0x2325c2||settings[_0x384a35(0x206)+'rl']||process[_0x384a35(0x17a)][_0x384a35(0x1d8)+_0x384a35(0x1b3)]);let _0x40f900='*'+_0x2cadb7+'\x20UPDATE*\x0a\x0a';_0x40f900+=_0x384a35(0x1d5)+_0x43bad6['updated'][_0x384a35(0x213)]+_0x384a35(0x17d),_0x40f900+=_0x384a35(0x20e)+_0x43bad6['added'][_0x384a35(0x213)]+(_0x384a35(0x1a9)+'\x0a'),_0x40f900+=_0x384a35(0x1a2)+_0x43bad6['skipped']['length']+_0x384a35(0x17d),_0x40f900+='Settings\x20&'+'\x20data:\x20pre'+_0x384a35(0x1b5),_0x40f900+=_0x384a35(0x1c4)+_0x384a35(0x174)+_0x384a35(0x1ed),await _0x272bf7['sendMessag'+'e'](_0x38c96a,{'text':_0x40f900,'edit':_0x1dc644['key']});}await run('npm\x20instal'+_0x384a35(0x1b8)+_0x384a35(0x1dc)+'nd\x202>/dev/'+_0x384a35(0x1b2)),await _0x272bf7[_0x384a35(0x1b1)+'e'](_0x38c96a,{'text':'*'+_0x2cadb7+(_0x384a35(0x173)+_0x384a35(0x1d1)+_0x384a35(0x19a)+_0x384a35(0x1a7)+_0x384a35(0x16e)+_0x384a35(0x1c3)),'edit':_0x1dc644[_0x384a35(0x1b9)]}),await restartProcess(_0x272bf7,_0x38c96a,_0x337371);}catch(_0x54242b){console[_0x384a35(0x16a)]('Update\x20fai'+_0x384a35(0x1d3),_0x54242b);const _0x2fb56e=String(_0x54242b[_0x384a35(0x1bc)]||_0x54242b)['replace'](/https?:\/\/[^\s]+/g,_0x384a35(0x1a3))[_0x384a35(0x1f8)](-0x23*0x94+0x152e*0x1+-0x2*0x79,0xfa4+0x65*-0x39+0x8cd*0x1),_0x1a0fa3='*'+_0x2cadb7+(_0x384a35(0x173)+_0x384a35(0x168)+'led:\x20')+_0x2fb56e;_0x1dc644?.[_0x384a35(0x1b9)]?await _0x272bf7['sendMessag'+'e'](_0x38c96a,{'text':_0x1a0fa3,'edit':_0x1dc644[_0x384a35(0x1b9)]}):await _0x272bf7[_0x384a35(0x1b1)+'e'](_0x38c96a,{'text':_0x1a0fa3},{'quoted':_0x271c60});}}module[_0x46cb2d(0x1a6)]=updateCommand;
@@ -1,239 +1 @@
1
- const fetch = require('node-fetch');
2
- const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
3
-
4
- async function bibleCommand(sock, chatId, message, text, prefix) {
5
- try {
6
- const fake = createFakeContact(message);
7
- const BASE_URL = "https://bible-api.com";
8
-
9
- if (!text || text.trim() === '') {
10
- await sock.sendMessage(chatId, {
11
- text: `✦ *BIBLE*
12
- ╭─────────────────
13
-
14
- │ Usage:
15
- │ ${prefix}bible <chapter:verse>
16
-
17
- │ Examples:
18
- │ ${prefix}bible John 3:16
19
- │ ${prefix}bible Genesis 1:1
20
- │ ${prefix}bible Psalm 23
21
-
22
- │ Use ${prefix}biblelist for all books
23
-
24
- ╰─────────────────`
25
- }, { quoted: fake });
26
- return;
27
- }
28
-
29
- const chapterInput = encodeURIComponent(text.trim());
30
- const chapterRes = await fetch(`${BASE_URL}/${chapterInput}`);
31
-
32
- if (!chapterRes.ok) {
33
- await sock.sendMessage(chatId, {
34
- text: `✦ *ERROR*
35
- ╭─────────────────
36
-
37
- │ Invalid format!
38
-
39
- │ Use: Book Chapter:Verse
40
- │ Example: ${prefix}bible John 3:16
41
-
42
- ╰─────────────────`
43
- }, { quoted: fake });
44
- return;
45
- }
46
-
47
- const chapterData = await chapterRes.json();
48
- const bibleText = `✦ *BIBLE*
49
- ╭─────────────────
50
-
51
- │ Reference: ${chapterData.reference}
52
- │ Translation: ${chapterData.translation_name}
53
- │ Verses: ${chapterData.verses.length}
54
-
55
- │ ${chapterData.text}
56
-
57
- ╰─────────────────`;
58
-
59
- await sock.sendMessage(chatId, { text: bibleText }, { quoted: fake });
60
-
61
- } catch (error) {
62
- console.error('Bible command error:', error);
63
- const fake = createFakeContact(message);
64
- await sock.sendMessage(chatId, {
65
- text: `✦ *ERROR*
66
- ╭─────────────────
67
-
68
- │ ${error.message}
69
-
70
- ╰─────────────────`
71
- }, { quoted: fake });
72
- }
73
- }
74
-
75
- async function bibleListCommand(sock, chatId, message) {
76
- try {
77
- const fake = createFakeContact(message);
78
-
79
- const bibleList = `✦ *OLD TESTAMENT*
80
- ╭────────────────────────────────
81
- │ Genesis • Exodus • Leviticus • Numbers • Deuteronomy
82
- │ Joshua • Judges • Ruth • 1 Samuel • 2 Samuel
83
- │ 1 Kings • 2 Kings • 1 Chronicles • 2 Chronicles
84
- │ Ezra • Nehemiah • Esther • Job • Psalms
85
- │ Proverbs • Ecclesiastes • Song of Solomon
86
- │ Isaiah • Jeremiah • Lamentations • Ezekiel
87
- │ Daniel • Hosea • Joel • Amos • Obadiah
88
- │ Jonah • Micah • Nahum • Habakkuk
89
- │ Zephaniah • Haggai • Zechariah • Malachi
90
- ╰────────────────────────────────
91
-
92
- ✦ *NEW TESTAMENT*
93
- ╭────────────────────────────────
94
- │ Matthew • Mark • Luke • John • Acts
95
- │ Romans • 1 Corinthians • 2 Corinthians
96
- │ Galatians • Ephesians • Philippians
97
- │ Colossians • 1 Thessalonians • 2 Thessalonians
98
- │ 1 Timothy • 2 Timothy • Titus • Philemon
99
- │ Hebrews • James • 1 Peter • 2 Peter
100
- │ 1 John • 2 John • 3 John • Jude • Revelation
101
- ╰────────────────────────────────
102
-
103
- ✦ *USAGE*
104
- ╭─────────────────
105
- │ .bible John 3:16
106
- │ .bible Genesis 1:1
107
- ╰─────────────────`;
108
-
109
- await sock.sendMessage(chatId, { text: bibleList }, { quoted: fake });
110
-
111
- } catch (error) {
112
- console.error('Bible list command error:', error);
113
- const fake = createFakeContact(message);
114
- await sock.sendMessage(chatId, {
115
- text: `✦ *ERROR*
116
- ╭─────────────────
117
-
118
- │ Failed to fetch Bible list
119
-
120
- ╰─────────────────`
121
- }, { quoted: fake });
122
- }
123
- }
124
-
125
- async function quranCommand(sock, chatId, message, text) {
126
- try {
127
- const fake = createFakeContact(message);
128
-
129
- if (!text || isNaN(parseInt(text.trim()))) {
130
- await sock.sendMessage(chatId, {
131
- text: `✦ *QURAN*
132
- ╭─────────────────
133
-
134
- │ Usage:
135
- │ .quran <surah>
136
-
137
- │ Example:
138
- │ .quran 1
139
-
140
- │ Surahs available:
141
- │ 1 - 114
142
-
143
- ╰─────────────────`
144
- }, { quoted: fake });
145
- return;
146
- }
147
-
148
- const surahNumber = parseInt(text.trim());
149
-
150
- if (surahNumber < 1 || surahNumber > 114) {
151
- await sock.sendMessage(chatId, {
152
- text: `✦ *ERROR*
153
- ╭─────────────────
154
-
155
- │ Invalid number!
156
- │ Use 1 - 114
157
-
158
- ╰─────────────────`
159
- }, { quoted: fake });
160
- return;
161
- }
162
-
163
- const url = `https://apis.davidcyriltech.my.id/quran?surah=${surahNumber}`;
164
- const res = await fetch(url);
165
- const data = await res.json();
166
-
167
- if (!data.success) {
168
- await sock.sendMessage(chatId, {
169
- text: `✦ *ERROR*
170
- ╭─────────────────
171
-
172
- │ Could not fetch Surah
173
-
174
- ╰─────────────────`
175
- }, { quoted: fake });
176
- return;
177
- }
178
-
179
- const { number, name, type, ayahCount, tafsir, recitation } = data.surah;
180
-
181
- let replyText = `✦ *SURAH ${name.english}*
182
- ╭─────────────────
183
-
184
- │ Arabic: ${name.arabic}
185
- │ Number: ${number}
186
- │ Type: ${type}
187
- │ Ayahs: ${ayahCount}
188
-
189
- │ Tafsir:
190
- │ ${tafsir.id}
191
-
192
- ╰─────────────────`;
193
-
194
- // Send text first
195
- await sock.sendMessage(chatId, { text: replyText }, { quoted: fake });
196
-
197
- // Then send audio if available
198
- if (recitation) {
199
- try {
200
- const audioRes = await fetch(recitation);
201
- const audioBuffer = await audioRes.buffer();
202
-
203
- await sock.sendMessage(chatId, {
204
- audio: audioBuffer,
205
- mimetype: "audio/mpeg",
206
- ptt: false
207
- }, { quoted: fake });
208
- } catch (audioError) {
209
- console.error('Audio download error:', audioError);
210
- await sock.sendMessage(chatId, {
211
- text: `✦ *AUDIO*
212
- ╭─────────────────
213
-
214
- │ Recitation unavailable
215
-
216
- ╰─────────────────`
217
- }, { quoted: fake });
218
- }
219
- }
220
-
221
- } catch (error) {
222
- console.error('Quran command error:', error);
223
- const fake = createFakeContact(message);
224
- await sock.sendMessage(chatId, {
225
- text: `✦ *ERROR*
226
- ╭─────────────────
227
-
228
- │ Failed to fetch Quran data
229
-
230
- ╰─────────────────`
231
- }, { quoted: fake });
232
- }
233
- }
234
-
235
- module.exports = {
236
- bibleCommand,
237
- bibleListCommand,
238
- quranCommand
239
- };
1
+ function _0x42a9(){const _0x44799d=['AaOGiokuGIbkB25H','DhjHBNnSyxrPBW','cIaG4Pscic5IAwjS','iokuGIaXifrPBw90','CZOG','4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa','iokaOIbozwHLBwLH','igrHDgekicdILiik','C2uGmsaTideXna','yMXLlwfWAs5JBW','lMLKl3f1CMfUpW','BgLIl2zHA2vdBW','CYdIGkiGrxbOzxnP','zsbkB2HUidm6mq','oGOGiokuGIaUCxvY','BL9Uyw1L','iokuGIbvC2u6iejV','zw5NBgLZAa','zM9YigfSBcbIBW','iokuGIbtDxjHAhmG','mtH6BMzpveS','BGOGiokuGIbjC2fP','4PwW4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa','Ahr0Chm6lY9IAq','C2LZide6mqOGia','yMLIBguGr2vUzq','CYdIGkiGmIblAw5N','cIaG4PscideGlsaX','zwnPDgf0Aw9Uia','cIaG4PsccIaG4Pscifi','iokaOIbkB2iG4OcIifa','ywGG4OcIiePLCMvT','Bg9HzcbLCNjVCG','qMLIBguGBgLZDa','mZyYmtm0nwvAqMzSrW','AxrPy3vZiokaOIbo','C2fNztOkicdILiiG','DgvYcIaG4PscideG','ienOCM9UAwnSzq','BM9Kzs1MzxrJAa','4Psa4Psa4Psa4Psa4Psa4Psa4Psa4PsacGO','cIaG4Pscief5ywHZ','icdILBdILidILidILidILidILidILidILia','DgvZiokaOIbtB25N','cIaG4PsccIaG4PscieK','ievJy2XLC2LHCW','iev6zwTPzwWkia','yxr0Agv3iokaOIbn','AwfOiokaOIbmyw1L','oLzLCNnLcIaG4Psc','iokvREkuGokuGokuGokuGokuGokuGokuGokuGa','ndi0mZaZmMHMBKLTuG','C3vJy2vZCW','zxrJAcbtDxjHAa','idm6mtykicdILiik','B24kicdILBdILidILidILidILia','B21HBNmG4OcIideG','B3rOEsdIGkiGvgL0','cIaG4Pscifr5Cgu6','Dw1IzxjZiokaOIbe','lNf1CMfUidXZDq','yMLIBgvSAxn0ia','BNrHDgLVBNmG4OcI','CYdIGkiGt2jHzgLH','ywXVBMLHBNmkia','cIaG4PsciePVC2H1','4PYMicPpteqGvevt','lI4VlI4Vzgf2zq','icdILA3ILidILidILidILidILidILidILia','yMLIBguGpgnOyq','AwfOiokaOIbnywXH','4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa','CJOG','B2r1CYdIGkiGtgv2','CWOGiokuGIbfENjH','ChrLCJP2zxjZzq','CYdIGkiGmsbdAhjV','4PYMicPcsujmrsOk','AsdIGkiGwMvJAgfY','4Psa4PsacIaG4PsccIaG4Psc','mJqYmfbuBgTWBq','yw5ZiokaOIbqAgLS','ywGG4OcIieHHz2DH','BsaYmWOGiokuGGOG','cUkCPIaQtKvxifrf','odGXmdqZAuvlsNzU','4PYMicPtvvjbsca','cIaG4PsccIaG4Psciey','icdILiiG','zxv0zxjVBM9TEq','4PYMicPfuLjpuIOk','mte0mZyXnZblu3HLu2y','DxmG4OcIifbOAwXL','mM13wLLdAq','4PYMicPbvurjtYOk','ig9MifnVBg9TBW','mJq0oti3ohjJA1HRsa','cIaG4Pscie51BwjL','BNrOAwfUCWOGia','ysdIGkiGsNvKz2vZ','zxrJAcbrDxjHBG','igXPC3qkicdILiik','CNjVCJO','4PscienVBg9ZC2LH','Bgf0Aw9UoIa','qwn0CWOGiokuGIbs','icdILiiGmsblAw5N','BNzHBgLKigzVCG','idiGu2fTDwvScG','4Psa4Psa4PsacIaG4PscieDL','C2vUze1LC3nHzW','uhjVDMvYyNmG4OcI','iokaOIbkB2HUiokaOIa','4PwT4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa4Psa','4Psa4Psa4Psa4Psa4Psa4Psa4Psa','yxjHyMLJ','zqOGiokuGGOGiokvSokuGa','iefYywjPyZOG','u1rbtuvovcOkia','sM9OBIdIGkiGmIbk','q29YAw50AgLHBG','ote5mdC2D0TJv0rN','zxrJAcbcAwjSzq','BgvUz3rO','4Psa4Psa4Psa4Psa4Psa','DMvYC2vZ','B3vSzcbUB3qGzG','DhjPBq','zxjYB3i','qxvKAw8Gzg93BG','AcdIGkiGrxn0AgvY','idm6mtykicdILiiG','cIaG4PsccIaG4Pscifu','Ag4G4OcIieP1zguG','nZe2nw1MtwffDG','C3nHBg9UAwfUCW','AhKG4OcIidiGvgLT','yxjRiokaOIbmDwTL','CMLSDgvJAc5TEq','cIaG4PsccIaG4Psciem','yNjLD3mG4OcIiePH','C2fSBxmkicdILiiG','msbtyw11zwWG4OcI','ywLSzwqGDg8GzG','AcdIGkiGtwLJywGG','yxvKAw8VBxbLzW','qMLIBguGy29TBq','4PYMicPvu0fhrsOk','4OcIie5HAhvTiokaOIa','AxmUzgf2AwrJEq','cIaG4PsccIaG4Pscia','C3vYywG','ANnVBG','yw4GmqOGiokuGGOG','Ahr0Chm6lY9HCa','4Psa4Psa4Psa4PsacIaG4Pscie0','yw5KigvYCM9YoG','cIaG4PsccIaG4PwW4Psa4Psa'];_0x42a9=function(){return _0x44799d;};return _0x42a9();}const _0xdd24a=_0x2fb1;(function(_0x4c5a70,_0xe5ec96){const _0x260341=_0x2fb1,_0xefb6f0=_0x4c5a70();while(!![]){try{const _0x186035=parseInt(_0x260341(0x102))/(0x7d*0x8+0x8a*0x7+0x3*-0x28f)*(parseInt(_0x260341(0x11e))/(0x17*0x1+-0x1912*0x1+0x1*0x18fd))+-parseInt(_0x260341(0xfa))/(0x1e2e*0x1+0xb6f+-0x299a)+-parseInt(_0x260341(0xf5))/(0x8aa+0xceb*0x1+-0x1591)*(-parseInt(_0x260341(0x12b))/(-0x303*0xa+-0x8f*-0x7+0x1a3a))+-parseInt(_0x260341(0x105))/(0x1*-0x101f+0x1eda+0x1*-0xeb5)+-parseInt(_0x260341(0x165))/(0x1*-0x2425+-0x2323+-0x4c1*-0xf)+-parseInt(_0x260341(0x176))/(0x1535+-0x771+0x125*-0xc)*(parseInt(_0x260341(0x157))/(0x129b+0x430*-0x6+0x68e))+parseInt(_0x260341(0x100))/(-0x24e5+0xe49+-0xd*-0x1be);if(_0x186035===_0xe5ec96)break;else _0xefb6f0['push'](_0xefb6f0['shift']());}catch(_0x486a53){_0xefb6f0['push'](_0xefb6f0['shift']());}}}(_0x42a9,0x76d7*-0x1d+-0x2*-0x7acbd+0x806a8));const fetch=require(_0xdd24a(0x16a)),{createFakeContact,getBotName}=require(_0xdd24a(0xe8)+_0xdd24a(0x14e)+'ntact');async function bibleCommand(_0x469136,_0x3f9f3d,_0x4b3395,_0x1750d2,_0x544e27){const _0x40b9f5=_0x2fb1;try{const _0xefc61e=createFakeContact(_0x4b3395),_0xc05884=_0x40b9f5(0x15a)+_0x40b9f5(0x14c)+'m';if(!_0x1750d2||_0x1750d2[_0x40b9f5(0x124)]()===''){await _0x469136[_0x40b9f5(0x113)+'e'](_0x3f9f3d,{'text':_0x40b9f5(0xf2)+_0x40b9f5(0xe9)+'──────────'+_0x40b9f5(0x129)+'sage:\x0a\x20\x20│\x20'+_0x544e27+(_0x40b9f5(0xea)+_0x40b9f5(0xf0)+'>\x0a\x20\x20│\x0a\x20\x20│\x20'+'Examples:\x0a'+_0x40b9f5(0xfd))+_0x544e27+('bible\x20John'+_0x40b9f5(0x128))+_0x544e27+(_0x40b9f5(0x15c)+_0x40b9f5(0x15b)+'│\x20')+_0x544e27+('bible\x20Psal'+_0x40b9f5(0xf8)+'\x20│\x20Use\x20')+_0x544e27+(_0x40b9f5(0xe2)+_0x40b9f5(0x155)+'oks\x0a\x20\x20│\x0a\x20\x20'+_0x40b9f5(0x159)+_0x40b9f5(0xec))},{'quoted':_0xefc61e});return;}const _0x4d1944=encodeURIComponent(_0x1750d2[_0x40b9f5(0x124)]()),_0x31af13=await fetch(_0xc05884+'/'+_0x4d1944);if(!_0x31af13['ok']){await _0x469136[_0x40b9f5(0x113)+'e'](_0x3f9f3d,{'text':_0x40b9f5(0xff)+'\x20\x20╭───────'+'──────────'+'\x0a\x20\x20│\x0a\x20\x20│\x20I'+_0x40b9f5(0x110)+'mat!\x0a\x20\x20│\x0a\x20'+_0x40b9f5(0x153)+'ok\x20Chapter'+_0x40b9f5(0x174)+'\x20Example:\x20'+_0x544e27+('bible\x20John'+_0x40b9f5(0x179)+_0x40b9f5(0x16d)+_0x40b9f5(0x148))},{'quoted':_0xefc61e});return;}const _0x103f19=await _0x31af13[_0x40b9f5(0x13d)](),_0x35cd77=_0x40b9f5(0xf2)+_0x40b9f5(0xe9)+_0x40b9f5(0x148)+_0x40b9f5(0x160)+'eference:\x20'+_0x103f19['reference']+('\x0a\x20\x20│\x20Trans'+_0x40b9f5(0x10d))+_0x103f19[_0x40b9f5(0x144)+_0x40b9f5(0x152)]+('\x0a\x20\x20│\x20Verse'+_0x40b9f5(0x147))+_0x103f19[_0x40b9f5(0x122)][_0x40b9f5(0x120)]+'\x0a\x20\x20│\x0a\x20\x20│\x20'+_0x103f19['text']+(_0x40b9f5(0x142)+_0x40b9f5(0x148)+_0x40b9f5(0x121));await _0x469136[_0x40b9f5(0x113)+'e'](_0x3f9f3d,{'text':_0x35cd77},{'quoted':_0xefc61e});}catch(_0x5360fe){console['error'](_0x40b9f5(0x137)+_0x40b9f5(0x141),_0x5360fe);const _0x4b8a28=createFakeContact(_0x4b3395);await _0x469136[_0x40b9f5(0x113)+'e'](_0x3f9f3d,{'text':_0x40b9f5(0xff)+_0x40b9f5(0xe9)+_0x40b9f5(0x148)+_0x40b9f5(0x13b)+_0x5360fe['message']+(_0x40b9f5(0x142)+'──────────'+'─────')},{'quoted':_0x4b8a28});}}async function bibleListCommand(_0x436cb4,_0x282bfb,_0x2f2e16){const _0x254c3a=_0x2fb1;try{const _0x141ed1=createFakeContact(_0x2f2e16),_0x22d447=_0x254c3a(0xe7)+'TAMENT*\x0a\x20\x20'+_0x254c3a(0x116)+'──────────'+_0x254c3a(0x148)+_0x254c3a(0x112)+'nesis\x20•\x20Ex'+_0x254c3a(0xee)+_0x254c3a(0x166)+_0x254c3a(0xe0)+_0x254c3a(0xfe)+_0x254c3a(0xe6)+_0x254c3a(0x108)+'\x20•\x20Ruth\x20•\x20'+_0x254c3a(0x133)+_0x254c3a(0x111)+_0x254c3a(0x10f)+_0x254c3a(0x15d)+_0x254c3a(0xf1)+'nicles\x20•\x202'+_0x254c3a(0x169)+_0x254c3a(0xef)+_0x254c3a(0x149)+_0x254c3a(0x127)+_0x254c3a(0x161)+_0x254c3a(0x132)+_0x254c3a(0x114)+_0x254c3a(0x170)+_0x254c3a(0x16e)+_0x254c3a(0x104)+_0x254c3a(0x158)+_0x254c3a(0x162)+_0x254c3a(0x173)+_0x254c3a(0xe3)+_0x254c3a(0x171)+'\x20│\x20Daniel\x20'+'•\x20Hosea\x20•\x20'+'Joel\x20•\x20Amo'+_0x254c3a(0xe4)+_0x254c3a(0x143)+_0x254c3a(0x135)+_0x254c3a(0x139)+'Habakkuk\x0a\x20'+'\x20│\x20Zephani'+_0x254c3a(0xf7)+_0x254c3a(0xf3)+_0x254c3a(0xeb)+'chi\x0a\x20\x20╰───'+_0x254c3a(0x148)+_0x254c3a(0x148)+'─────────\x0a'+_0x254c3a(0xf9)+_0x254c3a(0x11b)+_0x254c3a(0x175)+_0x254c3a(0x148)+_0x254c3a(0x148)+_0x254c3a(0x140)+_0x254c3a(0x172)+_0x254c3a(0x12e)+_0x254c3a(0x115)+_0x254c3a(0x10e)+_0x254c3a(0x17b)+_0x254c3a(0x11d)+'s\x20•\x202\x20Cori'+_0x254c3a(0x107)+'│\x20Galatian'+_0x254c3a(0x14f)+_0x254c3a(0xf6)+'ippians\x0a\x20\x20'+_0x254c3a(0x10c)+'ns\x20•\x201\x20The'+_0x254c3a(0x12c)+'\x20•\x202\x20Thess'+_0x254c3a(0xe5)+_0x254c3a(0x146)+_0x254c3a(0x12d)+_0x254c3a(0xde)+_0x254c3a(0x101)+'mon\x0a\x20\x20│\x20He'+_0x254c3a(0x131)+'mes\x20•\x201\x20Pe'+'ter\x20•\x202\x20Pe'+_0x254c3a(0x168)+_0x254c3a(0x11c)+'ohn\x20•\x203\x20Jo'+_0x254c3a(0x12a)+'•\x20Revelati'+_0x254c3a(0x17a)+_0x254c3a(0x148)+_0x254c3a(0x148)+_0x254c3a(0x16b)+_0x254c3a(0x138)+_0x254c3a(0xe9)+_0x254c3a(0x148)+_0x254c3a(0x145)+_0x254c3a(0x150)+'6\x0a\x20\x20│\x20.bib'+'le\x20Genesis'+'\x201:1\x0a\x20\x20╰──'+_0x254c3a(0x148)+_0x254c3a(0x121);await _0x436cb4[_0x254c3a(0x113)+'e'](_0x282bfb,{'text':_0x22d447},{'quoted':_0x141ed1});}catch(_0x2f1343){console['error'](_0x254c3a(0x164)+'\x20command\x20e'+_0x254c3a(0x10b),_0x2f1343);const _0x25bc88=createFakeContact(_0x2f2e16);await _0x436cb4['sendMessag'+'e'](_0x282bfb,{'text':_0x254c3a(0xff)+_0x254c3a(0xe9)+_0x254c3a(0x148)+_0x254c3a(0xfc)+_0x254c3a(0x134)+_0x254c3a(0x11f)+_0x254c3a(0x10a)+_0x254c3a(0x16d)+_0x254c3a(0x148)},{'quoted':_0x25bc88});}}async function quranCommand(_0xf1efc8,_0x2417b8,_0x4389b3,_0x4094c7){const _0x312f1f=_0x2fb1;try{const _0x2ad338=createFakeContact(_0x4389b3);if(!_0x4094c7||isNaN(parseInt(_0x4094c7[_0x312f1f(0x124)]()))){await _0xf1efc8[_0x312f1f(0x113)+'e'](_0x2417b8,{'text':'✦\x20*QURAN*\x0a'+'\x20\x20╭───────'+_0x312f1f(0x148)+'\x0a\x20\x20│\x0a\x20\x20│\x20U'+_0x312f1f(0x167)+_0x312f1f(0xe1)+'rah>\x0a\x20\x20│\x0a\x20'+'\x20│\x20Example'+_0x312f1f(0x151)+_0x312f1f(0x13e)+_0x312f1f(0x156)+'available:'+_0x312f1f(0x15e)+'14\x0a\x20\x20│\x0a\x20\x20╰'+'──────────'+_0x312f1f(0x117)},{'quoted':_0x2ad338});return;}const _0x2cc4f2=parseInt(_0x4094c7[_0x312f1f(0x124)]());if(_0x2cc4f2<0xdf0+-0x5ff+-0x3f8*0x2||_0x2cc4f2>0x1f02+-0xf15+-0xf7b*0x1){await _0xf1efc8[_0x312f1f(0x113)+'e'](_0x2417b8,{'text':_0x312f1f(0xff)+_0x312f1f(0xe9)+'──────────'+_0x312f1f(0x16f)+'nvalid\x20num'+'ber!\x0a\x20\x20│\x20U'+_0x312f1f(0x14b)+_0x312f1f(0x142)+_0x312f1f(0x148)+'─────'},{'quoted':_0x2ad338});return;}const _0x13728b=_0x312f1f(0x13f)+_0x312f1f(0x13a)+_0x312f1f(0x12f)+_0x312f1f(0x14d)+'surah='+_0x2cc4f2,_0x2de156=await fetch(_0x13728b),_0x9644e6=await _0x2de156[_0x312f1f(0x13d)]();if(!_0x9644e6[_0x312f1f(0x177)]){await _0xf1efc8[_0x312f1f(0x113)+'e'](_0x2417b8,{'text':'✦\x20*ERROR*\x0a'+_0x312f1f(0xe9)+'──────────'+_0x312f1f(0x130)+_0x312f1f(0x123)+_0x312f1f(0x178)+'\x0a\x20\x20│\x0a\x20\x20╰──'+_0x312f1f(0x148)+_0x312f1f(0x121)},{'quoted':_0x2ad338});return;}const {number:_0x2f69d7,name:_0x5c1a68,type:_0x14d6dd,ayahCount:_0x547840,tafsir:_0x10a94b,recitation:_0xfe434}=_0x9644e6[_0x312f1f(0x13c)];let _0x4f1eb5=_0x312f1f(0xfb)+_0x5c1a68[_0x312f1f(0x154)]+('*\x0a\x20\x20╭─────'+_0x312f1f(0x148)+_0x312f1f(0xf4)+_0x312f1f(0x11a))+_0x5c1a68[_0x312f1f(0x118)]+(_0x312f1f(0x106)+_0x312f1f(0xed))+_0x2f69d7+(_0x312f1f(0xdf)+'\x20')+_0x14d6dd+(_0x312f1f(0x16c)+':\x20')+_0x547840+('\x0a\x20\x20│\x0a\x20\x20│\x20T'+'afsir:\x0a\x20\x20│'+'\x20')+_0x10a94b['id']+(_0x312f1f(0x142)+_0x312f1f(0x148)+_0x312f1f(0x121));await _0xf1efc8[_0x312f1f(0x113)+'e'](_0x2417b8,{'text':_0x4f1eb5},{'quoted':_0x2ad338});if(_0xfe434)try{const _0x3bea7f=await fetch(_0xfe434),_0x325b88=await _0x3bea7f['buffer']();await _0xf1efc8[_0x312f1f(0x113)+'e'](_0x2417b8,{'audio':_0x325b88,'mimetype':_0x312f1f(0x136),'ptt':![]},{'quoted':_0x2ad338});}catch(_0x11401c){console[_0x312f1f(0x125)](_0x312f1f(0x126)+_0x312f1f(0x163)+':',_0x11401c),await _0xf1efc8[_0x312f1f(0x113)+'e'](_0x2417b8,{'text':_0x312f1f(0x103)+'\x20\x20╭───────'+'──────────'+'\x0a\x20\x20│\x0a\x20\x20│\x20R'+_0x312f1f(0x15f)+'unavailabl'+_0x312f1f(0x119)+_0x312f1f(0x148)+'──────'},{'quoted':_0x2ad338});}}catch(_0x3c8bc5){console['error']('Quran\x20comm'+'and\x20error:',_0x3c8bc5);const _0x3a2dc9=createFakeContact(_0x4389b3);await _0xf1efc8[_0x312f1f(0x113)+'e'](_0x2417b8,{'text':'✦\x20*ERROR*\x0a'+_0x312f1f(0xe9)+_0x312f1f(0x148)+_0x312f1f(0xfc)+_0x312f1f(0x134)+_0x312f1f(0x109)+_0x312f1f(0x14a)+_0x312f1f(0x16d)+_0x312f1f(0x148)},{'quoted':_0x3a2dc9});}}function _0x2fb1(_0x589468,_0x35daf9){_0x589468=_0x589468-(-0x144*-0x1+-0x132d*0x2+0x12fa*0x2);const _0xbe8f25=_0x42a9();let _0xed5eb6=_0xbe8f25[_0x589468];if(_0x2fb1['DTSegF']===undefined){var _0x3794fa=function(_0x18a8a7){const _0x4c7691='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x52d97c='',_0x15c6af='';for(let _0x13be43=-0x3*-0x96e+0x16de+-0x3328,_0x1c5b55,_0x16b900,_0x166a47=-0xc*-0x12e+-0x205b+0x1233;_0x16b900=_0x18a8a7['charAt'](_0x166a47++);~_0x16b900&&(_0x1c5b55=_0x13be43%(0x1*0x11d7+-0x43f*0x9+-0x105*-0x14)?_0x1c5b55*(-0x1d39*0x1+0xc7*0x1f+0x10*0x56)+_0x16b900:_0x16b900,_0x13be43++%(-0x629+-0x6b+0x698))?_0x52d97c+=String['fromCharCode'](-0x827+0x1b*-0xfd+0x23d5&_0x1c5b55>>(-(-0x264+-0x1723+0x1989)*_0x13be43&-0x112*-0x22+-0x1600+0x3*-0x4ca)):0x7*0x50+0x130*-0x15+0x16c0){_0x16b900=_0x4c7691['indexOf'](_0x16b900);}for(let _0x94307d=0x1a11+-0xc46+0xb*-0x141,_0x4663fb=_0x52d97c['length'];_0x94307d<_0x4663fb;_0x94307d++){_0x15c6af+='%'+('00'+_0x52d97c['charCodeAt'](_0x94307d)['toString'](-0x11b8+0x156b+-0x3a3))['slice'](-(0x2441+-0x250f+0xd0));}return decodeURIComponent(_0x15c6af);};_0x2fb1['agZwdi']=_0x3794fa,_0x2fb1['Anyjho']={},_0x2fb1['DTSegF']=!![];}const _0x43cd85=_0xbe8f25[-0x15c*-0x1c+0x2582+-0x4b92*0x1],_0x41a5de=_0x589468+_0x43cd85,_0x274d70=_0x2fb1['Anyjho'][_0x41a5de];return!_0x274d70?(_0xed5eb6=_0x2fb1['agZwdi'](_0xed5eb6),_0x2fb1['Anyjho'][_0x41a5de]=_0xed5eb6):_0xed5eb6=_0x274d70,_0xed5eb6;}module['exports']={'bibleCommand':bibleCommand,'bibleListCommand':bibleListCommand,'quranCommand':quranCommand};