// code from goatstore // api: https://store.agi.bd const axios = require("axios"); const fs = require("fs"); const path = require("path"); module.exports = { config: { name: "download", version: "1.4", author: "๐’๐ˆ๐˜๐€๐Œ-๐‡๐€๐’๐€๐", // LOCKED AUTHOR countDown: 5, role: 0, shortDescription: "Download media from direct link", category: "media", guide: "{pn} " }, onStart: async function ({ api, event, args }) { // ===== AUTHOR LOCK SYSTEM ===== const LOCKED_AUTHOR = "๐’๐ˆ๐˜๐€๐Œ-๐‡๐€๐’๐€๐"; if (module.exports.config.author !== LOCKED_AUTHOR) { const lockMsg = `ยป ๐Ÿ‘‘ ๐’๐ˆ๐˜๐€๐Œ-๐‡๐€๐’๐€๐ ๐Ÿ‘‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป โ›” ๐—™๐—œ๐—Ÿ๐—˜ ๐—Ÿ๐—ข๐—–๐—ž๐—˜๐—— ยป โŒ เฆธเฆฟเฆฏเฆผเฆพเฆฎ เฆญเฆพเฆ‡ เฆเฆฐ เฆจเฆพเฆฎ ยป ๐Ÿคฆ เฆชเฆฐเฆฟเฆฌเฆฐเงเฆคเฆจ เฆ•เฆฐเฆพ เฆนเงŸเง‡เฆ›เง‡! ยป โš ๏ธ เฆเฆ‡ เฆ•เฆฎเฆพเฆจเงเฆกเฆŸเฆฟ เฆจเฆทเงเฆŸ เฆ•เฆฐเฆพ เฆนเฆฒเง‹เฅค โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿงšโ€โ™€๏ธ โ€ฟ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—–๐—›๐—”๐—ง๐—•๐—ข๐—ง`; return api.sendMessage( lockMsg, event.threadID, event.messageID ); } // ============================== const url = args[0]; if (!url) { const usageMsg = `ยป ๐Ÿ‘‘ ๐’๐ˆ๐˜๐€๐Œ-๐‡๐€๐’๐€๐ ๐Ÿ‘‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป โš ๏ธ เฆ…เฆจเงเฆ—เงเฆฐเฆน เฆ•เฆฐเง‡ เฆเฆ•เฆŸเฆฟ ยป โŒ ๐——๐—ถ๐—ฟ๐—ฒ๐—ฐ๐˜ ๐—Ÿ๐—ถ๐—ป๐—ธ เฆฆเฆฟเฆจเฅค โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ’ก เฆฌเงเฆฏเฆฌเฆนเฆพเฆฐ เฆชเฆฆเงเฆงเฆคเฆฟ: ๐ŸŽ€ download https://example.com/video.mp4 โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿงšโ€โ™€๏ธ โ€ฟ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—–๐—›๐—”๐—ง๐—•๐—ข๐—ง`; return api.sendMessage( usageMsg, event.threadID, event.messageID ); } const supported = [ ".mp4", ".mp3", ".jpg", ".jpeg", ".png", ".gif", ".pdf", ".docx", ".txt", ".zip" ]; const cleanUrl = url.split("?")[0]; const ext = path.extname(cleanUrl).toLowerCase(); if (!supported.includes(ext)) { const unsupportedMsg = `ยป ๐Ÿ‘‘ ๐’๐ˆ๐˜๐€๐Œ-๐‡๐€๐’๐€๐ ๐Ÿ‘‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป โŒ ๐—จ๐—ป๐˜€๐˜‚๐—ฝ๐—ฝ๐—ผ๐—ฟ๐˜๐—ฒ๐—ฑ ๐—™๐—ถ๐—น๐—ฒ ๐—ง๐˜†๐—ฝ๐—ฒ! โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿ“œ เฆธเฆพเฆชเง‹เฆฐเงเฆŸ เฆซเฆพเฆ‡เฆฒ เฆซเฆฐเฆฎเงเฆฏเฆพเฆŸ: ยป ๐Ÿ“ mp4 mp3 jpg png gif ยป โœ… pdf docx txt zip โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿงšโ€โ™€๏ธ โ€ฟ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—–๐—›๐—”๐—ง๐—•๐—ข๐—ง`; return api.sendMessage( unsupportedMsg, event.threadID, event.messageID ); } const fileName = `download${ext}`; try { const loadingText = `ยป ๐Ÿ‘‘ ๐’๐ˆ๐˜๐€๐Œ-๐‡๐€๐’๐€๐ ๐Ÿ‘‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป โณ ๐——๐—ผ๐˜„๐—ป๐—น๐—ผ๐—ฎ๐—ฑ๐—ถ๐—ป๐—ด... ยป ๐Ÿš€ เฆ…เฆจเงเฆ—เงเฆฐเฆน เฆ•เฆฐเง‡ เฆ•เฆฟเฆ›เงเฆ•เงเฆทเฆฃ ยป ๐Ÿ‘‘ เฆ…เฆชเง‡เฆ•เงเฆทเฆพ เฆ•เฆฐเงเฆจ... โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿงšโ€โ™€๏ธ โ€ฟ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—–๐—›๐—”๐—ง๐—•๐—ข๐—ง`; const loadingMsg = await api.sendMessage( loadingText, event.threadID ); const res = await axios.get(url, { responseType: "arraybuffer", timeout: 30000 }); fs.writeFileSync(fileName, res.data); api.unsendMessage(loadingMsg.messageID); const successMsg = `ยป ๐Ÿ‘‘ ๐’๐ˆ๐˜๐€๐Œ-๐‡๐€๐’๐€๐ ๐Ÿ‘‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐ŸŽ‰ ๐——๐—ผ๐˜„๐—ป๐—น๐—ผ๐—ฎ๐—ฑ ๐—–๐—ผ๐—บ๐—ฝ๐—น๐—ฒ๐˜๐—ฒ! ยป ๐Ÿ“ เฆซเฆพเฆ‡เฆฒ: ${fileName} โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿงšโ€โ™€๏ธ โ€ฟ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—–๐—›๐—”๐—ง๐—•๐—ข๐—ง`; return api.sendMessage( { body: successMsg, attachment: fs.createReadStream(fileName) }, event.threadID, () => fs.unlinkSync(fileName) ); } catch (err) { console.error(err); const errorMsg = `ยป ๐Ÿ‘‘ ๐’๐ˆ๐˜๐€๐Œ-๐‡๐€๐’๐€๐ ๐Ÿ‘‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป โŒ เฆกเฆพเฆ‰เฆจเฆฒเง‹เฆก เฆฌเงเฆฏเฆฐเงเฆฅ เฆนเงŸเง‡เฆ›เง‡! ยป ๐Ÿ’ฅ เฆฒเฆฟเฆ‚เฆ•เฆŸเฆฟ เฆญเงเฆฒ เฆฌเฆพ ๐——๐—ถ๐—ฟ๐—ฒ๐—ฐ๐˜ ยป ๐Ÿ“‰ ๐—Ÿ๐—ถ๐—ป๐—ธ เฆจเฆพเฆ“ เฆนเฆคเง‡ เฆชเฆพเฆฐเง‡เฅค โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿงšโ€โ™€๏ธ โ€ฟ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—–๐—›๐—”๐—ง๐—•๐—ข๐—ง`; return api.sendMessage( errorMsg, event.threadID ); } } };