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,52 @@
1
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
2
+
3
+ async function joinCommand(sock, chatId, message) {
4
+ const fake = createFakeContact(message);
5
+ const botName = getBotName();
6
+
7
+ try {
8
+ const text = message.message?.conversation ||
9
+ message.message?.extendedTextMessage?.text || '';
10
+
11
+ const parts = text.trim().split(/\s+/);
12
+ const inviteLink = parts[1] || '';
13
+
14
+ if (!inviteLink) {
15
+ return await sock.sendMessage(chatId, {
16
+ text: `✦ *${botName}* | Join Group\n\nUse: .join <invite_link>\nExample: .join https://chat.whatsapp.com/XXXXXX`
17
+ }, { quoted: fake });
18
+ }
19
+
20
+ const code = inviteLink.replace(/^https?:\/\/chat\.whatsapp\.com\//i, '').trim();
21
+
22
+ if (!code) {
23
+ return await sock.sendMessage(chatId, {
24
+ text: `✦ *${botName}* | Invalid invite link.`
25
+ }, { quoted: fake });
26
+ }
27
+
28
+ await sock.sendMessage(chatId, { react: { text: '⏳', key: message.key } });
29
+
30
+ await sock.groupAcceptInvite(code);
31
+
32
+ await sock.sendMessage(chatId, { react: { text: '✅', key: message.key } });
33
+ await sock.sendMessage(chatId, {
34
+ text: `✦ *${botName}* | Successfully joined the group!`
35
+ }, { quoted: fake });
36
+
37
+ } catch (error) {
38
+ console.error('Join command error:', error.message);
39
+ await sock.sendMessage(chatId, { react: { text: '❌', key: message.key } });
40
+
41
+ let msg = `✦ *${botName}* | Failed to join group.`;
42
+ if (error.message?.includes('not-authorized') || error.message?.includes('forbidden')) {
43
+ msg = `✦ *${botName}* | Not authorized or invite expired.`;
44
+ } else if (error.message?.includes('item-not-found')) {
45
+ msg = `✦ *${botName}* | Group not found. Check the invite link.`;
46
+ }
47
+
48
+ await sock.sendMessage(chatId, { text: msg }, { quoted: fake });
49
+ }
50
+ }
51
+
52
+ module.exports = joinCommand;
@@ -0,0 +1,67 @@
1
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
2
+
3
+ async function lastseenCommand(sock, chatId, message) {
4
+ const fake = createFakeContact(message);
5
+ const botName = getBotName();
6
+
7
+ try {
8
+ // Initial reaction
9
+ await sock.sendMessage(chatId, {
10
+ react: { text: '⏳', key: message.key }
11
+ });
12
+
13
+ const text = message.message?.conversation || message.message?.extendedTextMessage?.text;
14
+ const query = text?.split(' ').slice(1).join(' ').trim().toLowerCase();
15
+
16
+ // Show usage if no argument provided
17
+ if (!query) {
18
+ return sock.sendMessage(chatId, {
19
+ text: `✦ *${botName}* Last Seen\n\nUse: .lastseen <option>\n\nOptions:\n• all\n• contacts\n• none\n\nExample: .lastseen contacts`
20
+ }, { quoted: fake });
21
+ }
22
+
23
+ // Validate option
24
+ const validOptions = {
25
+ all: 'Everyone can see your last seen',
26
+ contacts: 'Only contacts can see your last seen',
27
+ none: 'No one can see your last seen'
28
+ };
29
+
30
+ if (!validOptions[query]) {
31
+ return sock.sendMessage(chatId, {
32
+ text: `✦ *${botName}*\nInvalid option\n\nUse: all, contacts, none`
33
+ }, { quoted: fake });
34
+ }
35
+
36
+ // Update last seen privacy
37
+ await sock.updateLastSeenPrivacy(query);
38
+
39
+ // Success reaction
40
+ await sock.sendMessage(chatId, {
41
+ react: { text: '✅', key: message.key }
42
+ });
43
+
44
+ // Success message
45
+ return sock.sendMessage(chatId, {
46
+ text: `✦ *${botName}* - am know invisible 🔥\n\nLast seen set to: ${query}\n${validOptions[query]}`
47
+ }, { quoted: fake });
48
+
49
+ } catch (error) {
50
+ console.error("Lastseen command error:", error);
51
+
52
+ let errorMessage = '✦ Failed to update';
53
+ if (error.message.includes('privacy')) errorMessage = '✦ Privacy update failed';
54
+ else if (error.message.includes('timeout') || error.code === 'ECONNABORTED') errorMessage = '✦ Request timeout';
55
+ else if (error.code === 'ENOTFOUND') errorMessage = '✦ Network error';
56
+
57
+ await sock.sendMessage(chatId, {
58
+ text: errorMessage
59
+ }, { quoted: fake });
60
+
61
+ await sock.sendMessage(chatId, {
62
+ react: { text: '❌', key: message.key }
63
+ });
64
+ }
65
+ }
66
+
67
+ module.exports = lastseenCommand;
@@ -0,0 +1,106 @@
1
+ const axios = require('axios');
2
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
3
+
4
+ async function locationCommand(sock, chatId, message) {
5
+ const fake = createFakeContact(message);
6
+ const botName = getBotName();
7
+
8
+ try {
9
+ // Send initial reaction
10
+ await sock.sendMessage(chatId, {
11
+ react: { text: '⏳', key: message.key }
12
+ });
13
+
14
+ const text = message.message?.conversation ||
15
+ message.message?.extendedTextMessage?.text ||
16
+ message.message?.imageMessage?.caption ||
17
+ '';
18
+
19
+ if (!text.includes(' ')) {
20
+ return await sock.sendMessage(chatId, {
21
+ text: `✦ *${botName}* Location\n\nUse: .location <place>\nExample: .location Nairobi, Kenya`
22
+ }, { quoted: fake });
23
+ }
24
+
25
+ const parts = text.split(' ');
26
+ const locationQuery = parts.slice(1).join(' ').trim();
27
+
28
+ if (!locationQuery) {
29
+ return await sock.sendMessage(chatId, {
30
+ text: `✦ *${botName}*\nProvide a location`
31
+ }, { quoted: fake });
32
+ }
33
+
34
+ if (locationQuery.length > 100) {
35
+ return await sock.sendMessage(chatId, {
36
+ text: `✦ *${botName}*\nLocation name too long (max 100 chars)`
37
+ }, { quoted: fake });
38
+ }
39
+
40
+ // Update presence to "recording" (searching)
41
+ await sock.sendPresenceUpdate('recording', chatId);
42
+
43
+ // Call API to resolve coordinates
44
+ const apiUrl = `https://apiskeith.top/tools/location?q=${encodeURIComponent(locationQuery)}`;
45
+ const response = await axios.get(apiUrl, { timeout: 60000 });
46
+ const apiData = response.data;
47
+
48
+ if (!apiData?.status || !apiData?.result?.results?.length) {
49
+ throw new Error(`Could not find location for: ${locationQuery}`);
50
+ }
51
+
52
+ const locationData = apiData.result.results[0];
53
+ const { lat, lng } = locationData.geometry;
54
+ const formattedName = locationData.formatted || locationQuery;
55
+
56
+ // Send success reaction
57
+ await sock.sendMessage(chatId, {
58
+ react: { text: '✅', key: message.key }
59
+ });
60
+
61
+ // Send the location message
62
+ await sock.sendMessage(chatId, {
63
+ location: {
64
+ degreesLatitude: lat,
65
+ degreesLongitude: lng,
66
+ name: formattedName,
67
+ address: formattedName
68
+ }
69
+ }, { quoted: fake });
70
+
71
+ // Send final reaction
72
+ await sock.sendMessage(chatId, {
73
+ react: { text: '📍', key: message.key }
74
+ });
75
+
76
+ } catch (error) {
77
+ console.error("Location command error:", error);
78
+
79
+ // Send error reaction
80
+ await sock.sendMessage(chatId, {
81
+ react: { text: '❌', key: message.key }
82
+ });
83
+
84
+ let errorMessage = "✦ Location not found";
85
+
86
+ if (error.response?.status === 404) {
87
+ errorMessage = '✦ Service unavailable';
88
+ } else if (error.message.includes('timeout') || error.code === 'ECONNABORTED') {
89
+ errorMessage = '✦ Request timeout';
90
+ } else if (error.code === 'ENOTFOUND') {
91
+ errorMessage = '✦ Network error';
92
+ } else if (error.response?.status === 429) {
93
+ errorMessage = '✦ Too many requests';
94
+ } else if (error.response?.status >= 500) {
95
+ errorMessage = '✦ Server error';
96
+ } else if (error.message.includes('Could not find location')) {
97
+ errorMessage = `✦ Could not find: ${locationQuery}`;
98
+ }
99
+
100
+ await sock.sendMessage(chatId, {
101
+ text: errorMessage
102
+ }, { quoted: fake });
103
+ }
104
+ }
105
+
106
+ module.exports = locationCommand;
@@ -0,0 +1,54 @@
1
+ const axios = require('axios');
2
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
3
+
4
+ async function lyricsCommand(sock, chatId, songTitle, message) {
5
+ const fake = createFakeContact(message);
6
+ const botName = getBotName();
7
+
8
+ if (!songTitle) {
9
+ await sock.sendMessage(chatId, {
10
+ text: `✦ *${botName}* Lyrics\n\nUse: .lyrics <song name>\nExample: .lyrics Never Gonna Give You Up`
11
+ }, { quoted: fake });
12
+ return;
13
+ }
14
+
15
+ try {
16
+ await sock.sendMessage(chatId, {
17
+ react: { text: '⏳', key: message.key }
18
+ });
19
+
20
+ const res = await axios.get(`https://apiskeith.top/search/lyrics2?query=${encodeURIComponent(songTitle)}`);
21
+ const data = res.data;
22
+
23
+ if (!data.status || !data.result) {
24
+ await sock.sendMessage(chatId, {
25
+ text: `✦ *${botName}*\nLyrics not found`
26
+ }, { quoted: fake });
27
+
28
+ await sock.sendMessage(chatId, {
29
+ react: { text: '❌', key: message.key }
30
+ });
31
+ return;
32
+ }
33
+
34
+ await sock.sendMessage(chatId, {
35
+ text: `✦ *${botName}* - am know invisible 🔥\n\n${data.result}`
36
+ }, { quoted: fake });
37
+
38
+ await sock.sendMessage(chatId, {
39
+ react: { text: '✅', key: message.key }
40
+ });
41
+
42
+ } catch (error) {
43
+ console.error('Error in lyrics command:', error);
44
+ await sock.sendMessage(chatId, {
45
+ text: `✦ *${botName}*\nFailed to fetch lyrics`
46
+ }, { quoted: fake });
47
+
48
+ await sock.sendMessage(chatId, {
49
+ react: { text: '❌', key: message.key }
50
+ });
51
+ }
52
+ }
53
+
54
+ module.exports = { lyricsCommand };
@@ -0,0 +1,66 @@
1
+ const axios = require("axios");
2
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
3
+ async function movieCommand(sock, chatId, message) {
4
+ const fake = createFakeContact(message);
5
+
6
+ const text = message.message?.conversation ||
7
+ message.message?.extendedTextMessage?.text || '';
8
+
9
+ const query = text.split(' ').slice(1).join(' ').trim();
10
+
11
+ if (!query) {
12
+ return sock.sendMessage(chatId, {
13
+ text: "Example: .movie Avengers Endgame\nProvide movie name"
14
+ }, { quoted: fake });
15
+ }
16
+
17
+ try {
18
+ const response = await axios.get(`http://www.omdbapi.com/?apikey=742b2d09&t=${encodeURIComponent(query)}&plot=full`);
19
+
20
+ if (!response.data || response.data.Response === 'False') {
21
+ return sock.sendMessage(chatId, {
22
+ text: "Movie not found"
23
+ }, { quoted: fake });
24
+ }
25
+
26
+ const fids = response.data;
27
+ let info = "";
28
+
29
+ info += "━━━━━━━━━━━━━━━━━━━━━━━━\n";
30
+ info += "DAVE X MOVIE SEARCH\n";
31
+ info += "━━━━━━━━━━━━━━━━━━━━━━━━\n";
32
+ info += "Title: " + fids.Title + "\n";
33
+ info += "Year: " + fids.Year + "\n";
34
+ info += "Rated: " + fids.Rated + "\n";
35
+ info += "Released: " + fids.Released + "\n";
36
+ info += "Runtime: " + fids.Runtime + "\n";
37
+ info += "Genre: " + fids.Genre + "\n";
38
+ info += "Director: " + fids.Director + "\n";
39
+ info += "Writer: " + fids.Writer + "\n";
40
+ info += "Actors: " + fids.Actors + "\n";
41
+ info += "Plot: " + fids.Plot + "\n";
42
+ info += "Language: " + fids.Language + "\n";
43
+ info += "Country: " + fids.Country + "\n";
44
+ info += "Awards: " + fids.Awards + "\n";
45
+ info += "BoxOffice: " + fids.BoxOffice + "\n";
46
+ info += "Production: " + fids.Production + "\n";
47
+ info += "IMDb Rating: " + fids.imdbRating + "\n";
48
+ info += "IMDb Votes: " + fids.imdbVotes + "\n";
49
+ info += "━━━━━━━━━━━━━━━━━━━━━━━━\n";
50
+
51
+ await sock.sendMessage(chatId, {
52
+ image: {
53
+ url: fids.Poster,
54
+ },
55
+ caption: info,
56
+ }, { quoted: fake });
57
+
58
+ } catch (e) {
59
+ console.error("Movie Error:", e);
60
+ await sock.sendMessage(chatId, {
61
+ text: "Failed to fetch movie info"
62
+ }, { quoted: fake });
63
+ }
64
+ }
65
+
66
+ module.exports = movieCommand;
@@ -0,0 +1,37 @@
1
+ const axios = require('axios');
2
+ const { createFakeContact, getBotName } = require('../../davelib/fakeContact');
3
+
4
+ async function newsCommand(sock, chatId, message) {
5
+ const fake = createFakeContact(message);
6
+ const botName = getBotName();
7
+
8
+ try {
9
+ const apiKey = 'dcd720a6f1914e2d9dba9790c188c08c'; // Replace with your NewsAPI key
10
+ const response = await axios.get(`https://newsapi.org/v2/top-headlines?country=us&apiKey=${apiKey}`);
11
+ const articles = response.data.articles.slice(0, 5); // Get top 5 articles
12
+
13
+ let newsMessage = `✦ *TOP NEWS*
14
+ ╭─────────────────
15
+
16
+ `;
17
+ articles.forEach((article, index) => {
18
+ newsMessage += `│ ${index + 1}. *${article.title}*\n`;
19
+ if (article.description) {
20
+ newsMessage += `│ ${article.description.substring(0, 100)}${article.description.length > 100 ? '...' : ''}\n`;
21
+ }
22
+ newsMessage += `│\n`;
23
+ });
24
+
25
+ newsMessage += `╰─────────────────`;
26
+
27
+ await sock.sendMessage(chatId, { text: newsMessage }, { quoted: fake });
28
+
29
+ } catch (error) {
30
+ console.error('Error fetching news:', error);
31
+ await sock.sendMessage(chatId, {
32
+ text: `✦ Failed to fetch news`
33
+ }, { quoted: fake });
34
+ }
35
+ }
36
+
37
+ module.exports = newsCommand;