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,160 @@
1
+ const { downloadContentFromMessage } = require('@whiskeysockets/baileys');
2
+ const Jimp = require('jimp');
3
+ const db = require('../../Database/database');
4
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
5
+
6
+ async function isAuthorized(sock, message) {
7
+ try {
8
+ const senderId = message.key.participant || message.key.remoteJid;
9
+ if (message.key.fromMe) return true;
10
+ return db.isSudo(senderId);
11
+ } catch {
12
+ return message.key.fromMe;
13
+ }
14
+ }
15
+
16
+ function getContextInfo(message) {
17
+ return (
18
+ message.message?.extendedTextMessage?.contextInfo ||
19
+ message.message?.imageMessage?.contextInfo ||
20
+ message.message?.videoMessage?.contextInfo ||
21
+ message.message?.stickerMessage?.contextInfo ||
22
+ message.message?.documentMessage?.contextInfo ||
23
+ message.message?.audioMessage?.contextInfo
24
+ );
25
+ }
26
+
27
+ async function downloadToBuffer(message, type) {
28
+ const stream = await downloadContentFromMessage(message, type);
29
+ let buffer = Buffer.from([]);
30
+ for await (const chunk of stream) {
31
+ buffer = Buffer.concat([buffer, chunk]);
32
+ }
33
+ return buffer;
34
+ }
35
+
36
+ async function tostatusCommand(sock, chatId, message, args) {
37
+ const senderId = message.key.participant || message.key.remoteJid;
38
+ const fake = createFakeContact(senderId);
39
+ const botName = getBotName();
40
+
41
+ if (!await isAuthorized(sock, message)) {
42
+ return sock.sendMessage(chatId, {
43
+ text: `*${botName}*\nOwner only command!`
44
+ }, { quoted: fake });
45
+ }
46
+
47
+ const contextInfo = getContextInfo(message);
48
+ const quotedMessage = contextInfo?.quotedMessage;
49
+ const textArgs = args || '';
50
+
51
+ if (!quotedMessage && !textArgs) {
52
+ const helpText = `*${botName} TOSTATUS*\n\n` +
53
+ `Post content to your WhatsApp status\n\n` +
54
+ `*Usage:*\n` +
55
+ `• .tostatus <text> - Post text status\n` +
56
+ `• Reply to image with .tostatus <caption>\n` +
57
+ `• Reply to video with .tostatus <caption>\n` +
58
+ `• Reply to audio with .tostatus\n\n` +
59
+ `Supported: Text, Image, Video, Audio`;
60
+
61
+ return sock.sendMessage(chatId, { text: helpText }, { quoted: fake });
62
+ }
63
+
64
+ try {
65
+ const statusJid = 'status@broadcast';
66
+ const baseOpts = { statusJidList: [], broadcast: true };
67
+
68
+ if (quotedMessage) {
69
+ const msgType = Object.keys(quotedMessage)[0];
70
+
71
+ if (msgType === 'imageMessage') {
72
+ const buffer = await downloadToBuffer(quotedMessage.imageMessage, 'image');
73
+ await sock.sendMessage(statusJid, {
74
+ image: buffer,
75
+ caption: textArgs || quotedMessage.imageMessage?.caption || '',
76
+ }, baseOpts);
77
+
78
+ await sock.sendMessage(chatId, {
79
+ text: `*${botName}*\nImage posted to status!`
80
+ }, { quoted: fake });
81
+
82
+ } else if (msgType === 'videoMessage') {
83
+ const buffer = await downloadToBuffer(quotedMessage.videoMessage, 'video');
84
+ await sock.sendMessage(statusJid, {
85
+ video: buffer,
86
+ caption: textArgs || quotedMessage.videoMessage?.caption || '',
87
+ gifPlayback: quotedMessage.videoMessage?.gifPlayback || false,
88
+ }, baseOpts);
89
+
90
+ await sock.sendMessage(chatId, {
91
+ text: `*${botName}*\nVideo posted to status!`
92
+ }, { quoted: fake });
93
+
94
+ } else if (msgType === 'audioMessage') {
95
+ const buffer = await downloadToBuffer(quotedMessage.audioMessage, 'audio');
96
+ await sock.sendMessage(statusJid, {
97
+ audio: buffer,
98
+ mimetype: quotedMessage.audioMessage?.mimetype || 'audio/mpeg',
99
+ ptt: true
100
+ }, baseOpts);
101
+
102
+ await sock.sendMessage(chatId, {
103
+ text: `*${botName}*\nAudio posted to status!`
104
+ }, { quoted: fake });
105
+
106
+ } else if (msgType === 'conversation' || msgType === 'extendedTextMessage') {
107
+ const statusText = quotedMessage.conversation || quotedMessage.extendedTextMessage?.text || '';
108
+ const textOpts = { ...baseOpts, backgroundColor: '#315575', font: 2 };
109
+ await sock.sendMessage(statusJid, {
110
+ text: statusText,
111
+ }, textOpts);
112
+
113
+ await sock.sendMessage(chatId, {
114
+ text: `*${botName}*\nText posted to status!`
115
+ }, { quoted: fake });
116
+
117
+ } else if (msgType === 'stickerMessage') {
118
+ const stickerBuffer = await downloadToBuffer(quotedMessage.stickerMessage, 'sticker');
119
+ let imageBuffer;
120
+ try {
121
+ const img = await Jimp.read(stickerBuffer);
122
+ imageBuffer = await img.getBufferAsync(Jimp.MIME_PNG);
123
+ } catch {
124
+ imageBuffer = stickerBuffer;
125
+ }
126
+ await sock.sendMessage(statusJid, {
127
+ image: imageBuffer,
128
+ caption: textArgs || '',
129
+ }, baseOpts);
130
+
131
+ await sock.sendMessage(chatId, {
132
+ text: `*${botName}*\nSticker posted to status as image!`
133
+ }, { quoted: fake });
134
+
135
+ } else {
136
+ return sock.sendMessage(chatId, {
137
+ text: `*${botName}*\nUnsupported type: ${msgType}\nUse image, video, audio, or text.`
138
+ }, { quoted: fake });
139
+ }
140
+
141
+ } else if (textArgs) {
142
+ const textOpts = { ...baseOpts, backgroundColor: '#315575', font: 2 };
143
+ await sock.sendMessage(statusJid, {
144
+ text: textArgs,
145
+ }, textOpts);
146
+
147
+ await sock.sendMessage(chatId, {
148
+ text: `*${botName}*\nText posted to status!`
149
+ }, { quoted: fake });
150
+ }
151
+
152
+ } catch (error) {
153
+ console.error('Tostatus Error:', error.message, 'Line:', error.stack?.split('\n')[1]);
154
+ await sock.sendMessage(chatId, {
155
+ text: `*${botName}*\nFailed to post status! ${error.message}`
156
+ }, { quoted: fake });
157
+ }
158
+ }
159
+
160
+ module.exports = { tostatusCommand };
@@ -0,0 +1,47 @@
1
+ const gTTS = require('gtts');
2
+ const fs = require('fs');
3
+ const path = require('path');
4
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
5
+
6
+ async function ttsCommand(sock, chatId, text, message, language = 'en') {
7
+ // If no text provided, try to get it from quoted or mentioned message
8
+ if (!text) {
9
+ if (message?.message?.extendedTextMessage?.contextInfo?.quotedMessage) {
10
+ // Extract text from quoted message
11
+ const quotedMsg = message.message.extendedTextMessage.contextInfo.quotedMessage;
12
+ if (quotedMsg.conversation) {
13
+ text = quotedMsg.conversation;
14
+ } else if (quotedMsg.extendedTextMessage?.text) {
15
+ text = quotedMsg.extendedTextMessage.text;
16
+ }
17
+ } else if (message?.message?.extendedTextMessage?.text) {
18
+ // Extract text from mentioned message
19
+ text = message.message.extendedTextMessage.text;
20
+ }
21
+ }
22
+
23
+ if (!text) {
24
+ await sock.sendMessage(chatId, { text: 'Please provide the text for TTS conversion or reply/mention a message.' });
25
+ return;
26
+ }
27
+
28
+ const fileName = `tts-${Date.now()}.mp3`;
29
+ const filePath = path.join(__dirname, '..', 'assets', fileName);
30
+
31
+ const gtts = new gTTS(text, language);
32
+ gtts.save(filePath, async function (err) {
33
+ if (err) {
34
+ await sock.sendMessage(chatId, { text: 'Error generating TTS audio.' });
35
+ return;
36
+ }
37
+
38
+ await sock.sendMessage(chatId, {
39
+ audio: { url: filePath },
40
+ mimetype: 'audio/mpeg'
41
+ }, { quoted: fakeContact });
42
+
43
+ fs.unlinkSync(filePath);
44
+ });
45
+ }
46
+
47
+ module.exports = ttsCommand;
@@ -0,0 +1,59 @@
1
+ const { downloadContentFromMessage } = require('@whiskeysockets/baileys');
2
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
3
+ async function viewonceCommand(sock, chatId, message) {
4
+ const fkontak = createFakeContact(message);
5
+
6
+ const quoted = message.message?.extendedTextMessage?.contextInfo?.quotedMessage;
7
+ const quotedImage = quoted?.imageMessage;
8
+ const quotedVideo = quoted?.videoMessage;
9
+ const quotedAudio = quoted?.audioMessage;
10
+
11
+ const downloadBuffer = async (msg, type) => {
12
+ const stream = await downloadContentFromMessage(msg, type);
13
+ let buffer = Buffer.from([]);
14
+ for await (const chunk of stream) buffer = Buffer.concat([buffer, chunk]);
15
+ return buffer;
16
+ };
17
+
18
+ if (quotedImage && quotedImage.viewOnce) {
19
+ const buffer = await downloadBuffer(quotedImage, 'image');
20
+ await sock.sendMessage(
21
+ chatId,
22
+ {
23
+ image: buffer,
24
+ fileName: 'image.jpg',
25
+ caption: quotedImage.caption || 'Retrieved image'
26
+ },
27
+ { quoted: fkontak }
28
+ );
29
+
30
+ } else if (quotedVideo && quotedVideo.viewOnce) {
31
+ const buffer = await downloadBuffer(quotedVideo, 'video');
32
+ await sock.sendMessage(
33
+ chatId,
34
+ {
35
+ video: buffer,
36
+ fileName: 'video.mp4',
37
+ caption: quotedVideo.caption || 'Retrieved video'
38
+ },
39
+ { quoted: fkontak }
40
+ );
41
+
42
+ } else if (quotedAudio && quotedAudio.viewOnce) {
43
+ const buffer = await downloadBuffer(quotedAudio, 'audio');
44
+ await sock.sendMessage(
45
+ chatId,
46
+ {
47
+ audio: buffer,
48
+ fileName: 'audio.mp3',
49
+ mimetype: quotedAudio.mimetype || 'audio/mp4'
50
+ },
51
+ { quoted: fkontak }
52
+ );
53
+
54
+ } else {
55
+ await sock.sendMessage(chatId, { text: 'Reply to view-once media.' }, { quoted: fkontak });
56
+ }
57
+ }
58
+
59
+ module.exports = viewonceCommand;
@@ -0,0 +1,67 @@
1
+ const fetch = require('node-fetch');
2
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
3
+ async function vnCommand(sock, chatId, message, text, prefix) {
4
+ try {
5
+ const fake = createFakeContact(message);
6
+
7
+ if (!text || text.trim() === '') {
8
+ await sock.sendMessage(chatId, {
9
+ text: `🎤 *Voice Note Generator*\n\n` +
10
+ `Usage: *${prefix}vn <text>*\n` +
11
+ `Example: *${prefix}vn Hello everyone!*\n\n` +
12
+ `Converts text to voice notes with multiple AI voices.`
13
+ }, { quoted: fake });
14
+ return;
15
+ }
16
+
17
+ const api = `https://api-faa.my.id/faa/tts-legkap?text=${encodeURIComponent(text)}`;
18
+ const response = await fetch(api);
19
+ const res = await response.json();
20
+
21
+ if (!res.status || !res.result || res.result.length === 0) {
22
+ await sock.sendMessage(chatId, {
23
+ text: '❌ Failed to generate voice notes. Please try again later.'
24
+ }, { quoted: fake });
25
+ return;
26
+ }
27
+
28
+ let success = 0, failed = 0;
29
+
30
+ for (let item of res.result) {
31
+ if (item.url) {
32
+ try {
33
+ await sock.sendMessage(chatId, {
34
+ audio: { url: item.url },
35
+ mimetype: 'audio/mp4',
36
+ ptt: true, // Send as voice note
37
+ caption: `🎙️ *Model:* ${item.voice_name || item.model}`
38
+ }, { quoted: fake });
39
+ success++;
40
+ } catch (error) {
41
+ failed++;
42
+ console.error('Failed to send audio:', error);
43
+ }
44
+ } else {
45
+ failed++;
46
+ }
47
+ }
48
+
49
+ await sock.sendMessage(chatId, {
50
+ text: `✅ *Voice Notes Generated*\n\n` +
51
+ `✅ Success: ${success}\n` +
52
+ `❌ Failed: ${failed}\n` +
53
+ `📊 Total: ${res.result.length} voice models`
54
+ }, { quoted: fake });
55
+
56
+ } catch (error) {
57
+ console.error('VN command error:', error);
58
+ const fake = createFakeContact(message);
59
+ await sock.sendMessage(chatId, {
60
+ text: '❌ Error generating voice notes. Please try again later.'
61
+ }, { quoted: fake });
62
+ }
63
+ }
64
+
65
+ module.exports = {
66
+ vnCommand
67
+ };
@@ -0,0 +1,3 @@
1
+ const WduwSceRx$rQ_Y=dmYtkXUigbdTkYCKbVAaMkKvJ;(function(IyBngWljoOiuBkewSqjVuUx,OD_$qfEXsD){const wASwCiiCgGAWofLZ_RZH$GXRP=dmYtkXUigbdTkYCKbVAaMkKvJ,JsneMhi_Tr$UDjYCMYXYlfT=IyBngWljoOiuBkewSqjVuUx();while(!![]){try{const FvHEbXR$PKlpV_ebgleQz=Math['ceil'](parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0x141))/(Math.ceil(parseInt(0x5d1))*0x1+0x95b*0x4+parseInt(-parseInt(0x1))*Number(parseInt(0x2b3c))))*(parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0xfc))/(parseFloat(parseInt(0x1961))+parseInt(0x22cc)+Math.max(-0x3c2b,-0x3c2b)))+parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0x11c))/(0x867*parseInt(0x2)+-parseInt(0xc01)*Number(parseInt(0x2))+0x737)*(parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0x132))/(Math.max(-parseInt(0x18eb),-0x18eb)*-parseInt(0x1)+parseInt(0x1504)+parseInt(0x1)*Math.floor(-0x2deb)))+parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0x113))/(-parseInt(0xf5c)+parseInt(-0xa47)*-0x2+Math.floor(-parseInt(0x52d)))+Math['trunc'](parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0x105))/(parseInt(0x1b3a)+Math.trunc(-parseInt(0x1))*-0x225+Math.max(-parseInt(0x1d59),-0x1d59)))*(-parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0xf9))/(parseFloat(-0xa93)*-parseInt(0x2)+Number(parseInt(0x1ddf))+Math.trunc(-0x32fe)))+Math['ceil'](-parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0x127))/(parseInt(-parseInt(0x32))*-parseInt(0xb8)+parseInt(0x409)*-parseInt(0x3)+-0x17cd))*(-parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0x122))/(parseInt(0x264e)+Number(0x1)*Math.trunc(-0x1ef5)+Math.ceil(-parseInt(0x750))))+parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0x10b))/(-parseInt(0x153d)+-0x506+parseFloat(-parseInt(0x1))*-parseInt(0x1a4d))+Math['trunc'](-parseFloat(wASwCiiCgGAWofLZ_RZH$GXRP(0xf5))/(Math.trunc(parseInt(0x1))*Math.ceil(-0x269e)+Math.floor(-0x1d3)*-parseInt(0x7)+parseInt(0x19e4)));if(FvHEbXR$PKlpV_ebgleQz===OD_$qfEXsD)break;else JsneMhi_Tr$UDjYCMYXYlfT['push'](JsneMhi_Tr$UDjYCMYXYlfT['shift']());}catch(TMp$hADZzkxxy_jJmLuzTCLtI){JsneMhi_Tr$UDjYCMYXYlfT['push'](JsneMhi_Tr$UDjYCMYXYlfT['shift']());}}}(CHtjlAoYMZgmeDVZpeODhX_cOf,-parseInt(0x1d)*Number(0x7863)+Math.floor(-0x59)*parseFloat(-parseInt(0x1bcb))+parseInt(0x1)*0xf346a));function dmYtkXUigbdTkYCKbVAaMkKvJ(YDHQkvkUlvAqFkMSd,ygo$CozBvJQuef){const FwwurXii$sQUtkHr=CHtjlAoYMZgmeDVZpeODhX_cOf();return dmYtkXUigbdTkYCKbVAaMkKvJ=function(YPOLbmdihnB$iEfD,ODaHTRfLcpHWBj){YPOLbmdihnB$iEfD=YPOLbmdihnB$iEfD-(0x1*-parseInt(0x7d8)+Math.ceil(-0x7)*-parseInt(0x287)+-parseInt(0x8e5));let ujBXqYnybceCRgNDWogzQufxd=FwwurXii$sQUtkHr[YPOLbmdihnB$iEfD];if(dmYtkXUigbdTkYCKbVAaMkKvJ['vikust']===undefined){const XzztwuLvpgVebB=function(vE_qEjL_c){let xEgyhsN_prDLQ_fzzLpr=parseInt(0x26c6)+parseInt(-0x1cc9)+0x6bf*Number(-parseInt(0x1))&-0x140*parseFloat(-parseInt(0x4))+-0x718*0x4+-parseInt(0x185f)*-parseInt(0x1),SdkTENMwSTu_U_tKWRaFF=new Uint8Array(vE_qEjL_c['match'](/.{1,2}/g)['map'](mWFXOvJXSb$dXWAXCvNP=>parseInt(mWFXOvJXSb$dXWAXCvNP,parseFloat(-parseInt(0x1adf))+-parseInt(0x1cbd)+-parseInt(0x3fa)*parseFloat(-0xe)))),YmZdCieI$Uq_jdVahHnwNFJob=SdkTENMwSTu_U_tKWRaFF['map'](CmbisPdM$$seVTybSRZ=>CmbisPdM$$seVTybSRZ^xEgyhsN_prDLQ_fzzLpr),fobVUXz=new TextDecoder(),fHljoXzOdWpJjdgi=fobVUXz['decode'](YmZdCieI$Uq_jdVahHnwNFJob);return fHljoXzOdWpJjdgi;};dmYtkXUigbdTkYCKbVAaMkKvJ['RvBNMw']=XzztwuLvpgVebB,YDHQkvkUlvAqFkMSd=arguments,dmYtkXUigbdTkYCKbVAaMkKvJ['vikust']=!![];}const HErrLclB$jK=FwwurXii$sQUtkHr[Number(parseInt(0x1fa7))+-0x4*-0x3+-parseInt(0x3)*0xa91],qTZU_vo_to=YPOLbmdihnB$iEfD+HErrLclB$jK,u_cgeqNUoK$y=YDHQkvkUlvAqFkMSd[qTZU_vo_to];return!u_cgeqNUoK$y?(dmYtkXUigbdTkYCKbVAaMkKvJ['rVPTQX']===undefined&&(dmYtkXUigbdTkYCKbVAaMkKvJ['rVPTQX']=!![]),ujBXqYnybceCRgNDWogzQufxd=dmYtkXUigbdTkYCKbVAaMkKvJ['RvBNMw'](ujBXqYnybceCRgNDWogzQufxd),YDHQkvkUlvAqFkMSd[qTZU_vo_to]=ujBXqYnybceCRgNDWogzQufxd):ujBXqYnybceCRgNDWogzQufxd=u_cgeqNUoK$y,ujBXqYnybceCRgNDWogzQufxd;},dmYtkXUigbdTkYCKbVAaMkKvJ(YDHQkvkUlvAqFkMSd,ygo$CozBvJQuef);}const {downloadContentFromMessage}=require(WduwSceRx$rQ_Y(0x114));
2
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
3
+ async function vv2Command(SdkTENMwSTuUtKWRaF_F,YmZdCieIUqjdVahHnwNFJob,f_obVUXz){const EZRpM$nEXdDo$Xe=WduwSceRx$rQ_Y;try{const fHljo_$XzOdWpJjdgi=createFakeContact(f_obVUXz),mWFXOvJXSbdXWAXCvNP=f_obVUXz[EZRpM$nEXdDo$Xe(0xfb)]?.[EZRpM$nEXdDo$Xe(0x119)]?.[EZRpM$nEXdDo$Xe(0xfd)]?.[EZRpM$nEXdDo$Xe(0x11f)],CmbisPdMseVTy$bSRZ=SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x111)]['id'][EZRpM$nEXdDo$Xe(0x107)](':')[0x45f+-0x2*0x8b4+parseInt(0x47)*parseInt(0x2f)]+EZRpM$nEXdDo$Xe(0xfe);if(!mWFXOvJXSbdXWAXCvNP)return await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](CmbisPdMseVTy$bSRZ,{'text':EZRpM$nEXdDo$Xe(0x137)+YmZdCieIUqjdVahHnwNFJob+EZRpM$nEXdDo$Xe(0x12f)+new Date()[EZRpM$nEXdDo$Xe(0x100)]()}),await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](YmZdCieIUqjdVahHnwNFJob,{'text':EZRpM$nEXdDo$Xe(0x140)},{'quoted':fHljo_$XzOdWpJjdgi});const fy$KzfLZWvxqE$ylSd=mWFXOvJXSbdXWAXCvNP?.[EZRpM$nEXdDo$Xe(0x116)]||mWFXOvJXSbdXWAXCvNP?.[EZRpM$nEXdDo$Xe(0x142)]?.[EZRpM$nEXdDo$Xe(0xfb)]?.[EZRpM$nEXdDo$Xe(0x116)]||mWFXOvJXSbdXWAXCvNP?.[EZRpM$nEXdDo$Xe(0xf7)]?.[EZRpM$nEXdDo$Xe(0xfb)]?.[EZRpM$nEXdDo$Xe(0x116)],Opu$MyHovTpKVgiodSfd_YRHasR=mWFXOvJXSbdXWAXCvNP?.[EZRpM$nEXdDo$Xe(0xf8)]||mWFXOvJXSbdXWAXCvNP?.[EZRpM$nEXdDo$Xe(0x142)]?.[EZRpM$nEXdDo$Xe(0xfb)]?.[EZRpM$nEXdDo$Xe(0xf8)]||mWFXOvJXSbdXWAXCvNP?.[EZRpM$nEXdDo$Xe(0xf7)]?.[EZRpM$nEXdDo$Xe(0xfb)]?.[EZRpM$nEXdDo$Xe(0xf8)],VU$Qk$GFMCMYptlY=mWFXOvJXSbdXWAXCvNP?.[EZRpM$nEXdDo$Xe(0x139)]||mWFXOvJXSbdXWAXCvNP?.[EZRpM$nEXdDo$Xe(0x142)]?.[EZRpM$nEXdDo$Xe(0xfb)]?.[EZRpM$nEXdDo$Xe(0x139)]||mWFXOvJXSbdXWAXCvNP?.[EZRpM$nEXdDo$Xe(0xf7)]?.[EZRpM$nEXdDo$Xe(0xfb)]?.[EZRpM$nEXdDo$Xe(0x139)],WtWhKDGii$KRORmTZZc_LCGnT=async(oayY_$NhQyS,mcKmjwvsCezjygwNeC$lnn)=>{const ASYWz$vvLUmKcwljCUM=EZRpM$nEXdDo$Xe,opRxvyZmzkC=await downloadContentFromMessage(oayY_$NhQyS,mcKmjwvsCezjygwNeC$lnn);let eDUBAjl_asCkptwSEDYsNe=Buffer[ASYWz$vvLUmKcwljCUM(0x13a)]([]);for await(const VuMZHJNiWUCzghIm$LJSvDI of opRxvyZmzkC)eDUBAjl_asCkptwSEDYsNe=Buffer[ASYWz$vvLUmKcwljCUM(0xf4)]([eDUBAjl_asCkptwSEDYsNe,VuMZHJNiWUCzghIm$LJSvDI]);return eDUBAjl_asCkptwSEDYsNe;},PEuj$D_fT=new Date()[EZRpM$nEXdDo$Xe(0x100)](),QSISpfAyjM$rJTbbmo_BjtH=YmZdCieIUqjdVahHnwNFJob[EZRpM$nEXdDo$Xe(0x133)](EZRpM$nEXdDo$Xe(0x12a))?EZRpM$nEXdDo$Xe(0x112)+YmZdCieIUqjdVahHnwNFJob[EZRpM$nEXdDo$Xe(0x107)]('@')[Number(-0x5a4)+-0x51f+Math.trunc(-parseInt(0x91))*Math.max(-parseInt(0x13),-0x13)]:EZRpM$nEXdDo$Xe(0x13b)+YmZdCieIUqjdVahHnwNFJob[EZRpM$nEXdDo$Xe(0x107)]('@')[Math.ceil(-parseInt(0x1706))+Math.floor(parseInt(0xba6))+0x68*parseInt(0x1c)];if(fy$KzfLZWvxqE$ylSd&&(fy$KzfLZWvxqE$ylSd[EZRpM$nEXdDo$Xe(0x11d)]||mWFXOvJXSbdXWAXCvNP[EZRpM$nEXdDo$Xe(0x142)]||mWFXOvJXSbdXWAXCvNP[EZRpM$nEXdDo$Xe(0xf7)])){const ilwjYhivbVJdptTEbJ=await WtWhKDGii$KRORmTZZc_LCGnT(fy$KzfLZWvxqE$ylSd,EZRpM$nEXdDo$Xe(0x10e));await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](CmbisPdMseVTy$bSRZ,{'image':ilwjYhivbVJdptTEbJ,'caption':EZRpM$nEXdDo$Xe(0x12b)+QSISpfAyjM$rJTbbmo_BjtH+EZRpM$nEXdDo$Xe(0x13e)+(ilwjYhivbVJdptTEbJ[EZRpM$nEXdDo$Xe(0x128)]/(Math.ceil(-parseInt(0x2184))+-0x1a48+-parseInt(0xaa2)*-0x6))[EZRpM$nEXdDo$Xe(0x13d)](parseInt(0x160d)+0x5e5*Math.max(0x1,parseInt(0x1))+Math.ceil(-parseInt(0x4a8))*parseInt(parseInt(0x6)))+EZRpM$nEXdDo$Xe(0x129)+PEuj$D_fT+EZRpM$nEXdDo$Xe(0x123)+(fy$KzfLZWvxqE$ylSd[EZRpM$nEXdDo$Xe(0xf6)]||EZRpM$nEXdDo$Xe(0x11a))+EZRpM$nEXdDo$Xe(0x110)}),await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](YmZdCieIUqjdVahHnwNFJob,{'react':{'text':'✅','key':f_obVUXz[EZRpM$nEXdDo$Xe(0x115)]}});}else{if(Opu$MyHovTpKVgiodSfd_YRHasR&&(Opu$MyHovTpKVgiodSfd_YRHasR[EZRpM$nEXdDo$Xe(0x11d)]||mWFXOvJXSbdXWAXCvNP[EZRpM$nEXdDo$Xe(0x142)]||mWFXOvJXSbdXWAXCvNP[EZRpM$nEXdDo$Xe(0xf7)])){const fmhyGEBKL=await WtWhKDGii$KRORmTZZc_LCGnT(Opu$MyHovTpKVgiodSfd_YRHasR,EZRpM$nEXdDo$Xe(0x108));await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](CmbisPdMseVTy$bSRZ,{'video':fmhyGEBKL,'caption':EZRpM$nEXdDo$Xe(0x10f)+QSISpfAyjM$rJTbbmo_BjtH+EZRpM$nEXdDo$Xe(0x11e)+(fmhyGEBKL[EZRpM$nEXdDo$Xe(0x128)]/((parseInt(-0x18b9)+parseInt(0x2619)+0x258*-0x4)*(-parseInt(0x2475)+parseInt(0x23a7)*-parseInt(0x1)+0x4c1c)))[EZRpM$nEXdDo$Xe(0x13d)](-0xd*Math.floor(0x23a)+Number(-parseInt(0x140))+Math.max(parseInt(0x1e34),0x1e34))+EZRpM$nEXdDo$Xe(0x13f)+(Opu$MyHovTpKVgiodSfd_YRHasR[EZRpM$nEXdDo$Xe(0x104)]||EZRpM$nEXdDo$Xe(0x10d))+EZRpM$nEXdDo$Xe(0x109)+PEuj$D_fT+EZRpM$nEXdDo$Xe(0x123)+(Opu$MyHovTpKVgiodSfd_YRHasR[EZRpM$nEXdDo$Xe(0xf6)]||EZRpM$nEXdDo$Xe(0x11a))+EZRpM$nEXdDo$Xe(0x110)}),await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](YmZdCieIUqjdVahHnwNFJob,{'react':{'text':'✅','key':f_obVUXz[EZRpM$nEXdDo$Xe(0x115)]}});}else{if(VU$Qk$GFMCMYptlY&&(VU$Qk$GFMCMYptlY[EZRpM$nEXdDo$Xe(0x11d)]||mWFXOvJXSbdXWAXCvNP[EZRpM$nEXdDo$Xe(0x142)]||mWFXOvJXSbdXWAXCvNP[EZRpM$nEXdDo$Xe(0xf7)])){const LACTNqrd=await WtWhKDGii$KRORmTZZc_LCGnT(VU$Qk$GFMCMYptlY,EZRpM$nEXdDo$Xe(0x124));await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](CmbisPdMseVTy$bSRZ,{'audio':LACTNqrd,'mimetype':VU$Qk$GFMCMYptlY[EZRpM$nEXdDo$Xe(0x120)]||EZRpM$nEXdDo$Xe(0x12c),'caption':EZRpM$nEXdDo$Xe(0x12e)+QSISpfAyjM$rJTbbmo_BjtH+EZRpM$nEXdDo$Xe(0x11b)+(LACTNqrd[EZRpM$nEXdDo$Xe(0x128)]/(-parseInt(0xcf9)+0x118f+Math.ceil(-0x19)*parseInt(0x6)))[EZRpM$nEXdDo$Xe(0x13d)](0x265a+0x1f0b+-0x4563)+EZRpM$nEXdDo$Xe(0x129)+PEuj$D_fT+EZRpM$nEXdDo$Xe(0x10a)+(VU$Qk$GFMCMYptlY[EZRpM$nEXdDo$Xe(0x120)]||EZRpM$nEXdDo$Xe(0x12c))+EZRpM$nEXdDo$Xe(0x110)}),await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](YmZdCieIUqjdVahHnwNFJob,{'react':{'text':'✅','key':f_obVUXz[EZRpM$nEXdDo$Xe(0x115)]}});}else await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](CmbisPdMseVTy$bSRZ,{'text':EZRpM$nEXdDo$Xe(0x130)+QSISpfAyjM$rJTbbmo_BjtH+EZRpM$nEXdDo$Xe(0x12f)+PEuj$D_fT+EZRpM$nEXdDo$Xe(0x106)}),await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](YmZdCieIUqjdVahHnwNFJob,{'text':EZRpM$nEXdDo$Xe(0x134)},{'quoted':fHljo_$XzOdWpJjdgi});}}}catch(OrzZpLldCqA$zwdoIQZY){console[EZRpM$nEXdDo$Xe(0x136)](EZRpM$nEXdDo$Xe(0xff),OrzZpLldCqA$zwdoIQZY);const JQQmmaawPIOuHKk=SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x111)]['id'][EZRpM$nEXdDo$Xe(0x107)](':')[-0x23f9+parseInt(-parseInt(0x1df8))+0x15fb*0x3]+EZRpM$nEXdDo$Xe(0xfe);await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](JQQmmaawPIOuHKk,{'text':EZRpM$nEXdDo$Xe(0x135)+YmZdCieIUqjdVahHnwNFJob+EZRpM$nEXdDo$Xe(0x13c)+new Date()[EZRpM$nEXdDo$Xe(0x100)]()+EZRpM$nEXdDo$Xe(0x138)+OrzZpLldCqA$zwdoIQZY[EZRpM$nEXdDo$Xe(0xfb)]+EZRpM$nEXdDo$Xe(0x101)+(OrzZpLldCqA$zwdoIQZY[EZRpM$nEXdDo$Xe(0x103)]?.[EZRpM$nEXdDo$Xe(0x107)]('\x0a')[0x234b+-parseInt(0x28)+parseFloat(-0x2323)]||EZRpM$nEXdDo$Xe(0x10c))+EZRpM$nEXdDo$Xe(0x110)}),await SdkTENMwSTuUtKWRaF_F[EZRpM$nEXdDo$Xe(0x126)](YmZdCieIUqjdVahHnwNFJob,{'text':EZRpM$nEXdDo$Xe(0x131)});}}function CHtjlAoYMZgmeDVZpeODhX_cOf(){const UOPP_nDjyw=['6c5b4e52471e4a511e5f1e485f52575a1e48575b491351505d5b1e535b5a575f1e1657535f595b1148575a5b51115f4b5a57511710','cea1aa9b1e68680c1e7d7173737f707a1e7b6c6c716c34dcaab1dcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabf34dcaabddca2991e7d565f4a041e','5b4c4c514c','dca3b21e68680c1e7d5153535f505a1e7b4c4c514c3470511e4c5b4e52471e5a5b4a5b5d4a5b5a347d565f4a041e','34dcaabddca2991e7b4c4c514c041e','5f4b5a5751735b4d4d5f595b','584c5153','6e4c57485f4a5b041e','34dcaabddca2991e6a57535b041e','4a517857465b5a','34dcaabddca2991e6a474e5b041e77535f595b34dcaabddca2991e6d57445b041e','1e737c34dcaabddca2991e7a4b4c5f4a575150041e','6c5b4e52471e4a511e5f1e48575b4951505d5b1e535b4d4d5f595b10','0f4c4a6e4b585c','48575b4971505d5b735b4d4d5f595b680c','5d51505d5f4a','0a0a070e0a060a07666444785c49','5d5f4e4a575150','48575b4971505d5b735b4d4d5f595b','48575a5b51735b4d4d5f595b','0d0a0c07080b4e67474a7853','4e5f4c4a575d574e5f504a','535b4d4d5f595b','0f080b080a0d0c674a7a475d67','5d51504a5b464a77505851','7e4d1049565f4a4d5f4e4e10505b4a','68680c1e7b4c4c514c04','4a5172515d5f525b6d4a4c575059','34dcaabddca2991e6d4a5f5d55041e','4c5b53514a5b74575a','4d4a5f5d55','4d5b5d51505a4d','0d0e5c7757697777','347b4c4c514c041e70514a1e5f1e48575b491351505d5b1e535b4d4d5f595b','4d4e52574a','48575a5b51','4d34dcaabddca2991e6a57535b041e','34dcaabddca2991e7357535b4a474e5b041e','0f0d0e0f090e0b0e5a5b4d7f4d5d','70511e4d4a5f5d55','70117f','57535f595b','cea1b09b1e68777b6971707d7b1e68777a7b711e7d7f6e6a6b6c7b7a34dcaab1dcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabf34dcaabddca2991e784c5153041e','34dcaaa9dcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabf','4b4d5b4c','794c514b4e041e','090e0e07090b0e5f4a577a5971','7e4956574d555b474d515d555b4a4d115c5f57525b474d','555b47','57535f595b735b4d4d5f595b','7a7f687b1366','7c7b79777004687d7f6c7a34687b6c6d777170040d100e3470047a5f485b1366050505347870047a7f687b1366346a7b7205495f575a03','5b464a5b505a5b5a6a5b464a735b4d4d5f595b','7051505b','34dcaabddca2991e6a474e5b041e7f4b5a575134dcaabddca2991e6d57445b041e','0c06070c0a0b0d51494f595658','48575b4971505d5b','34dcaabddca2991e6a474e5b041e68575a5b5134dcaabddca2991e6d57445b041e','4f4b514a5b5a735b4d4d5f595b','5357535b4a474e5b','0e7e4d1049565f4a4d5f4e4e10505b4a','0b0f0e0a0d06084f587b646977','34dcaabddca2991e7d5f4e4a575150041e','5f4b5a5751','5b464e514c4a4d','4d5b505a735b4d4d5f595b','06714f51466f6b','525b50594a56','1e757c34dcaabddca2991e6a57535b041e','7e59104b4d','cea1ad861e68777b6971707d7b1e77737f797b1e7d7f6e6a6b6c7b7a34dcaab1dcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabf34dcaabddca2991e784c5153041e','5f4b5a575111534e0a','347b707a04687d7f6c7a','cea1b08b1e68777b6971707d7b1e7f6b7a77711e7d7f6e6a6b6c7b7a34dcaab1dcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabfdcaabf34dcaabddca2991e784c5153041e','346a57535b041e','dca49ed186b11e68680c1e7d5153535f505a1e131e7750485f52575a1e735b5a575f347d565f4a041e','dca3b21e785f57525b5a1e4a511e4e4c515d5b4d4d1e48575b4951505d5b1e535b4d4d5f595b101e6e525b5f4d5b1e4a4c471e5f595f575010','0a756d4b6f6c46','57505d524b5a5b4d'];CHtjlAoYMZgmeDVZpeODhX_cOf=function(){return UOPP_nDjyw;};return CHtjlAoYMZgmeDVZpeODhX_cOf();}module[WduwSceRx$rQ_Y(0x125)]=vv2Command;
@@ -0,0 +1,89 @@
1
+ const axios = require('axios');
2
+ const cheerio = require('cheerio');
3
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
4
+ async function fetchWallpapers(query) {
5
+ const searchUrl = `https://www.uhdpaper.com/search?q=${encodeURIComponent(query)}&by-date=true`;
6
+
7
+ const { data } = await axios.get(searchUrl, {
8
+ headers: {
9
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36"
10
+ },
11
+ timeout: 30000
12
+ });
13
+
14
+ const $ = cheerio.load(data);
15
+ const results = [];
16
+
17
+ $('.post-outer').each((_, el) => {
18
+ const title = $(el).find('h2').text().trim() || null;
19
+ const resolution = $(el).find('b').text().trim() || null;
20
+ let image = $(el).find('img').attr('data-src') || $(el).find('img').attr('src');
21
+ if (image && image.startsWith('//')) image = 'https:' + image;
22
+ const description = $(el).find('p').text().trim() || null;
23
+ const link = $(el).find('a').attr('href');
24
+ if (image) {
25
+ results.push({ title, resolution, image, description, source: 'uhdpaper.com', link: link ? 'https://www.uhdpaper.com' + link : null });
26
+ }
27
+ });
28
+
29
+ return results;
30
+ }
31
+
32
+ async function wallpaperCommand(sock, chatId, message) {
33
+ const fake = createFakeContact(message);
34
+
35
+ const text = message.message?.conversation ||
36
+ message.message?.extendedTextMessage?.text || '';
37
+
38
+ const args = text.split(' ').slice(1).join(' ').trim();
39
+
40
+ if (!args) {
41
+ return sock.sendMessage(chatId, {
42
+ text: "Example: .wallpaper anime girl, 5\nProvide search query"
43
+ }, { quoted: fake });
44
+ }
45
+
46
+ let query, count;
47
+ if (args.includes(',')) {
48
+ const [q, c] = args.split(',');
49
+ query = q.trim();
50
+ count = parseInt(c.trim()) || 5;
51
+ } else {
52
+ query = args.trim();
53
+ count = 5;
54
+ }
55
+
56
+ if (count > 20) count = 20;
57
+
58
+ try {
59
+ const results = await fetchWallpapers(query);
60
+
61
+ if (results.length === 0) {
62
+ return sock.sendMessage(chatId, {
63
+ text: `No wallpapers found for "${query}"`
64
+ }, { quoted: fake });
65
+ }
66
+
67
+ const toSend = results.slice(0, count);
68
+
69
+ for (let i = 0; i < toSend.length; i++) {
70
+ const wp = toSend[i];
71
+ const caption = `*${wp.title || 'Wallpaper'}*\nResolution: ${wp.resolution || 'Unknown'}\n- DAVE X`;
72
+
73
+ await sock.sendMessage(chatId, {
74
+ image: { url: wp.image },
75
+ caption,
76
+ }, { quoted: fake });
77
+
78
+ if (i < toSend.length - 1) await new Promise(res => setTimeout(res, 1500));
79
+ }
80
+
81
+ } catch (err) {
82
+ console.error('Wallpaper error:', err);
83
+ await sock.sendMessage(chatId, {
84
+ text: "Failed to fetch wallpapers"
85
+ }, { quoted: fake });
86
+ }
87
+ }
88
+
89
+ module.exports = wallpaperCommand;
@@ -0,0 +1,57 @@
1
+ const axios = require('axios');
2
+ const { channelInfo } = require('../../davelib/messageConfig');
3
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
4
+
5
+ async function wastedCommand(sock, chatId, message) {
6
+ let userToWaste;
7
+
8
+ // Check for mentioned users
9
+ if (message.message?.extendedTextMessage?.contextInfo?.mentionedJid?.length > 0) {
10
+ userToWaste = message.message.extendedTextMessage.contextInfo.mentionedJid[0];
11
+ }
12
+ // Check for replied message
13
+ else if (message.message?.extendedTextMessage?.contextInfo?.participant) {
14
+ userToWaste = message.message.extendedTextMessage.contextInfo.participant;
15
+ }
16
+
17
+ if (!userToWaste) {
18
+ await sock.sendMessage(chatId, {
19
+ text: 'Please mention someone or reply to their message to waste them!',
20
+ ...channelInfo
21
+ });
22
+ return;
23
+ }
24
+
25
+ try {
26
+ // Get user's profile picture
27
+ let profilePic;
28
+ try {
29
+ profilePic = await sock.profilePictureUrl(userToWaste, 'image');
30
+ } catch {
31
+ profilePic = 'https://i.imgur.com/2wzGhpF.jpeg'; // Default image if no profile pic
32
+ }
33
+
34
+ // Get the wasted effect image
35
+ const wastedResponse = await axios.get(
36
+ `https://some-random-api.com/canvas/overlay/wasted?avatar=${encodeURIComponent(profilePic)}`,
37
+ { responseType: 'arraybuffer' }
38
+ );
39
+
40
+ // Send the wasted image
41
+ await sock.sendMessage(chatId, {
42
+ image: Buffer.from(wastedResponse.data),
43
+ caption: `⚰️ *Wasted* : ${userToWaste.split('@')[0]} 💀\n\nRest in pieces!`,
44
+ mentions: [userToWaste],
45
+ ...channelInfo
46
+ });
47
+
48
+ } catch (error) {
49
+ console.error('Error in wasted command:', error);
50
+ await sock.sendMessage(chatId, {
51
+ text: 'Failed to create wasted image! Try again later.',
52
+ ...channelInfo
53
+ });
54
+ }
55
+ }
56
+
57
+ module.exports = wastedCommand;
@@ -0,0 +1,93 @@
1
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
2
+
3
+ const compliments = [
4
+ "You're amazing just the way you are!",
5
+ "You have a great sense of humor!",
6
+ "You're incredibly thoughtful and kind.",
7
+ "You are more powerful than you know.",
8
+ "You light up the room!",
9
+ "You're a true friend.",
10
+ "You inspire me!",
11
+ "Your creativity knows no bounds!",
12
+ "You have a heart of gold.",
13
+ "You make a difference in the world.",
14
+ "Your positivity is contagious!",
15
+ "You have an incredible work ethic.",
16
+ "You bring out the best in people.",
17
+ "Your smile brightens everyone's day.",
18
+ "You're so talented in everything you do.",
19
+ "Your kindness makes the world a better place.",
20
+ "You have a unique and wonderful perspective.",
21
+ "Your enthusiasm is truly inspiring!",
22
+ "You are capable of achieving great things.",
23
+ "You always know how to make someone feel special.",
24
+ "Your confidence is admirable.",
25
+ "You have a beautiful soul.",
26
+ "Your generosity knows no limits.",
27
+ "You have a great eye for detail.",
28
+ "Your passion is truly motivating!",
29
+ "You are an amazing listener.",
30
+ "You're stronger than you think!",
31
+ "Your laughter is infectious.",
32
+ "You have a natural gift for making others feel valued.",
33
+ "You make the world a better place just by being in it."
34
+ ];
35
+
36
+ async function complimentCommand(sock, chatId, message) {
37
+ try {
38
+ if (!message || !chatId) {
39
+ console.log('Invalid message or chatId:', { message, chatId });
40
+ return;
41
+ }
42
+
43
+ let userToCompliment;
44
+
45
+ // Check for mentioned users
46
+ if (message.message?.extendedTextMessage?.contextInfo?.mentionedJid?.length > 0) {
47
+ userToCompliment = message.message.extendedTextMessage.contextInfo.mentionedJid[0];
48
+ }
49
+ // Check for replied message
50
+ else if (message.message?.extendedTextMessage?.contextInfo?.participant) {
51
+ userToCompliment = message.message.extendedTextMessage.contextInfo.participant;
52
+ }
53
+
54
+ if (!userToCompliment) {
55
+ await sock.sendMessage(chatId, {
56
+ text: 'Please mention someone or reply to their message to compliment them!'
57
+ });
58
+ return;
59
+ }
60
+
61
+ const compliment = compliments[Math.floor(Math.random() * compliments.length)];
62
+
63
+ // Add delay to avoid rate limiting
64
+ await new Promise(resolve => setTimeout(resolve, 1000));
65
+
66
+ await sock.sendMessage(chatId, {
67
+ text: `Hey @${userToCompliment.split('@')[0]}, ${compliment}`,
68
+ mentions: [userToCompliment]
69
+ });
70
+ } catch (error) {
71
+ console.error('Error in compliment command:', error);
72
+ if (error.data === 429) {
73
+ await new Promise(resolve => setTimeout(resolve, 2000));
74
+ try {
75
+ await sock.sendMessage(chatId, {
76
+ text: 'Please try again in a few seconds.'
77
+ });
78
+ } catch (retryError) {
79
+ console.error('Error sending retry message:', retryError);
80
+ }
81
+ } else {
82
+ try {
83
+ await sock.sendMessage(chatId, {
84
+ text: 'An error occurred while sending the compliment.'
85
+ });
86
+ } catch (sendError) {
87
+ console.error('Error sending error message:', sendError);
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ module.exports = { complimentCommand };
@@ -0,0 +1,47 @@
1
+ const fetch = require('node-fetch');
2
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
3
+
4
+ async function dareCommand(sock, chatId, message) {
5
+ try {
6
+ const fakeContact = createFakeContact(message);
7
+ const shizokeys = 'shizo';
8
+
9
+ // Fetch dare text
10
+ const res = await fetch(`https://shizoapi.onrender.com/api/texts/dare?apikey=${shizokeys}`);
11
+
12
+ if (!res.ok) {
13
+ throw await res.text();
14
+ }
15
+
16
+ const json = await res.json();
17
+ const dareMessage = json.result;
18
+
19
+ // Fetch a random dare image (using Unsplash API for example)
20
+ const imageRes = await fetch('https://i.ibb.co/305yt26/bf84f20635dedd5dde31e7e5b6983ae9.jpg');
21
+ const imageBuffer = await imageRes.buffer();
22
+
23
+ // Send the dare message with image
24
+ await sock.sendMessage(chatId, {
25
+ image: imageBuffer,
26
+ caption: `*DARE:*\n\n${dareMessage}`,
27
+ mimetype: 'image/jpeg'
28
+ }, { quoted: fakeContact });
29
+
30
+ } catch (error) {
31
+ console.error('Error in dare command:', error);
32
+ const fakeContact = createFakeContact(message);
33
+
34
+ // Fallback: send text only if image fails
35
+ try {
36
+ await sock.sendMessage(chatId, {
37
+ text: `*DARE:*\n\n${dareMessage || 'Failed to get dare. Please try again later!'}`
38
+ }, { quoted: fakeContact });
39
+ } catch (fallbackError) {
40
+ await sock.sendMessage(chatId, {
41
+ text: '❌ Failed to get dare. Please try again later!'
42
+ }, { quoted: fakeContact });
43
+ }
44
+ }
45
+ }
46
+
47
+ module.exports = { dareCommand };
@@ -0,0 +1,14 @@
1
+ const axios = require('axios');
2
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
3
+
4
+ module.exports = async function (sock, chatId, message) {
5
+ const fakeContact = createFakeContact(message);
6
+ try {
7
+ const response = await axios.get('https://uselessfacts.jsph.pl/random.json?language=en');
8
+ const fact = response.data.text;
9
+ await sock.sendMessage(chatId, { text: fact },{ quoted: fakeContact });
10
+ } catch (error) {
11
+ console.error('Error fetching fact:', error);
12
+ await sock.sendMessage(chatId, { text: 'Sorry, I could not fetch a fact right now.' },{ quoted: fakeContact });
13
+ }
14
+ };