const { cmd } = require("../command"); const axios = require('axios'); const BASE_URL = "https://v6.exchangerate-api.com/v6"; const API_KEY = "9c8b8532d40e5da04fac9772"; cmd({ pattern: "convertmoney", react: "💸", alias: ["currency", "cvmoney"], desc: "Convert money from one currency to another currency", category: "utility", use: ".currency amount fromCurrency toCurrency (e.g: .convert 100 USD EUR)", filename: __filename, }, async (conn, mek, msg, { from, reply, args }) => { try { if (args.length !== 3) { return reply("*⭕ ɪɴᴠᴀʟɪᴅ ғᴏʀᴍᴀᴛ! ᴜsᴇ: .ᴄᴜʀʀᴇɴᴄʏ ᴀᴍᴏᴜɴᴛ ғʀᴏᴍᴄᴜʀʀᴇɴᴄʏ ᴛᴏᴄᴜʀʀᴇɴᴄʏ*\n*ᴇxᴀᴍᴘʟᴇ: .ᴄᴜʀʀᴇɴᴄʏ 𝟷𝟶𝟶 ᴜsᴅ ᴘᴋʀ*"); } const amount = parseFloat(args[0]); const fromCurrency = args[1].toUpperCase(); const toCurrency = args[2].toUpperCase(); if (isNaN(amount)) { return reply("*❌ ᴘʟᴇᴀsᴇ ᴘʀᴏᴠɪᴅᴇ ᴀ ᴠᴀʟɪᴅ ᴀᴍᴏᴜɴᴛ!*"); } const response = await axios.get(`${BASE_URL}/${API_KEY}/latest/${fromCurrency}`); if (response.data.result === "error") { throw new Error(response.data["error-type"]); } const rates = response.data.conversion_rates; if (!rates[toCurrency]) { return reply("*❌ ɪɴᴠᴀʟɪᴅ ᴛᴀʀɢᴇᴛ ᴄᴜʀʀᴇɴᴄʏ ᴄᴏᴅᴇ! ᴘʟᴇᴀsᴇ ᴜsᴇ ᴠᴀʟɪᴅ ᴄᴜʀʀᴇɴᴄʏ ᴄᴏᴅᴇs ʟɪᴋᴇ ᴜsᴅ, ᴇᴜʀ, ɢʙᴘ, ᴇᴛᴄ.*"); } const convertedAmount = (amount * rates[toCurrency]).toFixed(2); const formattedAmount = new Intl.NumberFormat().format(amount); const formattedResult = new Intl.NumberFormat().format(convertedAmount); const message = `*🌍 ᴀʟɪ-ᴍᴅ- ᴄᴜʀʀᴇɴᴄʏ ᴄᴏɴᴠᴇʀsɪᴏɴ 💵*\n\n` + `*💲 ғʀᴏᴍ:* ${formattedAmount} ${fromCurrency}\n` + `*🏷️ ᴛᴏ:* ${formattedResult} ${toCurrency}\n` + `*💰 ʀᴀᴛᴇ:* 1 ${fromCurrency} = ${rates[toCurrency]} ${toCurrency}\n\n` + `*⏰ ʟᴀsᴛ ᴜᴘᴅᴀᴛᴇᴅ:* ${response.data.time_last_update_utc}`; reply(message); } catch (error) { console.error("Currency conversion error:", error); if (error.message === "unsupported-code") { reply("❌ Invalid currency code! Please use valid currency codes like USD, EUR, GBP, etc."); } else if (error.message === "malformed-request") { reply("❌ Invalid API request format. Please try again."); } else if (error.message === "invalid-key") { reply("❌ API key validation failed. Please contact the administrator."); } else if (error.message === "inactive-account") { reply("❌ API account is not active. Please contact the administrator."); } else if (error.message === "quota-reached") { reply("❌ API quota has been reached. Please try again later."); } else { reply("❌ Failed to convert currency. Please try again later."); } } });