├── plugins ├── up_down.js ├── updown.js ├── sql │ ├── lydia.js │ ├── plugin.js │ ├── notes.js │ ├── greetings.js │ └── filters.js ├── delete.js ├── clear.js ├── anim.js ├── alive.js ├── apks.js ├── location.js ├── cpk.js ├── wame.js ├── quote.js ├── tta.js ├── random.js ├── emojitopng.js ├── scan.js ├── tagadmin.js ├── greetings.js ├── joke.js ├── tagall.js ├── neko.js ├── happymod.js ├── antispam.js ├── notes.js ├── updater.js ├── removebg.js ├── weather.js ├── filters.js ├── ocr.js ├── _plugin.js ├── evaluators.js ├── carbon.js ├── ipstatus.js ├── unvoice.js ├── grp.js ├── voicy.js ├── screenshot.js ├── npk.js ├── log.js ├── afk.js ├── movie.js ├── stickers.js ├── profile.js ├── anime.js ├── someonesay.js ├── web.js └── social-scraper.js ├── _config.yml ├── media ├── gif │ ├── info.md │ ├── giphy.mp4 │ ├── giphy_2.mp4 │ ├── VID-20210616-WA0310.mp4 │ └── VID-20210616-WA1216.mp4 └── logo │ ├── epl.png │ ├── free.png │ └── stickerl.png ├── .gitattributes ├── heroku.yml ├── Xproject ├── Dockerfile ├── index.js ├── Base.js ├── StringSession.js ├── Image.js ├── Video.js ├── Message.js └── ReplyMessage.js ├── helpers.js ├── language.js ├── README.md ├── events.js ├── qr.js ├── .gitignore ├── package.json ├── downloader.js ├── config.js └── app.json /plugins/up_down.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/updown.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/sql/lydia.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-modernist -------------------------------------------------------------------------------- /media/gif/info.md: -------------------------------------------------------------------------------- 1 | Takes gif data for plugins. 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /media/logo/epl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lasiyaWA/X-Troid/HEAD/media/logo/epl.png -------------------------------------------------------------------------------- /media/gif/giphy.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lasiyaWA/X-Troid/HEAD/media/gif/giphy.mp4 -------------------------------------------------------------------------------- /media/logo/free.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lasiyaWA/X-Troid/HEAD/media/logo/free.png -------------------------------------------------------------------------------- /media/gif/giphy_2.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lasiyaWA/X-Troid/HEAD/media/gif/giphy_2.mp4 -------------------------------------------------------------------------------- /media/logo/stickerl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lasiyaWA/X-Troid/HEAD/media/logo/stickerl.png -------------------------------------------------------------------------------- /heroku.yml: -------------------------------------------------------------------------------- 1 | build: 2 | docker: 3 | worker: /Xproject/Dockerfile 4 | run: 5 | worker: npm start 6 | -------------------------------------------------------------------------------- /media/gif/VID-20210616-WA0310.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lasiyaWA/X-Troid/HEAD/media/gif/VID-20210616-WA0310.mp4 -------------------------------------------------------------------------------- /media/gif/VID-20210616-WA1216.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lasiyaWA/X-Troid/HEAD/media/gif/VID-20210616-WA1216.mp4 -------------------------------------------------------------------------------- /Xproject/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM fusuf/whatsasena:latest 2 | 3 | RUN git clone https://github.com/lasiyaWA/X-Troid /root/X-Troid 4 | WORKDIR /root/X-Troid/ 5 | ENV TZ=Europe/Istanbul 6 | RUN npm install supervisor -g 7 | RUN yarn install --no-audit 8 | 9 | CMD ["node", "bot.js"] 10 | -------------------------------------------------------------------------------- /Xproject/index.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | module.exports = { 5 | Base: require('./Base'), 6 | Message: require('./Message'), 7 | StringSession: require('./StringSession'), 8 | ReplyMessage: require('./ReplyMessage'), 9 | Image: require('./Image'), 10 | Video: require('./Video') 11 | }; 12 | -------------------------------------------------------------------------------- /Xproject/Base.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | 'use strict'; 4 | 5 | class Base { 6 | constructor(client) { 7 | Object.defineProperty(this, 'client', { value: client }); 8 | } 9 | 10 | _clone() { 11 | return Object.assign(Object.create(this), this); 12 | } 13 | 14 | _patch(data) { return data; } 15 | } 16 | 17 | module.exports = Base; 18 | -------------------------------------------------------------------------------- /plugins/delete.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const DEL_DESC = "Deletes The Replied Message Send By The Bot [ ✅️ Official External Plugin ]" 4 | 5 | XTroid.addCMD({pattern: 'del', fromMe: false, desc: DEL_DESC}, (async (message, match) => { 6 | 7 | await message.reply_message.delete(); 8 | 9 | })); 10 | -------------------------------------------------------------------------------- /helpers.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | function successfullMessage(msg) { 4 | return "✅ *WhatsAsena*: ```" + msg + "```" 5 | } 6 | function errorMessage(msg) { 7 | return "🛑 *WhatsAsena*: ```" + msg + "```" 8 | } 9 | function infoMessage(msg) { 10 | return "⏺️ *WhatsAsena*: ```" + msg + "```" 11 | } 12 | 13 | 14 | module.exports = { 15 | successfullMessage, 16 | errorMessage, 17 | infoMessage 18 | } 19 | -------------------------------------------------------------------------------- /plugins/clear.js: -------------------------------------------------------------------------------- 1 | 2 | const {MessageType, GroupSettingChange, ChatModification, WAConnectionTest} = require('@adiwajshing/baileys'); 3 | const XTroid = require('../events'); 4 | const DEL = "Delet all messages from you" 5 | 6 | 7 | 8 | XTroid.addCMD({pattern: 'del', fromMe: true, desc: DEL}, (async (message, match) => { 9 | 10 | await message.sendMessage('```Deleting all...```'); 11 | await message.client.modifyChat (message.jid, ChatModification.delete); 12 | await message.sendMessage('```🗑All deleted....```'); 13 | })); 14 | -------------------------------------------------------------------------------- /plugins/anim.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const CPK = "\n⚛》》》》》◆《《《《《⚛\n*🍭𓂀 𝒜𝓃𝒾𝓂𝑒 𝐿𝒾𝓈𝓉 𓂀🍭*\n\n┃\n┝🫐 *.rloli\n┃\n┝🫐 *.rwifu*\n┃\n┝🫐 *.rwolf*\n┃\n┝🫐 *.rshin*\n┃\n┝🫐 *.rwtc*\n┃\n╚⏤⏤⏤⏤╗❀╔⏤⏤⏤⏤╝\n" 4 | const Config = require('../config') 5 | const Ln = "Cpack Logo" 6 | let FM = Config.WORKTYPE == 'public' ? false : true 7 | 8 | 9 | XTroid.addCMD({pattern: 'anime', fromMe: FM, deleteCommand: false, desc: Ln,}, (async (message, match) => {await message.client.sendMessage(message.jid,CPK, MessageType.text);})); 10 | -------------------------------------------------------------------------------- /plugins/alive.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const {MessageType, MessageOptions, Mimetype} = require('@adiwajshing/baileys'); 3 | const axios = require('axios'); 4 | const Config = require('../config'); 5 | let FM = Config.WORKTYPE == 'public' ? false : true 6 | 7 | XTroid.addCMD({pattern: 'alive', fromMe: FM, deleteCommand: true,}, (async (message, match) => { 8 | 9 | var lasi = await axios.get(`${Config.ALIVEIMG}`, { responseType: 'arraybuffer' }) 10 | await message.client.sendMessage(message.jid, Buffer.from(lasi.data), MessageType.image, {mimetype: Mimetype.png, caption: ' '+Config.ALIVETEXT+'\n ᴾᵒʷᵉʳᵈ ᵇʸ ˣ⁻ᵀʳᵒᶦᵈ'}) 11 | })); -------------------------------------------------------------------------------- /plugins/sql/plugin.js: -------------------------------------------------------------------------------- 1 | 2 | const config = require('../../config'); 3 | const { DataTypes } = require('sequelize'); 4 | 5 | const PluginDB = config.DATABASE.define('Plugin', { 6 | name: { 7 | type: DataTypes.STRING, 8 | allowNull: false 9 | }, 10 | url: { 11 | type: DataTypes.TEXT, 12 | allowNull: false 13 | } 14 | }); 15 | 16 | async function installPlugin(adres, file) { 17 | var Plugin = await PluginDB.findAll({ 18 | where: {url: adres} 19 | }); 20 | 21 | if (Plugin.length >= 1) { 22 | return false; 23 | } else { 24 | return await PluginDB.create({ url: adres, name: file }); 25 | } 26 | } 27 | module.exports = { PluginDB: PluginDB, installPlugin: installPlugin }; -------------------------------------------------------------------------------- /plugins/sql/notes.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const config = require('../../config'); 4 | const { DataTypes } = require('sequelize'); 5 | 6 | const NotesDB = config.DATABASE.define('notes', { 7 | note: { 8 | type: DataTypes.TEXT, 9 | allowNull: false 10 | } 11 | }); 12 | 13 | 14 | async function getNotes() { 15 | const Notes = await NotesDB.findAll() 16 | 17 | return Notes 18 | } 19 | 20 | async function saveNote(note) { 21 | return await NotesDB.create({ note }); 22 | } 23 | 24 | async function deleteAllNotes() { 25 | return await NotesDB.destroy({ 26 | where: {}, 27 | truncate: true 28 | }) 29 | } 30 | 31 | module.exports = { 32 | NotesDB, 33 | getNotes, 34 | saveNote, 35 | deleteAllNotes 36 | }; 37 | -------------------------------------------------------------------------------- /language.js: -------------------------------------------------------------------------------- 1 | const Config = require('./config'); 2 | const fs = require('fs'); 3 | const chalk = require('chalk'); 4 | 5 | if (fs.existsSync('./language/' + Config.LANG + '.json')) { 6 | console.log( 7 | chalk.green.bold('Loading ' + Config.LANG + ' language...') 8 | ); 9 | 10 | var json = JSON.parse(fs.readFileSync('./language/' + Config.LANG + '.json')); 11 | } else { 12 | console.log( 13 | chalk.red.bold('You entered an invalid language. English language was chosen.') 14 | ); 15 | 16 | var json = JSON.parse(fs.readFileSync('./language/EN.json')); 17 | } 18 | 19 | function getString(file) { 20 | return json['STRINGS'][file]; 21 | } 22 | 23 | module.exports = { 24 | language: json, 25 | getString: getString 26 | } 27 | -------------------------------------------------------------------------------- /Xproject/StringSession.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const fs = require('fs'); 4 | 5 | class StringSession { 6 | constructor() { 7 | } 8 | 9 | deCrypt(string = undefined) { 10 | if ('A_XTROID_SESSION' in process.env && string === undefined) { 11 | string = process.env.STRING_SESSION; 12 | } else if (string !== undefined) { 13 | if (fs.existsSync(string)) { 14 | string = fs.readFileSync(string, {encoding:'utf8', flag:'r'}); 15 | } 16 | } 17 | 18 | var split = string.split(';;;'); 19 | if (split.length >= 2) { 20 | return JSON.parse(Buffer.from(split[split.length - 1], 'base64').toString('utf-8')); 21 | } 22 | } 23 | 24 | createStringSession(dict) { 25 | return 'XTROID;;;' + Buffer.from(JSON.stringify(dict)).toString('base64'); 26 | } 27 | } 28 | 29 | module.exports = StringSession; 30 | -------------------------------------------------------------------------------- /plugins/apks.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const axios = require('axios'); 3 | const {MessageType, Mimetype, MessageOptions} = require('@adiwajshing/baileys'); 4 | const {spawnSync} = require('child_process'); 5 | const Config = require('../config'); 6 | const fs = require('fs'); 7 | 8 | 9 | if (Config.WORKTYPE == 'private') { 10 | 11 | XTroid.addCMD({pattern: 'apkmod', fromMe: true}, (async (message, match) => { 12 | await message.sendMessage('┏━━━━━━━━━━━━━━━━━━━\n┃〘 ☣️ *Mod App World* ☣️ 〙\n┗━━━━━━━━━━━━━━━━━━━\n'); 13 | await message.sendMessage('\n*t.me/danuma*\n'); 14 | })); 15 | 16 | } 17 | 18 | else if (Config.WORKTYPE == 'public') { 19 | 20 | XTroid.addCMD({pattern: 'apkmod', fromMe: false}, (async (message, match) => { 21 | await message.sendMessage('┏━━━━━━━━━━━━━━━━━━━\n┃〘 ☣️ *Mod App World* ☣️ 〙\n┗━━━━━━━━━━━━━━━━━━━\n'); 22 | await message.sendMessage('\n*t.me/danuma*\n'); 23 | })); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /plugins/location.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const XTroid = require('../events'); 7 | const {MessageType, GroupSettingChange} = require('@adiwajshing/baileys'); // Boredom 😬 8 | 9 | const Language = require('../language'); 10 | const Lang = Language.getString('locate'); // Language supp. 😉 11 | 12 | 13 | XTroid.addCMD({pattern: 'locate', fromMe: true, desc: Lang.L_DESC, warn: Lang.L_WARN}, (async (message, match) => { 14 | 15 | var r_text = new Array (); 16 | r_text[0] = "degreesLatitude: 24.121231, degreesLongitude: 55.1121221"; // Actually, I don't know where is this place.. 17 | r_text[1] = "degreesLatitude: 8.838637, degreesLongitude: -13.721434"; // U too homie 18 | 19 | var i = Math.floor(2*Math.random()) // Random func. 🤪 20 | 21 | await message.sendMessage(`My Location! ${r_text[i]}`, MessageType.location); // It sends ur location. Cool tho 😱 22 | 23 | })); 24 | -------------------------------------------------------------------------------- /plugins/cpk.js: -------------------------------------------------------------------------------- 1 | 2 | const XTroid = require('../events'); 3 | const {MessageType} = require('@adiwajshing/baileys'); 4 | const CPK = ` 5 | ─── ∙ 🍁↤THE CPACK↦🍁 ∙ ── 6 | ╔══════ ≪❈≫ ══════╗ 7 | ║╠═*.cup* 8 | ║🍄 _.cup your text_ 9 | ║╠═*.cmt* 10 | ║🍄 _.cmt your text_ 11 | ║╠═*.cfl* 12 | ║🍄 _.cfl your text_ 13 | ║╠═*.cmg* 14 | ║🍄 _.cmg your text_ 15 | ║╠═*.cgl* 16 | ║🍄 _.cgl your text_ 17 | ║╠═*.cstn* 18 | ║🍄 _.cstn your text_ 19 | ║╠═*.crod* 20 | ║🍄 _.crod your text_ 21 | ║╠═*.cgem* 22 | ║🍄 _.cgem your text_ 23 | ║╠═*.cbery* 24 | ║🍄 _.cbery your text_ 25 | ║╠═*.ctrn* 26 | ║🍄 _.ctrn your text_ 27 | ║ 28 | ║ *Cpack V2.0* 29 | ║➥ *.cdem* 30 | ║🌙 _.cdem your text_ 31 | ║➥ *.crob* 32 | ║🌙 _.crob your text_ 33 | ║➥ *.cpink* 34 | ║🌙 _.cpink your text_ 35 | ║➥ *.csl* 36 | ║🌙 _.csl your text_ 37 | ║➥ *.csand* 38 | ║🌙 _.csand your text_ 39 | ║➥ *.csun* 40 | ║🌙 _.csun your text_ 41 | ║➥ *.cgrass* 42 | ║🌙 _.cgrass your text_ 43 | ║➥ *.cchoco* 44 | ║🌙 _.cchoco your text_ 45 | ║ 46 | ╚⏤⏤⏤⏤╗❀╔⏤⏤⏤⏤╝` 47 | const Config = require('../config') 48 | const Ln = "Cpack Logo" 49 | let FM = Config.WORKTYPE == 'public' ? false : true 50 | 51 | 52 | XTroid.addCMD({pattern: 'cpk', fromMe: FM, deleteCommand: false, desc: Ln,}, (async (message, match) => {await message.client.sendMessage(message.jid,CPK, MessageType.text);})); 53 | -------------------------------------------------------------------------------- /plugins/wame.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const Config = require('../config'); 4 | const fs = require('fs'); 5 | 6 | const WAME_DESC = "Get a link to the user chat." 7 | const WAME = "```Chat link from```@{}: https://wa.me/{}" 8 | const NEED_UWONG = "*Give me a user!*" 9 | 10 | XTroid.addCMD({pattern: 'wame ?(.*)', fromMe: true, desc: WAME_DESC}, (async (message, match) => { 11 | if (message.reply_message !== false) { 12 | await message.client.sendMessage(message.jid, WAME.format(message.reply_message.jid.split('@')[0], message.reply_message.jid.replace('@s.whatsapp.net', ' ')), MessageType.text, { 13 | quotedMessage: message.reply_message.data, contextInfo: {mentionedJid: [message.reply_message.jid.replace('c.us', 's.whatsapp.net')]} 14 | }); 15 | } else if (message.mention !== false) { 16 | message.mention.map(async user => { 17 | await message.client.sendMessage(message.jid, WAME.format(user.split('@')[0], user.replace('@s.whatsapp.net', ' ')), MessageType.text, { 18 | contextInfo: {mentionedJid: [user.replace('c.us', 's.whatsapp.net')]} 19 | }); 20 | }); 21 | } else { 22 | await message.client.sendMessage(message.jid, NEED_UWONG, MessageType.text); 23 | } 24 | })); 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

THE X-Troid Public Bot

2 | 3 | ![logo](https://telegra.ph/file/569fd05fb4c587a360d38.jpg) 4 | 5 |

6 | Project of X-Troid - Makes it easy and fun to use Whatsapp. Also first Sinhala userbot for Whatsapp. 7 |
8 | Telegram Channel | 9 | Telegram Group | 10 | New Support Group | 11 | All Groups & channels | 12 |
13 |

14 | 15 | [![Run on Repl.it](https://repl.it/badge/github/phaticusthiccy/WhatsAsenaDuplicated)](https://replit.com/@lasindu123/XTROID) 16 | 17 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/lasiyaWA/X-Troid) 18 | 19 | 20 | `WhatsApp` name, its variations and the logo are registered trademarks of Facebook. We have nothing to do with the registered trademark 21 | ## Thanks To 22 | [![Yusuf Usta](https://github.com/yusufusta.png?size=50)](https://t.me/fusufs) | [![CW4RR10R](https://github.com/CW4RR10R.png?size=50)](https://github.com/CW4RR10R) 23 | ----|----| 24 | [Yusuf Usta](https://t.me/fusufs) | [CW4RR10R](https://t.meW4RR10R) 25 | Base, | hepls,idea 26 | # base bot 27 | https://github.com/yusufusta/WhatsAsena 28 | # Baileys whatsapp api 29 | https://github.com/adiwajshing/Baileys 30 | 31 | [![](https://telegra.ph/file/1c742619b421e4713e414.jpg?size=50)](https://t.me/danumabots) 32 | -------------------------------------------------------------------------------- /plugins/sql/greetings.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const config = require('../../config'); 4 | const { DataTypes } = require('sequelize'); 5 | 6 | const GreetingsDB = config.DATABASE.define('Greeting', { 7 | chat: { 8 | type: DataTypes.STRING, 9 | allowNull: false 10 | }, 11 | type: { 12 | type: DataTypes.STRING, 13 | allowNull: false 14 | }, 15 | message: { 16 | type: DataTypes.TEXT, 17 | allowNull: false 18 | } 19 | }); 20 | 21 | async function getMessage(jid = null, tip = 'welcome') { 22 | var Msg = await GreetingsDB.findAll({ 23 | where: { 24 | chat: jid, 25 | type: tip 26 | } 27 | }); 28 | 29 | if (Msg.length < 1) { 30 | return false; 31 | } else { 32 | return Msg[0].dataValues; 33 | } 34 | } 35 | 36 | async function setMessage(jid = null, tip = 'welcome', text = null) { 37 | var Msg = await GreetingsDB.findAll({ 38 | where: { 39 | chat: jid, 40 | type: tip 41 | } 42 | }); 43 | 44 | if (Msg.length < 1) { 45 | return await GreetingsDB.create({ chat: jid, type: tip, message:text }); 46 | } else { 47 | return await Msg[0].update({ chat: jid, type: tip, message:text }); 48 | } 49 | } 50 | 51 | async function deleteMessage(jid = null, tip = 'welcome') { 52 | var Msg = await GreetingsDB.findAll({ 53 | where: { 54 | chat: jid, 55 | type: tip 56 | } 57 | }); 58 | 59 | return await Msg[0].destroy(); 60 | } 61 | 62 | module.exports = { 63 | GreetingsDB: GreetingsDB, 64 | getMessage: getMessage, 65 | setMessage: setMessage, 66 | deleteMessage: deleteMessage 67 | }; -------------------------------------------------------------------------------- /plugins/quote.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const got = require('got'); 4 | 5 | // List 6 | const QUOTE_DESC = "It Sends Random Quote" 7 | const NEED_LOCATIONA = "*Invalid Request*" 8 | const QUOTE = "Quote :" 9 | const AUTHOR = "Author :" 10 | const NOT_FOUNDA = "```Sorry,I could not find a quote. 😖```" 11 | const Config = require('../config'); 12 | 13 | if (Config.WORKTYPE == 'private') { 14 | XTroid.addCMD({pattern: 'quote ?(.*)', fromMe: true, desc: QUOTE_DESC}, async (message, match) => { 15 | if (match[1] === 'xx') return await message.reply(NEED_LOCATIONA); 16 | const url = `https://api.quotable.io/random`; 17 | try { 18 | const response = await got(url); 19 | const lasijson = JSON.parse(response.body); 20 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📌 ' + QUOTE +'* ```' + lasijson.content + '```\n\n' + 21 | '*✒️' + AUTHOR +'* ```' + lasijson.author+ '```\n', MessageType.text); 22 | } catch { 23 | return await message.client.sendMessage(message.jid, NOT_FOUNDA, MessageType.text); 24 | } 25 | }); 26 | } 27 | 28 | 29 | else if (Config.WORKTYPE == 'public') { 30 | 31 | XTroid.addCMD({pattern: 'quote ?(.*)', fromMe: false, desc: QUOTE_DESC}, async (message, match) => { 32 | if (match[1] === 'xx') return await message.reply(NEED_LOCATIONA); 33 | const url = `https://api.quotable.io/random`; 34 | try { 35 | const response = await got(url); 36 | const lasijson = JSON.parse(response.body); 37 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📌 ' + QUOTE +'* ```' + lasijson.content + '```\n\n' + 38 | '*✒️' + AUTHOR +'* ```' + lasijson.author+ '```\n', MessageType.text); 39 | } catch { 40 | return await message.client.sendMessage(message.jid, NOT_FOUNDA, MessageType.text); 41 | } 42 | }); 43 | } 44 | -------------------------------------------------------------------------------- /events.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | // Komutları burada tutacağız. 4 | var config = require('./config'); 5 | var Commands = []; 6 | 7 | function addCMD(info, func) { 8 | // Basit bir fonksiyon, komut eklemek için. 9 | var types = ['photo', 'image', 'text', 'message']; 10 | 11 | var infos = { 12 | fromMe: info['fromMe'] === undefined ? true : info['fromMe'], // Or Sudo 13 | onlyGroup: info['onlyGroup'] === undefined ? false : info['onlyGroup'], 14 | onlyPinned: info['onlyPinned'] === undefined ? false : info['onlyPinned'], 15 | onlyPm: info['onlyPm'] === undefined ? false : info['onlyPm'], 16 | deleteCommand: info['deleteCommand'] === undefined ? true : info['deleteCommand'], 17 | desc: info['desc'] === undefined ? '' : info['desc'], 18 | usage: info['usage'] === undefined ? '' : info['usage'], 19 | dontAddCMDList: info['dontAddCMDList'] === undefined ? false : info['dontAddCMDList'], 20 | warn: info['warn'] === undefined ? '' : info['warn'], 21 | function: func 22 | }; 23 | 24 | if (info['on'] === undefined && info['pattern'] === undefined) { 25 | infos.on = 'message'; 26 | infos.fromMe = false; 27 | } else if (info['on'] !== undefined && types.includes(info['on'])) { 28 | infos.on = info['on']; 29 | 30 | if (info['pattern'] !== undefined) { 31 | infos.pattern = new RegExp((info['handler'] === undefined || info['handler'] === true ? config.HANDLERS : '') + info.pattern, (info['flags'] !== undefined ? info['flags'] : '')); 32 | } 33 | } else { 34 | infos.pattern = new RegExp((info['handler'] === undefined || info['handler'] === true ? config.HANDLERS : '') + info.pattern, (info['flags'] !== undefined ? info['flags'] : '')); 35 | } 36 | 37 | Commands.push(infos); 38 | return infos; 39 | } 40 | 41 | module.exports = { 42 | addCMD: addCMD, 43 | commands: Commands 44 | } 45 | -------------------------------------------------------------------------------- /plugins/tta.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 @farhan-dqz 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License 4 | */ 5 | 6 | const XTroid = require('../events'); 7 | const {MessageType,Mimetype} = require('@adiwajshing/baileys'); 8 | const fs = require('fs'); 9 | const ffmpeg = require('fluent-ffmpeg'); 10 | const {execFile} = require('child_process'); 11 | const cwebp = require('cwebp-bin'); 12 | const Config = require('../config'); 13 | 14 | // List 15 | const UA_DESC = "Converts sound recording to an audio File." 16 | const UA_NEEDREPLY = "*Must Reply to a sound recording*" 17 | const UA_PROC = "```Converting Sound recording To an Audio File```" 18 | 19 | XTroid.addCMD({pattern: 'unaudio', fromMe: true, desc: UA_DESC}, (async (message, match) => { 20 | 21 | if (message.jid === '905524317852-1612300121@g.us') { 22 | 23 | return; 24 | } 25 | 26 | if (message.reply_message === false) return await message.client.sendMessage(message.jid, UA_NEEDREPLY, MessageType.text); 27 | var downloading = await message.client.sendMessage(message.jid,UA_PROC,MessageType.text); 28 | var location = await message.client.downloadAndSaveMediaMessage({ 29 | key: { 30 | remoteJid: message.reply_message.jid, 31 | id: message.reply_message.id 32 | }, 33 | message: message.reply_message.data.quotedMessage 34 | }); 35 | 36 | ffmpeg(location) 37 | .withNoVideo() 38 | .save('output.mp3') 39 | .on('end', async () => { 40 | await message.client.sendMessage(message.jid, fs.readFileSync('output.mp3'), MessageType.audio, {mimetype: Mimetype.mp4Audio, ptt: false}); 41 | }); 42 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 43 | })); 44 | -------------------------------------------------------------------------------- /plugins/sql/filters.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const config = require('../../config'); 4 | const { DataTypes } = require('sequelize'); 5 | 6 | const FiltersDB = config.DATABASE.define('filter', { 7 | chat: { 8 | type: DataTypes.STRING, 9 | allowNull: false 10 | }, 11 | pattern: { 12 | type: DataTypes.TEXT, 13 | allowNull: false 14 | }, 15 | text: { 16 | type: DataTypes.TEXT, 17 | allowNull: false 18 | }, 19 | regex: { 20 | type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false 21 | } 22 | }); 23 | 24 | async function getFilter(jid = null, filter = null) { 25 | var Wher = {chat: jid}; 26 | if (filter !== null) Wher.push({pattern: filter}); 27 | var Msg = await FiltersDB.findAll({ 28 | where: Wher 29 | }); 30 | 31 | if (Msg.length < 1) { 32 | return false; 33 | } else { 34 | return Msg; 35 | } 36 | } 37 | 38 | 39 | async function setFilter(jid = null, filter = null, tex = null, regx = false) { 40 | var Msg = await FiltersDB.findAll({ 41 | where: { 42 | chat: jid, 43 | pattern: filter 44 | } 45 | }); 46 | 47 | if (Msg.length < 1) { 48 | return await FiltersDB.create({ chat: jid, pattern: filter, text: tex, regex: regx }); 49 | } else { 50 | return await Msg[0].update({ chat: jid, pattern: filter, text: tex, regex: regx }); 51 | } 52 | } 53 | 54 | async function deleteFilter(jid = null, filter) { 55 | var Msg = await FiltersDB.findAll({ 56 | where: { 57 | chat: jid, 58 | pattern: filter 59 | } 60 | }); 61 | if (Msg.length < 1) { 62 | return false; 63 | } else { 64 | return await Msg[0].destroy(); 65 | } 66 | } 67 | 68 | module.exports = { 69 | FiltersDB: FiltersDB, 70 | getFilter: getFilter, 71 | setFilter: setFilter, 72 | deleteFilter: deleteFilter 73 | }; -------------------------------------------------------------------------------- /plugins/random.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const { MessageType, MessageOptions, Mimetype } = require('@adiwajshing/baileys'); 3 | const fs = require('fs'); 4 | const axios = require('axios'); 5 | 6 | 7 | 8 | XTroid.addCMD({ pattern: 'random ?(.*)', fromMe: true, desc: 'word image' }, (async (message, match) => { 9 | 10 | var r_text = new Array (); 11 | 12 | r_text[0] = `https://api.xteam.xyz/textpro/neon?text=${match[1]}&APIKEY=ba33b82cd3755c3e` 13 | r_text[1] = `https://api.xteam.xyz/textpro/snowtext?text=${match[1]}&APIKEY=72404708ebbadaee` 14 | r_text[2] = `https://api.xteam.xyz/textpro/3dgradient?text=${match[1]}&APIKEY=fb3afa34fd0eddbf` 15 | r_text[3] = `https://api.xteam.xyz/textpro/3dluxury?text=${match[1]}&APIKEY=ba69027eb3dc7987` 16 | r_text[4] = `https://api.xteam.xyz/textpro/3dgradient?text=${match[1]}&APIKEY=00e0e1bf4c7dde0d` 17 | r_text[5] = `https://api.xteam.xyz/textpro/blackpink?text=${match[1]}&APIKEY=8a8ebc8d8b932805` 18 | r_text[6] = `https://api.xteam.xyz/textpro/realisticvintage?text=${match[1]}&APIKEY=98b033c6ef54b61a` 19 | r_text[7] = `https://api.xteam.xyz/textpro/cloudsky?text=${match[1]}&APIKEY=8a2b52654b55c3f6` 20 | r_text[8] = `https://api.xteam.xyz/textpro/sandsummerbeach?text=${match[1]}&APIKEY=79cf7ab4e6598752` 21 | r_text[9] = `https://api.xteam.xyz/textpro/glitch?text=${match[1]}&APIKEY=2d7fce02fc14400a` 22 | r_text[10] = `https://api.xteam.xyz/textpro/metaldarkgold?text=${match[1]}&APIKEY=981a4ef70f9f08c4` 23 | r_text[11] = `https://api.xteam.xyz/textpro/goldfoilballon?text=${match[1]}&APIKEY=2376fa7786a47519` 24 | 25 | var i = Math.floor(11*Math.random()) 26 | if (match[1] === '') return await message.sendMessage('NEED_WORD'); 27 | console.log(match[1]) 28 | 29 | var lasiyasimg = await axios.get(`${r_text[i]}`, { responseType: 'arraybuffer' }) 30 | 31 | await message.client.sendMessage(message.jid,Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: '```PublicBot```' }) 32 | 33 | })); 34 | -------------------------------------------------------------------------------- /qr.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2021 lasiya 2 | */ 3 | 4 | const chalk = require('chalk'); 5 | const {WAConnection, MessageOptions, MessageType} = require('@adiwajshing/baileys'); 6 | const {StringSession} = require('./Xproject/'); 7 | const fs = require('fs'); 8 | 9 | async function LasiXtroid () { 10 | const conn = new WAConnection(); 11 | const Session = new StringSession(); 12 | conn.version = [2,2121,8]; 13 | conn.logger.level = 'warn'; 14 | conn.regenerateQRIntervalMs = 50000; 15 | 16 | conn.on('connecting', async () => { 17 | console.log(`${chalk.green.bold('Whats')}${chalk.blue.bold('Asena')} 18 | ${chalk.white.italic('AsenaString Kodu Alıcı')} 19 | 20 | ${chalk.blue.italic('ℹ️ Connecting to Whatsapp... Please Wait.')}`); 21 | }); 22 | 23 | 24 | conn.on('open', async () => { 25 | var st = Session.createStringSession(conn.base64EncodedAuthInfo()); 26 | console.log( 27 | chalk.green.bold('Asena String Kodunuz: '), Session.createStringSession(conn.base64EncodedAuthInfo()) 28 | ); 29 | 30 | if (!fs.existsSync('config.env')) { 31 | fs.writeFileSync('config.env', `A_XTROID_SESSION="${st}"`); 32 | } 33 | if (conn.user.jid.startsWith('90')) { 34 | await conn.sendMessage(conn.user.jid,st, MessageType.text) 35 | await conn.sendMessage(conn.user.jid,'*Bu Kodu Kimseyle Paylaşmayın!*', MessageType.text) 36 | console.log( 37 | chalk.blue.bold('Locale kuruyorsanız node bot.js ile botu başlatabilirsiniz.') 38 | ); 39 | } 40 | else { 41 | await conn.sendMessage(conn.user.jid,st, MessageType.text) 42 | await conn.sendMessage(conn.user.jid,'*Do Not Share This Code With Anyone!*', MessageType.text) 43 | console.log( 44 | chalk.blue.bold('If you are installing locale, you can start the bot with node bot.js') 45 | ); 46 | } 47 | 48 | process.exit(0); 49 | }); 50 | 51 | await conn.connect(); 52 | } 53 | 54 | LasiXtroid() 55 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | session.asena 106 | *.db 107 | package-lock.json 108 | .DS_Store 109 | config.env 110 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "xtroid", 3 | "version": "1.3.2", 4 | "description": " project - a Whatsapp userbot helping to improve your Whatsapp experience.", 5 | "main": "./lizy/bot.js", 6 | "scripts": { 7 | "start": "supervisor -s bot.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/EXLOONS/xtroid.git" 12 | }, 13 | "keywords": [ 14 | "whatsapp bot", 15 | "bot", 16 | "ai", 17 | "danuma", 18 | "xtroid" 19 | ], 20 | "author": "XtroidDev / Yusuf Usta", 21 | "developer": "XtroidDev / @lasi", 22 | "license": "GPL-3.0-or-later", 23 | "bugs": { 24 | "url": "https://github.com/EXLOONS/xtroid" 25 | }, 26 | "homepage": "https://lasiya.ml", 27 | "dependencies": { 28 | "xtroid": "^1.4.0", 29 | "@adiwajshing/baileys": "3.4.1", 30 | "@lh2020/speedtest-net": "^2.1.1", 31 | "textmaker-lasi": "^1.2.1", 32 | "textmaker-lsi": "^1.8.8", 33 | "browser-id3-writer": "^4.4.0", 34 | "playstore-scraper": "^1.0.0", 35 | "axios": "^0.21.4", 36 | "googlethis": "^1.0.7", 37 | "audiobuffer-to-wav": "1.0.0", 38 | "chalk": "^4.1.0", 39 | "xtroid-npm": "^1.1.0", 40 | "coffeehouse": "^2.0.0", 41 | "cwebp": "^2.0.5", 42 | "search-engine-client": "^1.2.6", 43 | "deepai": "^1.0.17", 44 | "cwebp-bin": "^6.1.1", 45 | "tinyurl": "^1.1.7", 46 | "dotenv": "^8.2.0", 47 | "tiktok-scraper": "1.4.20", 48 | "request": "2.88.2", 49 | "exchange-rates-api": "^1.0.2", 50 | "fluent-ffmpeg": "^2.1.2", 51 | "form-data": "^4.0.0", 52 | "g-i-s": "^2.1.6", 53 | "google-translate-tts": "^0.3.0", 54 | "got": "^11.8.2", 55 | "heroku-client": "^3.1.0", 56 | "jimp": "0.16.0", 57 | "js-ffmpeg": "0.0.26", 58 | "jsdom": "^16.5.1", 59 | "langs": "^2.0.0", 60 | "languagedetect": "^2.0.0", 61 | "meme-maker": "^2.1.2", 62 | "mongodb": "^3.6.3", 63 | "node-fetch": "^2.6.1", 64 | "node-tesseract-ocr": "^2.0.0", 65 | "pg": "^8.5.1", 66 | "sequelize": "^6.6.5", 67 | "simple-git": "^2.45.1", 68 | "sozlukjs": "^2.0.0", 69 | "spotify-web-api-node": "^5.0.0", 70 | "sqlite3": "5.0.2", 71 | "solenolyrics": "^5.0.0", 72 | "translatte": "^3.0.0", 73 | "wikijs": "^6.0.1", 74 | "yt-search": "^2.9.0", 75 | "ytdl-core": "^4.9.1" 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /plugins/emojitopng.js: -------------------------------------------------------------------------------- 1 | /* # Exclusively from danuma project 2 | # Do not use this fore any commercial thing 3 | # If you abuse thais bot we wil kick you from bot 4 | # Do not edit (Respect to the Devaoloper) 5 | # All rights reserved ©Lasiya @lasiya99X t.me/lasiya99X 6 | # Get more about devaoloper https://lasiya.ml 7 | */ 8 | 9 | const XTroid = require('../events'); 10 | const {MessageType, MessageOptions, Mimetype} = require('@adiwajshing/baileys'); 11 | const fs = require('fs'); 12 | const axios = require('axios'); 13 | const request = require('request'); 14 | const got = require("got"); 15 | const Config = require('../config'); 16 | const des = "You Can Png From Any Emoji" 17 | const iii = "Only work with emoji\n ඉමොජි පමණක් එවන්න" 18 | 19 | if (Config.WORKTYPE == 'private') { 20 | 21 | XTroid.addCMD({pattern: 'png ?(.*)', fromMe: true, desc: des}, (async (message, match) => { 22 | 23 | if (match[1] === '') return await message.sendMessage(iii); 24 | 25 | var webimage = await axios.get(`https://docs-jojo.herokuapp.com/api/emoji2png?emoji=${encodeURIComponent(match[1])}&type=apple`, { responseType: 'arraybuffer' }) 26 | 27 | await message.sendMessage(Buffer.from(webimage.data), MessageType.image, {mimetype: Mimetype.png, caption: Config.CAPTION_KEY}) 28 | 29 | })); 30 | } 31 | else if (Config.WORKTYPE == 'public') { 32 | 33 | XTroid.addCMD({pattern: 'png ?(.*)', fromMe: false, desc: des}, (async (message, match) => { 34 | 35 | if (match[1] === '') return await message.sendMessage(iii); 36 | 37 | var webimage = await axios.get(`https://docs-jojo.herokuapp.com/api/emoji2png?emoji=${encodeURIComponent(match[1])}&type=apple`, { responseType: 'arraybuffer' }) 38 | 39 | await message.sendMessage(Buffer.from(webimage.data), MessageType.image, {mimetype: Mimetype.png, caption: Config.CAPTION_KEY}) 40 | 41 | })); 42 | 43 | 44 | XTroid.addCMD({pattern: 'png ?(.*)', fromMe: true,dontAddCMDList: true}, (async (message, match) => { 45 | 46 | if (match[1] === '') return await message.sendMessage(iii); 47 | 48 | var webimage = await axios.get(`https://docs-jojo.herokuapp.com/api/emoji2png?emoji=${encodeURIComponent(match[1])}&type=apple`, { responseType: 'arraybuffer' }) 49 | 50 | await message.sendMessage(Buffer.from(webimage.data), MessageType.image, {mimetype: Mimetype.png, caption: Config.CAPTION_KEY}) 51 | 52 | })); 53 | } 54 | -------------------------------------------------------------------------------- /plugins/scan.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const XTroid = require('../events'); 7 | const {MessageType} = require('@adiwajshing/baileys'); 8 | const Config = require('../config'); 9 | 10 | const Language = require('../language'); 11 | const Lang = Language.getString('tagall'); 12 | 13 | if (Config.WORKTYPE == 'private') { 14 | XTroid.addCMD({ pattern: 'scan ?(.*)', fromMe: true, desc: Lang.SCAN}, (async (message, match) => { 15 | 16 | if (match[1] == '') return await message.client.sendMessage(message.jid, Lang.NO, MessageType.text); 17 | 18 | var exists = await message.client.isOnWhatsApp(match[1]) 19 | if (exists) { 20 | await message.client.sendMessage(message.jid, '```' + match[1] + '``` \n' + Lang.SUC + '\n' + exists.jid, MessageType.text); 21 | } 22 | else { 23 | await message.client.sendMessage(message.jid,'```' + match[1] + '``` \n' + Lang.UNSUC, MessageType.text); 24 | } 25 | })); 26 | } 27 | else if (Config.WORKTYPE == 'public') { 28 | XTroid.addCMD({ pattern: 'scan ?(.*)', fromMe: false, desc: Lang.SCAN}, (async (message, match) => { 29 | 30 | if (match[1] == '') return await message.client.sendMessage(message.jid, Lang.NO, MessageType.text); 31 | 32 | var exists = await message.client.isOnWhatsApp(match[1]) 33 | if (exists) { 34 | await message.client.sendMessage(message.jid, '```' + match[1] + '``` \n' + Lang.SUC + '\n' + exists.jid, MessageType.text); 35 | } 36 | else { 37 | await message.client.sendMessage(message.jid,'```' + match[1] + '``` \n' + Lang.UNSUC, MessageType.text); 38 | } 39 | })); 40 | XTroid.addCMD({ pattern: 'scan ?(.*)', fromMe: true, dontAddCMDList: true, desc: Lang.SCAN}, (async (message, match) => { 41 | 42 | if (match[1] == '') return await message.client.sendMessage(message.jid, Lang.NO, MessageType.text); 43 | 44 | var exists = await message.client.isOnWhatsApp(match[1]) 45 | if (exists) { 46 | await message.client.sendMessage(message.jid, '```' + match[1] + '``` \n' + Lang.SUC + '\n' + exists.jid, MessageType.text); 47 | } 48 | else { 49 | await message.client.sendMessage(message.jid,'```' + match[1] + '``` \n' + Lang.UNSUC, MessageType.text); 50 | } 51 | })); 52 | } 53 | -------------------------------------------------------------------------------- /plugins/tagadmin.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const XTroid = require('../events'); 7 | const {MessageType} = require('@adiwajshing/baileys'); 8 | const Config = require('../config'); 9 | 10 | const Language = require('../language'); 11 | const Lang = Language.getString('tagall'); 12 | 13 | if (Config.WORKTYPE == 'private') { 14 | XTroid.addCMD({pattern: 'tagadmin', fromMe: true, desc: 'Tag admins in group'}, (async (message, match) => { 15 | let grup = await message.client.groupMetadata(message.jid); 16 | var jids = []; 17 | mesaj = ''; 18 | grup['participants'].map(async (uye) => { 19 | if (uye.isAdmin) { 20 | mesaj += '⚕️@' + uye.id.split('@')[0] + '\n'; 21 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 22 | } 23 | }); 24 | await message.client.sendMessage(message.jid,mesaj, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 25 | })); 26 | } 27 | else if (Config.WORKTYPE == 'public') { 28 | XTroid.addCMD({pattern: 'tagadmin', fromMe: false, desc: 'Tag admins in group'}, (async (message, match) => { 29 | let grup = await message.client.groupMetadata(message.jid); 30 | var jids = []; 31 | mesaj = ''; 32 | grup['participants'].map(async (uye) => { 33 | if (uye.isAdmin) { 34 | mesaj += '⚕️@' + uye.id.split('@')[0] + '\n'; 35 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 36 | } 37 | }); 38 | await message.client.sendMessage(message.jid,mesaj, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 39 | })); 40 | XTroid.addCMD({pattern: 'tagadmin', fromMe: true, desc: 'Tag admins in group', dontAddCMDList: true}, (async (message, match) => { 41 | let grup = await message.client.groupMetadata(message.jid); 42 | var jids = []; 43 | mesaj = ''; 44 | grup['participants'].map(async (uye) => { 45 | if (uye.isAdmin) { 46 | mesaj += '⚕️@' + uye.id.split('@')[0] + '\n'; 47 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 48 | } 49 | }); 50 | await message.client.sendMessage(message.jid,mesaj, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 51 | })); 52 | } 53 | -------------------------------------------------------------------------------- /plugins/greetings.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const XTroid = require('../events'); 4 | const {MessageType} = require('@adiwajshing/baileys'); 5 | const sql = require('./sql/greetings'); 6 | 7 | const Language = require('../language'); 8 | const Lang = Language.getString('greetings'); 9 | 10 | XTroid.addCMD({pattern: 'welcome$', fromMe: true, desc: Lang.WELCOME_DESC}, (async (message, match) => { 11 | var hg = await sql.getMessage(message.jid); 12 | if (hg === false) { 13 | await message.client.sendMessage(message.jid,Lang.NOT_SET_WELCOME,MessageType.text); 14 | } else { 15 | await message.client.sendMessage(message.jid,Lang.WELCOME_ALREADY_SETTED + hg.message + '```',MessageType.text); 16 | } 17 | })); 18 | 19 | XTroid.addCMD({pattern: 'welcome (.*)', fromMe: true, dontAddCMDList: true}, (async (message, match) => { 20 | if (match[1] === '') { 21 | return await message.client.sendMessage(message.jid,Lang.NEED_WELCOME_TEXT); 22 | } else { 23 | if (match[1] === 'delete') { await message.client.sendMessage(message.jid,Lang.WELCOME_DELETED,MessageType.text); return await sql.deleteMessage(message.jid, 'welcome'); } 24 | await sql.setMessage(message.jid, 'welcome', match[1].replace(/#/g, '\n')); 25 | return await message.client.sendMessage(message.jid,Lang.WELCOME_SETTED,MessageType.text) 26 | } 27 | })); 28 | 29 | XTroid.addCMD({pattern: 'goodbye$', fromMe: true, desc: Lang.GOODBYE_DESC}, (async (message, match) => { 30 | var hg = await sql.getMessage(message.jid, 'goodbye'); 31 | if (hg === false) { 32 | await message.client.sendMessage(message.jid,Lang.NOT_SET_GOODBYE,MessageType.text) 33 | } else { 34 | await message.client.sendMessage(message.jid,Lang.GOODBYE_ALREADY_SETTED + hg.message + '```',MessageType.text); 35 | } 36 | })); 37 | 38 | XTroid.addCMD({pattern: 'goodbye (.*)', fromMe: true, dontAddCMDList: true}, (async (message, match) => { 39 | if (match[1] === '') { 40 | return await message.client.sendMessage(message.jid,Lang.NEED_GOODBYE_TEXT,MessageType.text); 41 | } else { 42 | if (match[1] === 'delete') { await message.client.sendMessage(message.jid,Lang.GOODBYE_DELETED,MessageType.text); return await sql.deleteMessage(message.jid, 'goodbye'); } 43 | await sql.setMessage(message.jid, 'goodbye', match[1].replace(/#/g, '\n')); 44 | return await message.client.sendMessage(message.jid,Lang.GOODBYE_SETTED,MessageType.text) 45 | } 46 | })); 47 | -------------------------------------------------------------------------------- /Xproject/Image.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 4 | const Base = require('./Base'); 5 | const Message = require('./Message'); 6 | const ReplyMessage = require('./ReplyMessage'); 7 | 8 | class Image extends Base { 9 | constructor(client, data) { 10 | super(client); 11 | if (data) this._patch(data); 12 | } 13 | 14 | _patch(data) { 15 | this.id = data.key.id === undefined ? undefined : data.key.id; 16 | this.jid = data.key.remoteJid; 17 | this.fromMe = data.key.fromMe; 18 | this.caption = data.message.imageMessage.caption === null ? data.message.imageMessage.caption : ''; 19 | this.url = data.message.imageMessage.url; 20 | this.timestamp = typeof(data.messageTimestamp) === 'object' ? data.messageTimestamp.low : data.messageTimestamp; 21 | this.mimetype = data.message.imageMessage.mimetype; 22 | this.height = data.message.imageMessage.height; 23 | this.width = data.message.imageMessage.width; 24 | this.mediaKey = data.message.imageMessage.mediaKey; 25 | this.data = data; 26 | 27 | if (data.message.imageMessage.hasOwnProperty('contextInfo') && data.message.contextInfo.quotedMessage) { 28 | this.reply_message = new ReplyMessage(this.client, data.message.imageMessage.contextInfo); } 29 | else { 30 | this.reply_message = false; 31 | } 32 | 33 | return super._patch(data); 34 | } 35 | 36 | async delete() { 37 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}) 38 | } 39 | 40 | async reply(text) { 41 | var message = await this.client.sendMessage(this.jid, text, MessageType.text, {quoted: this.data}) 42 | return new Message(this.client, message) 43 | } 44 | 45 | async sendMessage(content, type, options) { 46 | return await this.client.sendMessage(this.jid, content, type, options) 47 | } 48 | 49 | async sendTyping() { 50 | return await this.client.updatePresence(this.jid, Presence.composing) ; 51 | } 52 | 53 | async sendRead() { 54 | return await this.client.chatRead(this.jid); 55 | } 56 | 57 | async download(location = this.id) { 58 | await this.client.downloadAndSaveMediaMessage(this.data, location); 59 | return this.id + '.' + this.mimetype.split('/')[1]; 60 | } 61 | }; 62 | 63 | module.exports = Image; -------------------------------------------------------------------------------- /Xproject/Video.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 4 | const Base = require('./Base'); 5 | const Message = require('./Message'); 6 | const ReplyMessage = require('./ReplyMessage'); 7 | 8 | class Video extends Base { 9 | constructor(client, data) { 10 | super(client); 11 | if (data) this._patch(data); 12 | } 13 | 14 | _patch(data) { 15 | this.id = data.key.id === undefined ? undefined : data.key.id; 16 | this.jid = data.key.remoteJid; 17 | this.fromMe = data.key.fromMe; 18 | this.caption = data.message.videoMessage.caption === null ? data.message.videoMessage.caption : ''; 19 | this.url = data.message.videoMessage.url; 20 | this.timestamp = typeof(data.messageTimestamp) === 'object' ? data.messageTimestamp.low : data.messageTimestamp; 21 | this.mimetype = data.message.videoMessage.mimetype; 22 | this.height = data.message.videoMessage.height; 23 | this.width = data.message.videoMessage.width; 24 | this.mediaKey = data.message.videoMessage.mediaKey; 25 | this.data = data; 26 | 27 | if (data.message.videoMessage.hasOwnProperty('contextInfo') && data.message.contextInfo.quotedMessage) { 28 | this.reply_message = new ReplyMessage(this.client, data.message.videoMessage.contextInfo); } 29 | else { 30 | this.reply_message = false; 31 | } 32 | 33 | return super._patch(data); 34 | } 35 | 36 | async delete() { 37 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}) 38 | } 39 | 40 | async reply(text) { 41 | var message = await this.client.sendMessage(this.jid, text, MessageType.text, {quoted: this.data}) 42 | return new Message(this.client, message) 43 | } 44 | 45 | async sendMessage(content, type, options) { 46 | return await this.client.sendMessage(this.jid, content, type, options) 47 | } 48 | 49 | async sendTyping() { 50 | return await this.client.updatePresence(this.jid, Presence.composing) ; 51 | } 52 | 53 | async sendRead() { 54 | return await this.client.chatRead(this.jid); 55 | } 56 | 57 | async download(location = this.id) { 58 | await this.client.downloadAndSaveMediaMessage(this.data, location); 59 | return this.id + '.' + this.mimetype.split('/')[1]; 60 | } 61 | }; 62 | 63 | module.exports = Video; -------------------------------------------------------------------------------- /plugins/joke.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const got = require('got'); 4 | const Config = require('../config'); 5 | const Language = require('../language'); 6 | const Lang = Language.getString('weather'); 7 | 8 | 9 | 10 | 11 | 12 | 13 | if (Config.WORKTYPE == 'private') { 14 | 15 | XTroid.addCMD({pattern: 'joke ?(.*)', fromMe: true, desc: Lang.JOKE_DESC}, async (message, match) => { 16 | if (match[1] === 'xx') return await message.reply(Lang.NEED_LOCATIONA); 17 | const url = `https://official-joke-api.appspot.com/random_joke`; 18 | try { 19 | const response = await got(url); 20 | const lasijson = JSON.parse(response.body); 21 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*🗣️ ' + Lang.JOKE +'* ```' + lasijson.setup + '```\n\n' + 22 | '*😆' + Lang.PUNCHLINE +'* ```' + lasijson.punchline+ '```\n', MessageType.text); 23 | } catch { 24 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDAC, MessageType.text); 25 | } 26 | }); 27 | } 28 | 29 | else if (Config.WORKTYPE == 'public') { 30 | 31 | XTroid.addCMD({pattern: 'joke ?(.*)', fromMe: false, desc: Lang.JOKE_DESC}, async (message, match) => { 32 | if (match[1] === 'xx') return await message.reply(Lang.NEED_LOCATIONA); 33 | const url = `https://official-joke-api.appspot.com/random_joke`; 34 | try { 35 | const response = await got(url); 36 | const lasijson = JSON.parse(response.body); 37 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*🗣️ ' + Lang.JOKE +'* ```' + lasijson.setup + '```\n\n' + 38 | '*😆' + Lang.PUNCHLINE +'* ```' + lasijson.punchline+ '```\n', MessageType.text); 39 | } catch { 40 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDAC, MessageType.text); 41 | } 42 | }); 43 | 44 | XTroid.addCMD({pattern: 'joke ?(.*)', fromMe: true, dontAddCMDList: true }, async (message, match) => { 45 | if (match[1] === 'xx') return await message.reply(Lang.NEED_LOCATIONA); 46 | const url = `https://official-joke-api.appspot.com/random_joke`; 47 | try { 48 | const response = await got(url); 49 | const lasijson = JSON.parse(response.body); 50 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*🗣️ ' + Lang.JOKE +'* ```' + lasijson.setup + '```\n\n' + 51 | '*😆' + Lang.PUNCHLINE +'* ```' + lasijson.punchline+ '```\n', MessageType.text); 52 | } catch { 53 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDAC, MessageType.text); 54 | } 55 | }); 56 | } 57 | -------------------------------------------------------------------------------- /Xproject/Message.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 4 | const Base = require('./Base'); 5 | const ReplyMessage = require('./ReplyMessage'); 6 | 7 | class Message extends Base { 8 | constructor(client, data) { 9 | super(client); 10 | if (data) this._patch(data); 11 | } 12 | 13 | _patch(data) { 14 | this.id = data.key.id === undefined ? undefined : data.key.id; 15 | this.jid = data.key.remoteJid; 16 | this.fromMe = data.key.fromMe; 17 | this.message = data.message.extendedTextMessage === null ? data.message.conversation : data.message.extendedTextMessage.text; 18 | this.unreadCount = data.unreadCount; 19 | this.timestamp = typeof(data.messageTimestamp) === 'object' ? data.messageTimestamp.low : data.messageTimestamp; 20 | this.data = data; 21 | 22 | if (data.message.hasOwnProperty('extendedTextMessage') && 23 | data.message.extendedTextMessage.hasOwnProperty('contextInfo') === true && 24 | data.message.extendedTextMessage.contextInfo.hasOwnProperty('quotedMessage')) { 25 | this.reply_message = new ReplyMessage(this.client, data.message.extendedTextMessage.contextInfo); } else { 26 | this.reply_message = false; 27 | } 28 | 29 | if (data.message.hasOwnProperty('extendedTextMessage') && 30 | data.message.extendedTextMessage.hasOwnProperty('contextInfo') === true && 31 | data.message.extendedTextMessage.contextInfo.hasOwnProperty('mentionedJid')) { 32 | this.mention = data.message.extendedTextMessage.contextInfo.mentionedJid; 33 | } else { 34 | this.mention = false; 35 | } 36 | 37 | return super._patch(data); 38 | } 39 | 40 | async delete() { 41 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}) 42 | } 43 | 44 | async reply(text) { 45 | var message = await this.client.sendMessage(this.jid, text, MessageType.text); 46 | return new Message(this.client, message) 47 | } 48 | 49 | async sendMessage(content, type = MessageType.text, options) { 50 | return await this.client.sendMessage(this.jid, content, type, options) 51 | } 52 | 53 | async sendTyping() { 54 | return await this.client.updatePresence(this.jid, Presence.composing) ; 55 | } 56 | 57 | async sendRead() { 58 | return await this.client.chatRead(this.jid); 59 | } 60 | }; 61 | 62 | module.exports = Message; -------------------------------------------------------------------------------- /plugins/tagall.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const XTroid = require('../events'); 4 | const {MessageType} = require('@adiwajshing/baileys'); 5 | const Config = require('../config'); 6 | 7 | const Language = require('../language'); 8 | const Lang = Language.getString('tagall'); 9 | 10 | async function checkImAdmin(message, user = message.client.user.jid) { 11 | var grup = await message.client.groupMetadata(message.jid); 12 | var sonuc = grup['participants'].map((member) => { 13 | if (member.jid.split('@')[0] === user.split('@')[0] && member.isAdmin) return true; else; return false; 14 | }); 15 | return sonuc.includes(true); 16 | } 17 | 18 | XTroid.addCMD({pattern: 'tagall ?(.*)', fromMe: true, desc: Lang.TAGALL_DESC }, (async (message, match) => { 19 | 20 | var im = await checkImAdmin(message); 21 | if (!im) return await message.client.sendMessage(message.jid,Lang.ADMİN,MessageType.text); 22 | 23 | if (match[1] !== '') { 24 | grup = await message.client.groupMetadata(message.jid); 25 | var jids = []; 26 | mesaj = ''; 27 | grup['participants'].map( 28 | async (uye) => { 29 | mesaj += '🔮@' + uye.id.split('@')[0] + '\n'; 30 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 31 | } 32 | ); 33 | await message.client.sendMessage(message.jid,`${match[1]}`, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 34 | } 35 | else if (match[1] == '') { 36 | grup = await message.client.groupMetadata(message.jid); 37 | var jids = []; 38 | mesaj = ''; 39 | grup['participants'].map( 40 | async (uye) => { 41 | mesaj += '🔮@' + uye.id.split('@')[0] + '\n'; 42 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 43 | } 44 | ); 45 | await message.client.sendMessage(message.jid,mesaj, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 46 | } 47 | else if (message.reply_message && match[1] == '') { 48 | grup = await message.client.groupMetadata(message.jid); 49 | var jids = []; 50 | mesaj = ''; 51 | grup['participants'].map( 52 | async (uye) => { 53 | mesaj += '🔮@' + uye.id.split('@')[0] + '\n'; 54 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 55 | } 56 | ); 57 | await message.client.sendMessage(message.jid,message.reply_message.text, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 58 | } 59 | })); 60 | -------------------------------------------------------------------------------- /downloader.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const got = require('got'); 4 | const fs = require('fs'); 5 | const axios = require('axios'); 6 | const { errorMessage, infoMessage } = require('../helpers'); 7 | const IG_DESC = "Downloads Image/Video From Instagram" 8 | const NEED_WORD = "Must Enter a link" 9 | const FBDESC = "Downloads Video From FaceBook" 10 | const LOADING = "Downloading the Video..." 11 | const NOT_FOUNDFB = "Video Not Found" 12 | const CAPTION = "Caption" 13 | 14 | XTroid.addCMD({ pattern: 'ig ?(.*)', fromMe: false, desc: IG_DESC}, async (message, match) => { 15 | 16 | const userName = match[1] 17 | 18 | if (!userName) return await message.sendMessage(errorMessage(NEED_WORD)) 19 | 20 | await message.sendMessage(infoMessage("Downloading the Post...")) 21 | 22 | await axios 23 | .get(`https://api-anoncybfakeplayer.herokuapp.com/igdown?url=${userName}`) 24 | .then(async (response) => { 25 | const { 26 | url, 27 | type, 28 | } = response.data.result[0] 29 | 30 | const profileBuffer = await axios.get(url, {responseType: 'arraybuffer'}) 31 | 32 | const msg = `${type}` 33 | 34 | if (msg === 'image') { await message.sendMessage(Buffer.from(profileBuffer.data), MessageType.image, { 35 | caption: "Made By lasi" 36 | })} 37 | 38 | if (msg === 'video') { await message.sendMessage(Buffer.from(profileBuffer.data), MessageType.video, { 39 | caption: "Made By lasi" 40 | })} 41 | 42 | 43 | }) 44 | .catch( 45 | async (err) => await message.sendMessage(errorMessage("Invaild Link, Please Enter a Vaild Instagram Link")), 46 | ) 47 | }, 48 | ) 49 | 50 | 51 | 52 | 53 | XTroid.addCMD({ pattern: 'fb ?(.*)', fromMe: false, desc: FBDESC }, async (message, match) => { 54 | 55 | const userName = match[1] 56 | 57 | if (!userName) return await message.sendMessage(errorMessage(NEED_WORD)) 58 | 59 | await message.sendMessage(infoMessage(LOADING)) 60 | 61 | await axios 62 | .get(`https://videfikri.com/api/fbdl/?urlfb=${userName}`) 63 | .then(async (response) => { 64 | const { 65 | url, 66 | judul, 67 | } = response.data.result 68 | 69 | const profileBuffer = await axios.get(url, {responseType: 'arraybuffer'}) 70 | 71 | const msg = `*${CAPTION}*: ${judul}` 72 | 73 | await message.sendMessage(Buffer.from(profileBuffer.data), MessageType.video, { 74 | caption: "Made By Lasi" 75 | }) 76 | }) 77 | .catch( 78 | async (err) => await message.sendMessage(errorMessage(NOT_FOUNDFB )), 79 | ) 80 | }, 81 | ) 82 | -------------------------------------------------------------------------------- /plugins/neko.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const XTroid = require('../events'); 4 | const {MessageType} = require('@adiwajshing/baileys'); 5 | const got = require('got'); 6 | const Config = require('../config'); 7 | 8 | const Language = require('../language'); 9 | const Lang = Language.getString('nekobin'); 10 | 11 | if (Config.WORKTYPE == 'private') { 12 | 13 | XTroid.addCMD({pattern: 'neko', fromMe: true, desc: Lang.NEKO_DESC}, (async (message, match) => { 14 | 15 | if (!message.reply_message) return await message.sendMessage(Lang.NEED_REPLY); 16 | if (!message.reply_message.text) return await message.sendMessage(Lang.MUST_TEXT); 17 | let base_URI = "https://nekobin.com/api/documents"; 18 | try { 19 | const response = await got.post(base_URI, {lasijson : {content : message.reply_message.text}}); 20 | lasijson = JSON.parse(response.body); 21 | neko_url = 'https://nekobin.com/' + lasijson.result.key; 22 | await message.reply(neko_url); 23 | } catch (err) { 24 | await message.reply(err.message, MessageType.text); 25 | console.log(err.message); 26 | } 27 | 28 | })); 29 | } 30 | else if (Config.WORKTYPE == 'public') { 31 | 32 | XTroid.addCMD({pattern: 'neko', fromMe: false, desc: Lang.NEKO_DESC}, (async (message, match) => { 33 | 34 | if (!message.reply_message) return await message.sendMessage(Lang.NEED_REPLY); 35 | if (!message.reply_message.text) return await message.sendMessage(Lang.MUST_TEXT); 36 | let base_URI = "https://nekobin.com/api/documents"; 37 | try { 38 | const response = await got.post(base_URI, {lasijson : {content : message.reply_message.text}}); 39 | lasijson = JSON.parse(response.body); 40 | neko_url = 'https://nekobin.com/' + lasijson.result.key; 41 | await message.reply(neko_url); 42 | } catch (err) { 43 | await message.reply(err.message, MessageType.text); 44 | console.log(err.message); 45 | } 46 | 47 | })); 48 | XTroid.addCMD({pattern: 'neko', fromMe: true, desc: Lang.NEKO_DESC, dontAddCMDList: true}, (async (message, match) => { 49 | 50 | if (!message.reply_message) return await message.sendMessage(Lang.NEED_REPLY); 51 | if (!message.reply_message.text) return await message.sendMessage(Lang.MUST_TEXT); 52 | let base_URI = "https://nekobin.com/api/documents"; 53 | try { 54 | const response = await got.post(base_URI, {lasijson : {content : message.reply_message.text}}); 55 | lasijson = JSON.parse(response.body); 56 | neko_url = 'https://nekobin.com/' + lasijson.result.key; 57 | await message.reply(neko_url); 58 | } catch (err) { 59 | await message.reply(err.message, MessageType.text); 60 | console.log(err.message); 61 | } 62 | 63 | })); 64 | } 65 | -------------------------------------------------------------------------------- /plugins/happymod.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const got = require('got'); 4 | const Config = require('../config'); 5 | const SIZ = "Size" 6 | const Language = require('../language'); 7 | const Lang = Language.getString('weather'); 8 | 9 | 10 | if (Config.WORKTYPE == 'private') { 11 | 12 | XTroid.addCMD({pattern: 'hpmod ?(.*)', fromMe: true, desc: Lang.HMODD_DESC, dontAddCMDList: true }, async (message, match) => { 13 | if (match[1] === '') return await message.reply(Lang.NEED_APPNAME); 14 | const url = `https://api.zeks.xyz/api/happymod?apikey=&q=${match[1]}&apikey=1hroZ3ju94h0PBjCNKsfhYaSuLs`; 15 | try { 16 | const response = await got(url); 17 | const lasi = JSON.parse(response.body); 18 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, 19 | '*📕 ' + Lang.NAMEY +'* ```' + lasi.result[0].title + '```\n' + 20 | '*📘 ' + 'Size' +'* ```' + lasi.result[0].size + '```\n' + 21 | '*📗 ' + Lang.DOWNLOAD +':* ```' + lasi.result[0].link + '```\n', MessageType.text); 22 | } catch { 23 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDMD, MessageType.text); 24 | } 25 | }); 26 | } 27 | else if (Config.WORKTYPE == 'public') { 28 | 29 | XTroid.addCMD({pattern: 'hpmod ?(.*)', fromMe: false, desc: Lang.HMODD_DESC, dontAddCMDList: true }, async (message, match) => { 30 | if (match[1] === '') return await message.reply(Lang.NEED_APPNAME); 31 | const url = `https://api.zeks.xyz/api/happymod?apikey=&q=${match[1]}&apikey=1hroZ3ju94h0PBjCNKsfhYaSuLs`; 32 | try { 33 | const response = await got(url); 34 | const lasi = JSON.parse(response.body); 35 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, 36 | '*📕 ' + Lang.NAMEY +'* ```' + lasi.result[0].title + '```\n' + 37 | '*📘 ' + 'Size' +'* ```' + lasi.result[0].size + '```\n' + 38 | '*📗 ' + Lang.DOWNLOAD +':* ```' + lasi.result[0].link + '```\n', MessageType.text); 39 | } catch { 40 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDMD, MessageType.text); 41 | } 42 | }); 43 | 44 | XTroid.addCMD({pattern: 'hpmod ?(.*)', fromMe: true, desc: Lang.HMODD_DESC, dontAddCMDList: true }, async (message, match) => { 45 | if (match[1] === '') return await message.reply(Lang.NEED_APPNAME); 46 | const url = `https://api.zeks.xyz/api/happymod?apikey=&q=${match[1]}&apikey=1hroZ3ju94h0PBjCNKsfhYaSuLs`; 47 | try { 48 | const response = await got(url); 49 | const lasi = JSON.parse(response.body); 50 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, 51 | '*📕 ' + Lang.NAMEY +'* ```' + lasi.result[0].title + '```\n' + 52 | '*📘 ' + 'Size' +'* ```' + lasi.result[0].size + '```\n' + 53 | '*📗 ' + Lang.DOWNLOAD +':* ```' + lasi.result[0].link + '```\n', MessageType.text); 54 | } catch { 55 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDMD, MessageType.text); 56 | } 57 | }); 58 | 59 | 60 | } 61 | -------------------------------------------------------------------------------- /plugins/antispam.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | 3 | const {MessageType} = require('@adiwajshing/baileys'); 4 | 5 | const Ln = ('This command for any emergency situation about any kind of WhatsApp SPAM in Group'); 6 | 7 | const code = ('A\nɴ\nᴛ\nɪ\ns\nᴘ\nᴀ\nᴍ\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nˣ⁻ᵗʳᵒᶦᵈ') 8 | const FINAL = "THIS IS AN ANTISAPM (anti lag),\nමෙම කේතය ඔබගේ දුරකථනය විකුර්ති පණිවිඩ නිසා සිරවිම වලකාලයි" 9 | const TMUTE = "Trying to close temporary,\nතාවකාලිකව සමුහය වැසීමට උත්සාහ කිරීම" 10 | const MUT = ".mute 1d" 11 | const SCXR = "Running script...." 12 | XTroid.addCMD({pattern: 'antispm', fromMe: true, deleteCommand: false, desc: Ln,}, (async (message, match) => { 13 | 14 | var msg = await message.reply('Preforming....'); 15 | 16 | await message.client.sendMessage( 17 | message.jid,TMUTE, MessageType.text); 18 | 19 | await message.client.sendMessage( 20 | message.jid,MUT, MessageType.text); 21 | 22 | await message.client.sendMessage( 23 | message.jid,SCXR, MessageType.text); 24 | 25 | await message.client.sendMessage( 26 | message.jid,code, MessageType.text); 27 | 28 | await message.client.sendMessage( 29 | message.jid,code, MessageType.text); 30 | 31 | await message.client.sendMessage( 32 | message.jid,code, MessageType.text); 33 | 34 | await message.client.sendMessage( 35 | message.jid,code, MessageType.text); 36 | 37 | await message.client.sendMessage( 38 | message.jid,code, MessageType.text); 39 | 40 | await message.client.sendMessage( 41 | message.jid,code, MessageType.text); 42 | 43 | await message.client.sendMessage( 44 | message.jid,code, MessageType.text); 45 | 46 | await message.client.sendMessage( 47 | message.jid,code, MessageType.text); 48 | 49 | await message.client.sendMessage( 50 | message.jid,code, MessageType.text); 51 | 52 | await message.client.sendMessage( 53 | message.jid,code, MessageType.text); 54 | 55 | await message.client.sendMessage( 56 | message.jid,code, MessageType.text); 57 | 58 | await message.client.sendMessage( 59 | message.jid,code, MessageType.text); 60 | 61 | await message.client.sendMessage( 62 | message.jid,code, MessageType.text); 63 | 64 | await message.client.sendMessage( 65 | message.jid,code, MessageType.text); 66 | 67 | await message.client.sendMessage( 68 | message.jid,FINAL, MessageType.text); 69 | 70 | })); 71 | -------------------------------------------------------------------------------- /Xproject/ReplyMessage.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 4 | const Base = require('./Base'); 5 | const Image = require('./Image'); 6 | 7 | class ReplyMessage extends Base { 8 | constructor(client, data) { 9 | super(client); 10 | if (data) this._patch(data); 11 | } 12 | 13 | _patch(data) { 14 | this.id = data.stanzaId; 15 | this.jid = data.participant; 16 | if (data.quotedMessage && data.quotedMessage.imageMessage) { 17 | this.message = data.quotedMessage.imageMessage.caption === null ? data.message.imageMessage.caption : ''; 18 | this.caption = data.quotedMessage.imageMessage.caption === null ? data.message.imageMessage.caption : ''; 19 | this.url = data.quotedMessage.imageMessage.url; 20 | this.mimetype = data.quotedMessage.imageMessage.mimetype; 21 | this.height = data.quotedMessage.imageMessage.height; 22 | this.width = data.quotedMessage.imageMessage.width; 23 | this.mediaKey = data.quotedMessage.imageMessage.mediaKey; 24 | this.image = true; 25 | this.video = false; 26 | } else if (data.quotedMessage && data.quotedMessage.videoMessage) { 27 | this.message = data.quotedMessage.videoMessage.caption === null ? data.message.videoMessage.caption : ''; 28 | this.caption = data.quotedMessage.videoMessage.caption === null ? data.message.videoMessage.caption : ''; 29 | this.url = data.quotedMessage.videoMessage.url; 30 | this.mimetype = data.quotedMessage.videoMessage.mimetype; 31 | this.height = data.quotedMessage.videoMessage.height; 32 | this.width = data.quotedMessage.videoMessage.width; 33 | this.mediaKey = data.quotedMessage.videoMessage.mediaKey; 34 | this.video = true; 35 | } else if (data.quotedMessage && data.quotedMessage.conversation) { 36 | this.message = data.quotedMessage.conversation; 37 | this.text = data.quotedMessage.conversation; 38 | this.image = false; 39 | this.video = false; 40 | } 41 | 42 | this.data = data; 43 | 44 | return super._patch(data); 45 | } 46 | 47 | async delete() { 48 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}); 49 | } 50 | 51 | async reply(text) { 52 | var message = await this.client.sendMessage(this.jid, text, MessageType.text, {quoted: this.data}); 53 | return new Message(this.client, message) 54 | } 55 | 56 | async sendMessage(content, type, options) { 57 | return await this.client.sendMessage(this.jid, content, type, options); 58 | } 59 | 60 | async sendTyping() { 61 | return await this.client.updatePresence(this.jid, Presence.composing); 62 | } 63 | 64 | async download(location = this.id) { 65 | if (this.image) { 66 | await this.client.downloadAndSaveMediaMessage(this.data.quotedMessage.imageMessage, location); 67 | return this.id + '.' + this.mimetype.split('/')[1]; 68 | } else { 69 | return false; 70 | } 71 | } 72 | }; 73 | 74 | module.exports = ReplyMessage; -------------------------------------------------------------------------------- /plugins/notes.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const fs = require('fs/promises') 4 | const path = require('path') 5 | const { MessageType } = require('@adiwajshing/baileys') 6 | const XTroid = require('../events'); 7 | const { successfullMessage, errorMessage, infoMessage } = require('../helpers'); 8 | const NotesDB = require('./sql/notes'); 9 | const Language = require('../language') 10 | const Lang = Language.getString('notes') 11 | 12 | XTroid.addCMD({ pattern: 'notes', fromMe: true, desc: Lang.NOTES_USAGE }, async (message, match) => { 13 | 14 | 15 | const _notes = await NotesDB.getNotes() 16 | const notes = [] 17 | _notes.map(note => { 18 | if (!note.note.includes('IMG;;;')) { 19 | notes.push('📜' + note.note) 20 | } 21 | }) 22 | 23 | if (notes.length < 1) { 24 | return await message.sendMessage(infoMessage(Lang.NO_SAVED)) 25 | } 26 | 27 | await message.sendMessage(infoMessage(Lang.SAVED)) 28 | 29 | await message.sendMessage(notes.join('\n\n')) 30 | _notes.filter(note => note.note.includes('IMG;;;')).forEach(async (note) => { 31 | const imageName = note.note.replace('IMG;;;', '') 32 | const image = await fs.readFile(path.resolve('media', imageName)) 33 | await message.sendMessage(image, MessageType.image) 34 | }) 35 | 36 | 37 | }) 38 | 39 | 40 | 41 | XTroid.addCMD({ pattern: 'save ?(.*)', fromMe: true, desc: Lang.SAVE_USAGE }, async (message, match) => { 42 | 43 | const userNote = match[1] 44 | 45 | if (!userNote && !message.reply_message) { 46 | await message.sendMessage(errorMessage(Lang.REPLY)) 47 | 48 | return 49 | } 50 | 51 | if (userNote) { 52 | await NotesDB.saveNote(userNote) 53 | await message.sendMessage(successfullMessage(Lang.SUCCESSFULLY_ADDED), MessageType.text) 54 | 55 | return 56 | 57 | } else if (!userNote && message.reply_message) { 58 | if (!message.reply_message.video) { 59 | 60 | if (message.reply_message.image) { 61 | const savedFileName = await message.client.downloadAndSaveMediaMessage({ 62 | key: { 63 | remoteJid: message.reply_message.jid, 64 | id: message.reply_message.id 65 | }, 66 | message: message.reply_message.data.quotedMessage 67 | }) 68 | 69 | const randomFileName = savedFileName.split('.')[0] + Math.floor(Math.random() * 50) + path.extname(savedFileName) 70 | await fs.copyFile(savedFileName, path.resolve('media', randomFileName)) 71 | await NotesDB.saveNote("IMG;;;" + randomFileName) 72 | await message.sendMessage(successfullMessage(Lang.SUCCESSFULLY_ADDED), MessageType.text) 73 | 74 | 75 | } 76 | 77 | await NotesDB.saveNote(message.reply_message.text) 78 | await message.sendMessage(successfullMessage(Lang.SUCCESSFULLY_ADDED), MessageType.text) 79 | 80 | return 81 | } 82 | } else { 83 | await message.sendMessage(errorMessage(Lang.UNSUCCESSFUL)) 84 | 85 | return 86 | } 87 | }) 88 | 89 | XTroid.addCMD({ pattern: 'deleteNotes', fromMe: true, desc: Lang.DELETE_USAGE }, async (message, match) => { 90 | 91 | await NotesDB.deleteAllNotes() 92 | 93 | const mediaFolder = await fs.readdir(path.resolve('media')) 94 | 95 | mediaFolder.forEach(async (file) => { 96 | await fs.unlink(path.resolve('media', file)) 97 | }) 98 | 99 | return await message.sendMessage(successfullMessage(Lang.SUCCESSFULLY_DELETED)) 100 | }) 101 | 102 | -------------------------------------------------------------------------------- /plugins/updater.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const simpleGit = require('simple-git'); 4 | const git = simpleGit(); 5 | const XTroid = require('../events'); 6 | const {MessageType} = require('@adiwajshing/baileys'); 7 | const Config = require('../config'); 8 | const exec = require('child_process').exec; 9 | const Heroku = require('heroku-client'); 10 | const { PassThrough } = require('stream'); 11 | const heroku = new Heroku({ token: Config.HEROKU.API_KEY }) 12 | 13 | const Language = require('../language'); 14 | const Lang = Language.getString('updater'); 15 | 16 | 17 | XTroid.addCMD({pattern: 'up$', fromMe: true, desc: Lang.UPDATER_DESC}, (async (message, match) => { 18 | await git.fetch(); 19 | var commits = await git.log([Config.BRANCH + '..origin/' + Config.BRANCH]); 20 | if (commits.total === 0) { 21 | await message.client.sendMessage( 22 | message.jid, 23 | Lang.UPDATE, MessageType.text 24 | ); 25 | } else { 26 | var degisiklikler = Lang.NEW_UPDATE; 27 | commits['all'].map( 28 | (commit) => { 29 | degisiklikler += '🔹 [' + commit.date.substring(0, 10) + ']: ' + commit.message + ' <' + "lasi" + '>\n'; 30 | } 31 | ); 32 | 33 | await message.client.sendMessage( 34 | message.jid, 35 | degisiklikler + '```', MessageType.text 36 | ); 37 | } 38 | })); 39 | 40 | XTroid.addCMD({pattern: 'up now$', fromMe: true, desc: Lang.UPDATE_NOW_DESC}, (async (message, match) => { 41 | await git.fetch(); 42 | var commits = await git.log([Config.BRANCH + '..origin/' + Config.BRANCH]); 43 | if (commits.total === 0) { 44 | return await message.client.sendMessage( 45 | message.jid, 46 | Lang.UPDATE, MessageType.text 47 | ); 48 | } else { 49 | var guncelleme = await message.reply(Lang.UPDATING); 50 | if (Config.HEROKU.HEROKU) { 51 | try { 52 | var app = await heroku.get('/apps/' + Config.HEROKU.APP_NAME) 53 | } catch { 54 | await message.client.sendMessage( 55 | message.jid,Lang.INVALID_HEROKU, MessageType.text); 56 | await new Promise(r => setTimeout(r, 1000)); 57 | return await message.client.sendMessage( 58 | message.jid,Lang.IN_AF, MessageType.text); 59 | } 60 | 61 | git.fetch('upstream', Config.BRANCH); 62 | git.reset('hard', ['FETCH_HEAD']); 63 | 64 | var git_url = app.git_url.replace( 65 | "https://", "https://api:" + Config.HEROKU.API_KEY + "@" 66 | ) 67 | 68 | try { 69 | await git.addRemote('heroku', git_url); 70 | } catch { console.log('heroku remote ekli'); } 71 | await git.push('heroku', Config.BRANCH); 72 | 73 | await message.client.sendMessage( 74 | message.jid,Lang.UPDATED, MessageType.text); 75 | 76 | await message.sendMessage(Lang.AFTER_UPDATE); 77 | 78 | } else { 79 | git.pull((async (err, update) => { 80 | if(update && update.summary.changes) { 81 | await message.client.sendMessage( 82 | message.jid,Lang.UPDATED_LOCAL, MessageType.text); 83 | exec('npm install').stderr.pipe(process.stderr); 84 | } else if (err) { 85 | await message.client.sendMessage( 86 | message.jid,'*❌ Güncelleme başarısız oldu!*\n*Hata:* ```' + err + '```', MessageType.text); 87 | } 88 | })); 89 | await guncelleme.delete(); 90 | } 91 | } 92 | })); 93 | -------------------------------------------------------------------------------- /plugins/removebg.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const XTroid = require('../events'); 4 | const {MessageType, Mimetype} = require('@adiwajshing/baileys'); 5 | const Config = require('../config'); 6 | const fs = require('fs'); 7 | const got = require('got'); 8 | const FormData = require('form-data'); 9 | const stream = require('stream'); 10 | const {promisify} = require('util'); 11 | 12 | const pipeline = promisify(stream.pipeline); 13 | 14 | const Language = require('../language'); 15 | const Lang = Language.getString('removebg'); 16 | 17 | if (Config.WORKTYPE == 'private') { 18 | 19 | XTroid.addCMD({pattern: 'removebg ?(.*)', fromMe: true, desc: Lang.REMOVEBG_DESC}, (async (message, match) => { 20 | 21 | if (message.jid === '905524317852-1612300121@g.us') { 22 | 23 | return; 24 | } 25 | 26 | if (message.reply_message === false || message.reply_message.image === false) return await message.client.sendMessage(message.jid,Lang.NEED_PHOTO,MessageType.text); 27 | if (Config.RBG_API_KEY === false) return await message.client.sendMessage(message.jid,Lang.NO_API_KEY,MessageType.text); 28 | 29 | var load = await message.reply(Lang.RBGING); 30 | var location = await message.client.downloadAndSaveMediaMessage({ 31 | key: { 32 | remoteJid: message.reply_message.jid, 33 | id: message.reply_message.id 34 | }, 35 | message: message.reply_message.data.quotedMessage 36 | }); 37 | 38 | var form = new FormData(); 39 | form.append('image_file', fs.createReadStream(location)); 40 | form.append('size', 'auto'); 41 | 42 | var rbg = await got.stream.post('https://api.remove.bg/v1.0/removebg', { 43 | body: form, 44 | headers: { 45 | 'X-Api-Key': Config.RBG_API_KEY 46 | } 47 | }); 48 | 49 | await pipeline( 50 | rbg, 51 | fs.createWriteStream('rbg.png') 52 | ); 53 | 54 | await message.client.sendMessage(message.jid,fs.readFileSync('rbg.png'), MessageType.document, {filename: 'x.png', mimetype: Mimetype.png}); 55 | await load.delete(); 56 | })); 57 | } 58 | else if (Config.WORKTYPE == 'public') { 59 | 60 | XTroid.addCMD({pattern: 'removebg ?(.*)', fromMe: false, desc: Lang.REMOVEBG_DESC}, (async (message, match) => { 61 | 62 | if (message.jid === '905524317852-1612300121@g.us') { 63 | 64 | return; 65 | } 66 | 67 | if (message.reply_message === false || message.reply_message.image === false) return await message.client.sendMessage(message.jid,Lang.NEED_PHOTO,MessageType.text); 68 | if (Config.RBG_API_KEY === false) return await message.client.sendMessage(message.jid,Lang.NO_API_KEY,MessageType.text); 69 | 70 | var load = await message.reply(Lang.RBGING); 71 | var location = await message.client.downloadAndSaveMediaMessage({ 72 | key: { 73 | remoteJid: message.reply_message.jid, 74 | id: message.reply_message.id 75 | }, 76 | message: message.reply_message.data.quotedMessage 77 | }); 78 | 79 | var form = new FormData(); 80 | form.append('image_file', fs.createReadStream(location)); 81 | form.append('size', 'auto'); 82 | 83 | var rbg = await got.stream.post('https://api.remove.bg/v1.0/removebg', { 84 | body: form, 85 | headers: { 86 | 'X-Api-Key': Config.RBG_API_KEY 87 | } 88 | }); 89 | 90 | await pipeline( 91 | rbg, 92 | fs.createWriteStream('rbg.png') 93 | ); 94 | 95 | await message.client.sendMessage(message.jid,fs.readFileSync('rbg.png'), MessageType.document, {filename: 'x.png', mimetype: Mimetype.png}); 96 | await load.delete(); 97 | })); 98 | } 99 | -------------------------------------------------------------------------------- /plugins/weather.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | const XTroid = require('../events'); 5 | const {MessageType} = require('@adiwajshing/baileys'); 6 | const got = require('got'); 7 | const Config = require('../config'); 8 | 9 | 10 | const Language = require('../language'); 11 | const Lang = Language.getString('weather'); 12 | 13 | if (Config.WORKTYPE == 'private') { 14 | 15 | XTroid.addCMD({pattern: 'weather ?(.*)', desc: Lang.WEATHER_DESC, fromMe: true}, async (message, match) => { 16 | 17 | if (match[1] === '') return await message.reply(Lang.NEED_LOCATION); 18 | const url = `http://api.openweathermap.org/data/2.5/weather?q=${match[1]}&units=metric&appid=060a6bcfa19809c2cd4d97a212b19273&language=tr`; 19 | try { 20 | const response = await got(url); 21 | const lasijson = JSON.parse(response.body); 22 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📍 ' + Lang.LOCATION +':* ```' + match[1] + '```\n\n' + 23 | '*☀ ' + Lang.TEMP +':* ```' + lasijson.main.temp_max + '°```\n' + 24 | '*ℹ ' + Lang.DESC +':* ```' + lasijson.weather[0].description + '```\n' + 25 | '*☀ ' + Lang.HUMI +':* ```%' + lasijson.main.humidity + '```\n' + 26 | '*💨 ' + Lang.WIND +':* ```' + lasijson.wind.speed + 'm/s```\n' + 27 | '*☁ ' + Lang.CLOUD +':* ```%' + lasijson.clouds.all + '```\n', MessageType.text); 28 | } catch { 29 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUND, MessageType.text); 30 | } 31 | }); 32 | } 33 | if (Config.WORKTYPE == 'public') { 34 | 35 | XTroid.addCMD({pattern: 'weather ?(.*)', desc: Lang.WEATHER_DESC, fromMe: false}, async (message, match) => { 36 | 37 | if (match[1] === '') return await message.reply(Lang.NEED_LOCATION); 38 | const url = `http://api.openweathermap.org/data/2.5/weather?q=${match[1]}&units=metric&appid=060a6bcfa19809c2cd4d97a212b19273&language=tr`; 39 | try { 40 | const response = await got(url); 41 | const lasijson = JSON.parse(response.body); 42 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📍 ' + Lang.LOCATION +':* ```' + match[1] + '```\n\n' + 43 | '*☀ ' + Lang.TEMP +':* ```' + lasijson.main.temp_max + '°```\n' + 44 | '*ℹ ' + Lang.DESC +':* ```' + lasijson.weather[0].description + '```\n' + 45 | '*☀ ' + Lang.HUMI +':* ```%' + lasijson.main.humidity + '```\n' + 46 | '*💨 ' + Lang.WIND +':* ```' + lasijson.wind.speed + 'm/s```\n' + 47 | '*☁ ' + Lang.CLOUD +':* ```%' + lasijson.clouds.all + '```\n', MessageType.text); 48 | } catch { 49 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUND, MessageType.text); 50 | } 51 | }); 52 | XTroid.addCMD({pattern: 'weather ?(.*)', desc: Lang.WEATHER_DESC, fromMe: false, dontAddCMDList: true}, async (message, match) => { 53 | 54 | if (match[1] === '') return await message.reply(Lang.NEED_LOCATION); 55 | const url = `http://api.openweathermap.org/data/2.5/weather?q=${match[1]}&units=metric&appid=060a6bcfa19809c2cd4d97a212b19273&language=tr`; 56 | try { 57 | const response = await got(url); 58 | const lasijson = JSON.parse(response.body); 59 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📍 ' + Lang.LOCATION +':* ```' + match[1] + '```\n\n' + 60 | '*☀ ' + Lang.TEMP +':* ```' + lasijson.main.temp_max + '°```\n' + 61 | '*ℹ ' + Lang.DESC +':* ```' + lasijson.weather[0].description + '```\n' + 62 | '*☀ ' + Lang.HUMI +':* ```%' + lasijson.main.humidity + '```\n' + 63 | '*💨 ' + Lang.WIND +':* ```' + lasijson.wind.speed + 'm/s```\n' + 64 | '*☁ ' + Lang.CLOUD +':* ```%' + lasijson.clouds.all + '```\n', MessageType.text); 65 | } catch { 66 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUND, MessageType.text); 67 | } 68 | }); 69 | 70 | } 71 | -------------------------------------------------------------------------------- /plugins/filters.js: -------------------------------------------------------------------------------- 1 | /* # Exclusively from danuma project 2 | # Do not use this fore any commercial thing 3 | # If you abuse thais bot we wil kick you from bot 4 | # Do not edit (Respect to the Devaoloper) 5 | # All rights reserved ©Lasiya @lasiya99X t.me/lasiya99X 6 | # Get more about devaoloper https://lasiya.ml 7 | */ 8 | 9 | const XTroid = require('../events'); 10 | const {MessageType} = require('@adiwajshing/baileys'); 11 | const FilterDb = require('./sql/filters'); 12 | const Config = require('../config') 13 | const Language = require('../language'); 14 | const Lang = Language.getString('filters'); 15 | 16 | var f_rep = '' 17 | if (Config.LANG == 'SI') f_rep = '*පෙරනය සකසන ලදී ✅*' 18 | if (Config.LANG == 'EN') f_rep = '*𝐹𝒾𝓁𝓉𝑒𝓇 𝒮𝒶𝓋𝑒𝒹 ✅*' 19 | 20 | 21 | XTroid.addCMD({pattern: 'filter ?(.*)', fromMe: true, desc: Lang.FILTER_DESC}, (async (message, match) => { 22 | Mat = match[1].match(/[\'\"\“](.*?)[\'\"\“]/gsm); 23 | 24 | if (Mat === null) { 25 | filtreler = await FilterDb.getFilter(message.jid); 26 | if (filtreler === false) { 27 | await message.client.sendMessage(message.jid,Lang.NO_FILTER,MessageType.text) 28 | } else { 29 | var mesaj = Lang.FILTERS + '\n'; 30 | filtreler.map((filter) => mesaj += '```' + filter.dataValues.pattern + '```\n'); 31 | await message.client.sendMessage(message.jid,mesaj,MessageType.text); 32 | } 33 | } else if (message.reply_message && match[1] !== '') { 34 | await FilterDb.setFilter(message.jid, match[1].replace(/['"“]+/g, ''), message.reply_message.text); 35 | return await message.client.sendMessage(message.jid,f_rep,MessageType.text); 36 | } else { 37 | if (Mat.length < 2) { 38 | return await message.client.sendMessage(message.jid,Lang.NEED_REPLY + ' ```.filter "Word" "Result"',MessageType.text); 39 | } 40 | await FilterDb.setFilter(message.jid, Mat[0].replace(/['"“]+/g, ''), Mat[1].replace(/['"“]+/g, '').replace(/[#]+/g, '\n'), Mat[0][0] === "'" ? true : false); 41 | await message.client.sendMessage(message.jid,Lang.FILTERED.format(Mat[0].replace(/['"]+/g, '')),MessageType.text); 42 | } 43 | })); 44 | 45 | XTroid.addCMD({pattern: 'stop ?(.*)', fromMe: true, desc: Lang.STOP_DESC}, (async (message, match) => { 46 | match = match[1].match(/[\'\"\“](.*?)[\'\"\“]/gsm); 47 | if (match === null) { 48 | return await message.client.sendMessage(message.jid,Lang.NEED_REPLY + '\n*Example:* ```.stop "hello"```',MessageType.text) 49 | } 50 | 51 | del = await FilterDb.deleteFilter(message.jid, match[0].replace(/['"“]+/g, '')); 52 | 53 | if (!del) { 54 | await message.client.sendMessage(message.jid,Lang.ALREADY_NO_FILTER, MessageType.text) 55 | } else { 56 | await message.client.sendMessage(message.jid,Lang.DELETED, MessageType.text) 57 | } 58 | })); 59 | 60 | 61 | XTroid.addCMD({on: 'text', fromMe: false}, (async (message, match) => { 62 | var filtreler = await FilterDb.getFilter(message.jid); 63 | if (!filtreler) return; 64 | return filtreler.map( 65 | async (filter) => { 66 | pattern = new RegExp(filter.dataValues.regex ? filter.dataValues.pattern : ('\\b(' + filter.dataValues.pattern + ')\\b'), 'gm'); 67 | if (message.message == filter.dataValues.pattern) { 68 | await new Promise(r => setTimeout(r, 900)); 69 | return await message.client.sendMessage(message.jid,filter.dataValues.text, MessageType.text, {quoted: message.data}); 70 | } 71 | } 72 | ); 73 | })); 74 | XTroid.addCMD({on: 'text', fromMe: true, deleteCommand: false, dontAddCMDList: true}, (async (message, match) => { 75 | var filtreler = await FilterDb.getFilter(message.jid); 76 | if (!filtreler) return; 77 | return filtreler.map( 78 | async (filter) => { 79 | pattern = new RegExp(filter.dataValues.regex ? filter.dataValues.pattern : ('\\b(' + filter.dataValues.pattern + ')\\b'), 'gm'); 80 | var fo = message.message.replace('$', '') 81 | if (fo == filter.dataValues.pattern && message.message.startsWith('$')) { 82 | await new Promise(r => setTimeout(r, 100)); 83 | return await message.client.sendMessage(message.jid,filter.dataValues.text, MessageType.text, {quoted: message.data}); 84 | } 85 | } 86 | ); 87 | })); 88 | -------------------------------------------------------------------------------- /plugins/ocr.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const XTroid = require('../events'); 4 | const Config = require('../config'); 5 | const {MessageType} = require('@adiwajshing/baileys'); 6 | const tesseract = require("node-tesseract-ocr") 7 | const langs = require('langs'); 8 | const Language = require('../language'); 9 | const Lang = Language.getString('ocr'); 10 | 11 | if (Config.WORKTYPE == 'private') { 12 | 13 | XTroid.addCMD({pattern: 'ocr ?(.*)', fromMe: true, desc: Lang.OCR_DESC}, (async (message, match) => { 14 | 15 | if (message.reply_message === false) return await message.sendMessage(Lang.NEED_REPLY); 16 | var info = await message.reply(Lang.DOWNLOADING); 17 | var location = await message.client.downloadAndSaveMediaMessage({ 18 | key: { 19 | remoteJid: message.reply_message.jid, 20 | id: message.reply_message.id 21 | }, 22 | message: message.reply_message.data.quotedMessage 23 | }); 24 | 25 | var dil; 26 | if (match[1] !== '') { 27 | dil = langs.where("1", match[1]); 28 | } else { 29 | dil = langs.where("1", Config.LANG.toLowerCase()); 30 | } 31 | 32 | try { 33 | var result = await tesseract.recognize(location, { 34 | lang: dil[2] 35 | }); 36 | } catch (e) { 37 | return await message.reply(Lang.ERROR.format(e)); 38 | } 39 | 40 | await info.delete(); 41 | if ( result === ' ' || result.length == 1 ) { 42 | return await message.reply(Lang.ERROR.format(' Empty text')); 43 | } 44 | 45 | return await message.reply(Lang.RESULT.format(dil[2], result)); 46 | })); 47 | } 48 | else if (Config.WORKTYPE == 'public') { 49 | 50 | XTroid.addCMD({pattern: 'ocr ?(.*)', fromMe: false, desc: Lang.OCR_DESC}, (async (message, match) => { 51 | 52 | if (message.reply_message === false) return await message.sendMessage(Lang.NEED_REPLY); 53 | var info = await message.reply(Lang.DOWNLOADING); 54 | var location = await message.client.downloadAndSaveMediaMessage({ 55 | key: { 56 | remoteJid: message.reply_message.jid, 57 | id: message.reply_message.id 58 | }, 59 | message: message.reply_message.data.quotedMessage 60 | }); 61 | 62 | var dil; 63 | if (match[1] !== '') { 64 | dil = langs.where("1", match[1]); 65 | } else { 66 | dil = langs.where("1", Config.LANG.toLowerCase()); 67 | } 68 | 69 | try { 70 | var result = await tesseract.recognize(location, { 71 | lang: dil[2] 72 | }); 73 | } catch (e) { 74 | return await message.reply(Lang.ERROR.format(e)); 75 | } 76 | 77 | await info.delete(); 78 | if ( result === ' ' || result.length == 1 ) { 79 | return await message.reply(Lang.ERROR.format(' Empty text')); 80 | } 81 | 82 | return await message.reply(Lang.RESULT.format(dil[2], result)); 83 | })); 84 | XTroid.addCMD({pattern: 'ocr ?(.*)', fromMe: true, desc: Lang.OCR_DESC, dontAddCMDList: true}, (async (message, match) => { 85 | 86 | if (message.reply_message === false) return await message.sendMessage(Lang.NEED_REPLY); 87 | var info = await message.reply(Lang.DOWNLOADING); 88 | var location = await message.client.downloadAndSaveMediaMessage({ 89 | key: { 90 | remoteJid: message.reply_message.jid, 91 | id: message.reply_message.id 92 | }, 93 | message: message.reply_message.data.quotedMessage 94 | }); 95 | 96 | var dil; 97 | if (match[1] !== '') { 98 | dil = langs.where("1", match[1]); 99 | } else { 100 | dil = langs.where("1", Config.LANG.toLowerCase()); 101 | } 102 | 103 | try { 104 | var result = await tesseract.recognize(location, { 105 | lang: dil[2] 106 | }); 107 | } catch (e) { 108 | return await message.reply(Lang.ERROR.format(e)); 109 | } 110 | 111 | await info.delete(); 112 | if ( result === ' ' || result.length == 1 ) { 113 | return await message.reply(Lang.ERROR.format(' Empty text')); 114 | } 115 | 116 | return await message.reply(Lang.RESULT.format(dil[2], result)); 117 | })); 118 | } 119 | -------------------------------------------------------------------------------- /plugins/_plugin.js: -------------------------------------------------------------------------------- 1 | 2 | const XTroid = require('../events'); 3 | const Heroku = require('heroku-client'); 4 | const Config = require('../config'); 5 | const {MessageType} = require('@adiwajshing/baileys'); 6 | const got = require('got'); 7 | const fs = require('fs'); 8 | const Db = require('./sql/plugin'); 9 | 10 | const Language = require('../language'); 11 | const Lang = Language.getString('_plugin'); 12 | const NLang = Language.getString('updater'); 13 | 14 | let msg = Config.LANG == 'TR' || Config.LANG == 'AZ' ? '*Bu Plugin Resmi Olarak Onaylanmıştır!* ✅' : '*This Plugin is Officially Approved!* ✅' 15 | let inmsg = Config.LANG == 'TR' || Config.LANG == 'AZ' ? '*Bu Plugin Resmi Değildir!* ❌' : '*This Plugin isn\'t Officially Approved!* ❌' 16 | 17 | const heroku = new Heroku({ 18 | token: Config.HEROKU.API_KEY 19 | }); 20 | 21 | 22 | let baseURI = '/apps/' + Config.HEROKU.APP_NAME; 23 | 24 | 25 | 26 | XTroid.addCMD({pattern: 'install ?(.*)', fromMe: true, desc: Lang.INSTALL_DESC, warn: Lang.WARN}, (async (message, match) => { 27 | if (match[1] === '') return await message.sendMessage(Lang.NEED_URL + '.install ') 28 | try { 29 | var url = new URL(match[1]); 30 | } catch { 31 | return await message.sendMessage(Lang.INVALID_URL); 32 | } 33 | 34 | if (url.host === 'gist.github.com') { 35 | url.host = 'gist.githubusercontent.com'; 36 | url = url.toString() + '/raw' 37 | } else { 38 | url = url.toString() 39 | } 40 | 41 | var response = await got(url); 42 | if (response.statusCode == 200) { 43 | // plugin adı 44 | var plugin_name = response.body.match(/addCMD\({.*pattern: ["'](.*)["'].*}/); 45 | if (plugin_name.length >= 1) { 46 | plugin_name = "__" + plugin_name[1]; 47 | } else { 48 | plugin_name = "__" + Math.random().toString(36).substring(8); 49 | } 50 | 51 | fs.writeFileSync('./plugins/' + plugin_name + '.js', response.body); 52 | try { 53 | require('./' + plugin_name); 54 | } catch (e) { 55 | fs.unlinkSync('/root/X-Troid/plugins/' + plugin_name + '.js') 56 | return await message.sendMessage(Lang.INVALID_PLUGIN + ' ```' + e + '```'); 57 | } 58 | 59 | await Db.installPlugin(url, plugin_name); 60 | await message.client.sendMessage(message.jid, Lang.INSTALLED, MessageType.text); 61 | if (!match[1].includes('phaticusthiccy')) { 62 | await new Promise(r => setTimeout(r, 400)); 63 | await message.client.sendMessage(message.jid, Lang.UNOFF, MessageType.text); 64 | } 65 | } 66 | })); 67 | 68 | 69 | XTroid.addCMD({pattern: 'plugin', fromMe: true, desc: Lang.PLUGIN_DESC }, (async (message, match) => { 70 | var mesaj = Lang.INSTALLED_FROM_REMOTE; 71 | var plugins = await Db.PluginDB.findAll(); 72 | if (plugins.length < 1) { 73 | return await message.sendMessage(Lang.NO_PLUGIN); 74 | } else { 75 | plugins.map( 76 | (plugin) => { 77 | let vf = plugin.dataValues.url.includes('SLdevilX') ? msg : inmsg 78 | mesaj += '```' + plugin.dataValues.name + '```: ' + plugin.dataValues.url + '\n' + vf + '\n\n'; 79 | } 80 | ); 81 | return await message.client.sendMessage(message.jid, mesaj, MessageType.text); 82 | } 83 | })); 84 | 85 | XTroid.addCMD({pattern: 'remove(?: |$)(.*)', fromMe: true, desc: Lang.REMOVE_DESC}, (async (message, match) => { 86 | if (match[1] === '') return await message.sendMessage(Lang.NEED_PLUGIN); 87 | if (!match[1].startsWith('__')) match[1] = '__' + match[1]; 88 | var plugin = await Db.PluginDB.findAll({ where: {name: match[1]} }); 89 | if (plugin.length < 1) { 90 | return await message.sendMessage(message.jid, Lang.NOT_FOUND_PLUGIN, MessageType.text); 91 | } else { 92 | await plugin[0].destroy(); 93 | delete require.cache[require.resolve('./' + match[1] + '.js')] 94 | fs.unlinkSync('./plugins/' + match[1] + '.js'); 95 | await message.client.sendMessage(message.jid, Lang.DELETED, MessageType.text); 96 | 97 | await new Promise(r => setTimeout(r, 1000)); 98 | 99 | await message.sendMessage(NLang.AFTER_UPDATE); 100 | 101 | console.log(baseURI); 102 | await heroku.delete(baseURI + '/dynos').catch(async (error) => { 103 | await message.sendMessage(error.message); 104 | 105 | }); 106 | } 107 | 108 | })); 109 | 110 | 111 | -------------------------------------------------------------------------------- /plugins/evaluators.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const XTroid = require('../events'); 4 | const {MessageType} = require('@adiwajshing/baileys'); 5 | const exec = require('child_process').exec; 6 | const os = require("os"); 7 | const fs = require('fs'); 8 | const Config = require('../config') 9 | const Language = require('../language'); 10 | const Lang = Language.getString('evaluators'); 11 | const SLang = Language.getString('conventer'); 12 | const NLang = Language.getString('scrapers'); 13 | const googleTTS = require('google-translate-tts'); 14 | const Heroku = require('heroku-client'); 15 | const heroku = new Heroku({ 16 | token: Config.HEROKU.API_KEY 17 | }); 18 | let baseURI = '/apps/' + Config.HEROKU.APP_NAME; 19 | 20 | XTroid.addCMD({pattern: 'term ?(.*)', fromMe: true, desc: Lang.TERM_DESC}, (async (message, match) => { 21 | var user = os.userInfo().username; 22 | if (match[1] === '') return await message.client.sendMessage(message.jid,Lang.GIVE_ME_CODE,MessageType.text); 23 | 24 | exec(match[1], async (err, stdout, stderr) => { 25 | if (err) { 26 | return await message.client.sendMessage(message.jid,'```' + user + ':~# ' + match[1] + '\n' + err + '```',MessageType.text); 27 | } 28 | 29 | return await message.client.sendMessage(message.jid,'```' + user + ':~# ' + match[1] + '\n' + stdout + '```',MessageType.text); 30 | }); 31 | })); 32 | 33 | 34 | async function checkUsAdmin(message, user = message.data.participant) { 35 | var grup = await message.client.groupMetadata(message.jid); 36 | var sonuc = grup['participants'].map((member) => { 37 | if (member.jid.split("@")[0] == user.split("@")[0] && member.isAdmin) return true; else; return false; 38 | }); 39 | return sonuc.includes(true); 40 | } 41 | async function checkImAdmin(message, user = message.client.user.jid) { 42 | var grup = await message.client.groupMetadata(message.jid); 43 | var sonuc = grup['participants'].map((member) => { 44 | if (member.jid.split("@")[0] == user.split("@")[0] && member.isAdmin) return true; else; return false; 45 | }); 46 | return sonuc.includes(true); 47 | } 48 | var antilink_var = '' 49 | async function antlch() { 50 | await heroku.get(baseURI + '/config-vars').then(async (vars) => { 51 | antilink_var = vars.ANTİ_LİNK 52 | }); 53 | } 54 | antlch() 55 | var ldc = '' 56 | if (Config.LANG == 'TR') ldc = '*ලින්කුවක් දමා ඇත*' 57 | if (Config.LANG == 'EN') ldc = '*Link Detected!*' 58 | 59 | XTroid.addCMD({on: 'text', fromMe: false, deleteCommand: false}, (async (message, match) => { 60 | if (antilink_var == 'true' && message.jid !== '905511384572-1616356915@g.us') { 61 | let regex1 = new RegExp('http://') 62 | let regex2 = new RegExp('https://') 63 | let regex3 = new RegExp('ponnaya') 64 | 65 | if (regex1.test(message.message)) { 66 | var us = await checkUsAdmin(message) 67 | var im = await checkImAdmin(message) 68 | if (!im) return; 69 | if (us) return; 70 | await message.client.groupRemove(message.jid, [message.data.participant]); 71 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 72 | } 73 | else if (regex2.test(message.message)) { 74 | var us = await checkUsAdmin(message) 75 | var im = await checkImAdmin(message) 76 | if (!im) return; 77 | if (us) return; 78 | await message.client.groupRemove(message.jid, [message.data.participant]); 79 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 80 | } 81 | else if (regex3(message.message)) { 82 | var us = await checkUsAdmin(message) 83 | var im = await checkImAdmin(message) 84 | if (!im) return; 85 | if (us) return; 86 | await message.client.groupRemove(message.jid, [message.data.participant]); 87 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 88 | } 89 | else if (message.message.match(/((?:[.]com)\b)/i)) { 90 | var us = await checkUsAdmin(message) 91 | var im = await checkImAdmin(message) 92 | if (!im) return; 93 | if (us) return; 94 | await message.client.groupRemove(message.jid, [message.data.participant]); 95 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 96 | } 97 | } 98 | })); 99 | -------------------------------------------------------------------------------- /plugins/carbon.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const XTroid = require('../events'); 7 | const {MessageType, MessageOptions, Mimetype} = require('@adiwajshing/baileys'); 8 | const axios = require('axios'); 9 | const Config = require('../config'); 10 | 11 | const Language = require('../language'); 12 | const Lang = Language.getString('carbon'); 13 | 14 | if (Config.WORKTYPE == 'private') { 15 | 16 | XTroid.addCMD({pattern: 'carbon ?(.*)', fromMe: true, desc: Lang.CARBON_DESC, warn: Lang.CARBON_WARN}, (async (message, match) => { 17 | 18 | if (match[1] === '') return await message.client.sendMessage(message.jid,Lang.CARBON_NEEDWORD, MessageType.text); 19 | 20 | var rgbafmin = 0; 21 | var rgbafmax = 255; 22 | var rgbafirst = Math.floor(Math.random() * (+rgbafmax - +rgbafmin) + +rgbafmin) 23 | 24 | var rgbasmin = 0; 25 | var rgbasmax = 255; 26 | var rgbasecond = Math.floor(Math.random() * (+rgbasmax - +rgbasmin) + +rgbasmin) 27 | 28 | var rgbatmin = 0; 29 | var rgbatmax = 255; 30 | var rgbathird = Math.floor(Math.random() * (+rgbatmax - +rgbatmin) + +rgbatmin) 31 | 32 | var lasiimage = await axios.get(`https://thiccyscarbonapi.herokuapp.com/?code=${match[1].replace(/#/gi, "%250A").replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&theme=blackboard&exportSize=3x&paddingVertical=200px&paddingHorizontal=200px&backgroundColor=rgba(` + rgbafirst + ',' + rgbasecond + ',' + rgbathird + ')&language=auto', { responseType: 'arraybuffer' }) 33 | 34 | await message.client.sendMessage(message.jid,Buffer.from(lasiimage.data), MessageType.image, {mimetype: Mimetype.png, caption: Config.CAPTION_KEY}) 35 | 36 | })); 37 | } 38 | else if (Config.WORKTYPE == 'public') { 39 | 40 | XTroid.addCMD({pattern: 'carbon ?(.*)', fromMe: false, desc: Lang.CARBON_DESC, warn: Lang.CARBON_WARN}, (async (message, match) => { 41 | 42 | if (match[1] === '') return await message.client.sendMessage(message.jid,Lang.CARBON_NEEDWORD, MessageType.text); 43 | 44 | var rgbafmin = 0; 45 | var rgbafmax = 255; 46 | var rgbafirst = Math.floor(Math.random() * (+rgbafmax - +rgbafmin) + +rgbafmin) 47 | 48 | var rgbasmin = 0; 49 | var rgbasmax = 255; 50 | var rgbasecond = Math.floor(Math.random() * (+rgbasmax - +rgbasmin) + +rgbasmin) 51 | 52 | var rgbatmin = 0; 53 | var rgbatmax = 255; 54 | var rgbathird = Math.floor(Math.random() * (+rgbatmax - +rgbatmin) + +rgbatmin) 55 | 56 | var lasiimage = await axios.get(`https://thiccyscarbonapi.herokuapp.com/?code=${match[1].replace(/#/gi, "%250A").replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&theme=blackboard&exportSize=3x&paddingVertical=200px&paddingHorizontal=200px&backgroundColor=rgba(` + rgbafirst + ',' + rgbasecond + ',' + rgbathird + ')&language=auto', { responseType: 'arraybuffer' }) 57 | 58 | await message.client.sendMessage(message.jid,Buffer.from(lasiimage.data), MessageType.image, {mimetype: Mimetype.png, caption: dd}) 59 | 60 | })); 61 | XTroid.addCMD({pattern: 'carbon ?(.*)', fromMe: true, desc: Lang.CARBON_DESC, warn: Lang.CARBON_WARN, dontAddCMDList: true}, (async (message, match) => { 62 | 63 | if (match[1] === '') return await message.client.sendMessage(message.jid,Lang.CARBON_NEEDWORD, MessageType.text); 64 | 65 | var rgbafmin = 0; 66 | var rgbafmax = 255; 67 | var rgbafirst = Math.floor(Math.random() * (+rgbafmax - +rgbafmin) + +rgbafmin) 68 | 69 | var rgbasmin = 0; 70 | var rgbasmax = 255; 71 | var rgbasecond = Math.floor(Math.random() * (+rgbasmax - +rgbasmin) + +rgbasmin) 72 | 73 | var rgbatmin = 0; 74 | var rgbatmax = 255; 75 | var rgbathird = Math.floor(Math.random() * (+rgbatmax - +rgbatmin) + +rgbatmin) 76 | 77 | var lasiimage = await axios.get(`https://thiccyscarbonapi.herokuapp.com/?code=${match[1].replace(/#/gi, "%250A").replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&theme=blackboard&exportSize=3x&paddingVertical=200px&paddingHorizontal=200px&backgroundColor=rgba(` + rgbafirst + ',' + rgbasecond + ',' + rgbathird + ')&language=auto', { responseType: 'arraybuffer' }) 78 | 79 | await message.client.sendMessage(message.jid,Buffer.from(lasiimage.data), MessageType.image, {mimetype: Mimetype.png, caption: Config.CAPTION_KEY}) 80 | 81 | })); 82 | } 83 | 84 | -------------------------------------------------------------------------------- /plugins/ipstatus.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const Config = require('../config'); 3 | const {MessageType} = require('@adiwajshing/baileys'); 4 | const got = require('got'); 5 | 6 | // List 7 | const IPSTATUS_DESC = "It Sends Your IP details" 8 | const NEED_IP = "*Enter Your IP Address..!*" 9 | const IP = "IP :" 10 | const ST = "STATUS :" 11 | const CONTINENT = "CONTINENT :" 12 | const COUNTRY = "COUNTRY :" 13 | const COUNTRYCODE = "COUNTRYCODE :" 14 | const REGIONNAME = "REGIONNAME :" 15 | const CITY = "CITY :" 16 | const ZIP = "ZIP :" 17 | const CURRENCY = "CURRENCY :" 18 | const ISP = "ISP :" 19 | const MOBILE = "MOBILE :" 20 | const PROXY = "PROXY :" 21 | const NOT_FOUNDIP = "```Sorry,I could not your IP 😖```" 22 | 23 | if (Config.WORKTYPE == 'private') { 24 | 25 | XTroid.addCMD({pattern: 'net ?(.*)', desc: 'gives you the detail of your IP' ,fromMe: true}, async (message, match) => { 26 | 27 | if (message.jid === '905524317852-1612300121@g.us') { 28 | 29 | return; 30 | } 31 | 32 | if (match[1] === '') return await message.reply(NEED_IP); 33 | const url = `https://api.techniknews.net/ipgeo/${match[1]}`; 34 | try { 35 | const response = await got(url); 36 | const lasijson = JSON.parse(response.body); 37 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*🔴 ' + IP +'* ```' + match[1] + '```\n\n' + 38 | '*✅' + ST +'* ```' + lasijson.status+ '```\n' + 39 | '*🌐' + CONTINENT +'* ```' + lasijson.continent+ '```\n' + 40 | '*🗺' + COUNTRY +'* ```' + lasijson.country+ '```\n' + 41 | '*🔢' + COUNTRYCODE +'* ```' + lasijson.countryCode+ '```\n' + 42 | '*🌍' + REGIONNAME +'* ```' + lasijson.regionName+ '```\n' + 43 | '*🚩' + CITY +'* ```' + lasijson.city+ '```\n' + 44 | '*🏛' + ZIP +'* ```' + lasijson.zip+ '```\n' + 45 | '*💸' + CURRENCY +'* ```' + lasijson.currency+ '```\n\n' + 46 | '*📡' + ISP +'* ```' + lasijson.isp+ '```\n' + 47 | '*🛡' + PROXY +'* ```' + lasijson.proxy+ '```\n' + 48 | '*📱' + MOBILE +'* ```' + lasijson.mobile+ '```\n', MessageType.text); 49 | } 50 | catch { 51 | return await message.client.sendMessage(message.jid, NOT_FOUNDIP, MessageType.text); 52 | } 53 | }); 54 | } 55 | else if (Config.WORKTYPE == 'public') { 56 | 57 | XTroid.addCMD({pattern: 'net ?(.*)', desc: 'gives you the detail of your IP' ,fromMe: false}, async (message, match) => { 58 | 59 | if (message.jid === '905524317852-1612300121@g.us') { 60 | 61 | return; 62 | } 63 | 64 | if (match[1] === '') return await message.reply(NEED_IP); 65 | const url = `https://api.techniknews.net/ipgeo/${match[1]}`; 66 | try { 67 | const response = await got(url); 68 | const lasijson = JSON.parse(response.body); 69 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*🔴 ' + IP +'* ```' + match[1] + '```\n\n' + 70 | '*✅' + ST +'* ```' + lasijson.status+ '```\n' + 71 | '*🌐' + CONTINENT +'* ```' + lasijson.continent+ '```\n' + 72 | '*🗺' + COUNTRY +'* ```' + lasijson.country+ '```\n' + 73 | '*🔢' + COUNTRYCODE +'* ```' + lasijson.countryCode+ '```\n' + 74 | '*🌍' + REGIONNAME +'* ```' + lasijson.regionName+ '```\n' + 75 | '*🚩' + CITY +'* ```' + lasijson.city+ '```\n' + 76 | '*🏛' + ZIP +'* ```' + lasijson.zip+ '```\n' + 77 | '*💸' + CURRENCY +'* ```' + lasijson.currency+ '```\n\n' + 78 | '*📡' + ISP +'* ```' + lasijson.isp+ '```\n' + 79 | '*🛡' + PROXY +'* ```' + lasijson.proxy+ '```\n' + 80 | '*📱' + MOBILE +'* ```' + lasijson.mobile+ '```\n', MessageType.text); 81 | } 82 | catch { 83 | return await message.client.sendMessage(message.jid, NOT_FOUNDIP, MessageType.text); 84 | } 85 | }); 86 | 87 | 88 | XTroid.addCMD({pattern: 'net ?(.*)' ,fromMe: true,dontAddCMDList: true }, async (message, match) => { 89 | 90 | if (message.jid === '905524317852-1612300121@g.us') { 91 | 92 | return; 93 | } 94 | 95 | if (match[1] === '') return await message.reply(NEED_IP); 96 | const url = `https://api.techniknews.net/ipgeo/${match[1]}`; 97 | try { 98 | const response = await got(url); 99 | const lasijson = JSON.parse(response.body); 100 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*🔴 ' + IP +'* ```' + match[1] + '```\n\n' + 101 | '*✅' + ST +'* ```' + lasijson.status+ '```\n' + 102 | '*🌐' + CONTINENT +'* ```' + lasijson.continent+ '```\n' + 103 | '*🗺' + COUNTRY +'* ```' + lasijson.country+ '```\n' + 104 | '*🔢' + COUNTRYCODE +'* ```' + lasijson.countryCode+ '```\n' + 105 | '*🌍' + REGIONNAME +'* ```' + lasijson.regionName+ '```\n' + 106 | '*🚩' + CITY +'* ```' + lasijson.city+ '```\n' + 107 | '*🏛' + ZIP +'* ```' + lasijson.zip+ '```\n' + 108 | '*💸' + CURRENCY +'* ```' + lasijson.currency+ '```\n\n' + 109 | '*📡' + ISP +'* ```' + lasijson.isp+ '```\n' + 110 | '*🛡' + PROXY +'* ```' + lasijson.proxy+ '```\n' + 111 | '*📱' + MOBILE +'* ```' + lasijson.mobile+ '```\n', MessageType.text); 112 | } 113 | catch { 114 | return await message.client.sendMessage(message.jid, NOT_FOUNDIP, MessageType.text); 115 | } 116 | }); 117 | } 118 | -------------------------------------------------------------------------------- /plugins/unvoice.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const XTroid = require('../events'); 7 | const {MessageType,Mimetype} = require('@adiwajshing/baileys'); 8 | const fs = require('fs'); 9 | const ffmpeg = require('fluent-ffmpeg'); 10 | const {execFile} = require('child_process'); 11 | const cwebp = require('cwebp-bin'); 12 | const Config = require('../config'); 13 | 14 | const Language = require('../language'); 15 | const Lang = Language.getString('unvoice'); // Language support 16 | 17 | 18 | if (Config.WORKTYPE == 'private') { 19 | 20 | XTroid.addCMD({pattern: 'a ?(.*)', fromMe: true, desc: Lang.UV_DESC}, (async (message, match) => { 21 | if (message.reply_message === false); 22 | var location = await message.client.downloadAndSaveMediaMessage({ 23 | key: { 24 | remoteJid: message.reply_message.jid, 25 | id: message.reply_message.id 26 | }, 27 | message: message.reply_message.data.quotedMessage 28 | }); 29 | let id = match[1]; 30 | ffmpeg(location) 31 | .format('mp3') 32 | .save('output.mp3') 33 | .on('end', async () => { 34 | await message.client.sendMessage(id, fs.readFileSync('output.mp3'), MessageType.audio, {mimetype: Mimetype.mp4Audio, ptt: true}); 35 | });})); 36 | 37 | XTroid.addCMD({pattern: 'unvoice', fromMe: true, desc: Lang.UV_DESC}, (async (message, match) => { 38 | 39 | if (message.reply_message === false) return await message.sendMessage(Lang.UV_REPLY); 40 | var downloading = await message.client.sendMessage(message.jid,Lang.UV_PROC,MessageType.text); 41 | var location = await message.client.downloadAndSaveMediaMessage({ 42 | key: { 43 | remoteJid: message.reply_message.jid, 44 | id: message.reply_message.id 45 | }, 46 | message: message.reply_message.data.quotedMessage 47 | }); 48 | 49 | ffmpeg(location) 50 | .format('mp3') 51 | .save('output.mp3') 52 | .on('end', async () => { 53 | await message.sendMessage(fs.readFileSync('output.mp3'), MessageType.audio, {mimetype: Mimetype.mp4Audio, ptt: true}); 54 | }); 55 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 56 | })); 57 | } 58 | else if (Config.WORKTYPE == 'public') { 59 | 60 | XTroid.addCMD({pattern: 'unvoice', fromMe: false, desc: Lang.UV_DESC}, (async (message, match) => { 61 | 62 | if (message.reply_message === false) return await message.sendMessage(Lang.UV_REPLY); 63 | var downloading = await message.client.sendMessage(message.jid,Lang.UV_PROC,MessageType.text); 64 | var location = await message.client.downloadAndSaveMediaMessage({ 65 | key: { 66 | remoteJid: message.reply_message.jid, 67 | id: message.reply_message.id 68 | }, 69 | message: message.reply_message.data.quotedMessage 70 | }); 71 | 72 | ffmpeg(location) 73 | .format('mp3') 74 | .save('output.mp3') 75 | .on('end', async () => { 76 | await message.sendMessage(fs.readFileSync('output.mp3'), MessageType.audio, {mimetype: Mimetype.mp4Audio, ptt: true}); 77 | }); 78 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 79 | })); 80 | 81 | XTroid.addCMD({pattern: 'a ?(.*)', fromMe: true, desc: Lang.UV_DESC}, (async (message, match) => { 82 | if (message.reply_message === false); 83 | var location = await message.client.downloadAndSaveMediaMessage({ 84 | key: { 85 | remoteJid: message.reply_message.jid, 86 | id: message.reply_message.id 87 | }, 88 | message: message.reply_message.data.quotedMessage 89 | }); 90 | let id = match[1]; 91 | ffmpeg(location) 92 | .format('mp3') 93 | .save('output.mp3') 94 | .on('end', async () => { 95 | await message.client.sendMessage(id, fs.readFileSync('output.mp3'), MessageType.audio, {mimetype: Mimetype.mp4Audio, ptt: true}); 96 | });})); 97 | 98 | XTroid.addCMD({pattern: 'unvoice', fromMe: true, desc: Lang.UV_DESC, dontAddCMDList: true}, (async (message, match) => { 99 | 100 | if (message.reply_message === false) return await message.sendMessage(Lang.UV_REPLY); 101 | var downloading = await message.client.sendMessage(message.jid,Lang.UV_PROC,MessageType.text); 102 | var location = await message.client.downloadAndSaveMediaMessage({ 103 | key: { 104 | remoteJid: message.reply_message.jid, 105 | id: message.reply_message.id 106 | }, 107 | message: message.reply_message.data.quotedMessage 108 | }); 109 | 110 | ffmpeg(location) 111 | .format('mp3') 112 | .save('output.mp3') 113 | .on('end', async () => { 114 | await message.sendMessage(fs.readFileSync('output.mp3'), MessageType.audio, {mimetype: Mimetype.mp4Audio, ptt: true}); 115 | }); 116 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 117 | })); 118 | } 119 | 120 | -------------------------------------------------------------------------------- /plugins/grp.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const Config = require('../config'); 3 | const {MessageType,Mimetype} = require('@adiwajshing/baileys'); 4 | const Language = require('../language'); 5 | const Lang = Language.getString('_xtroid'); 6 | const axios = require('axios'); 7 | const Menu1 = ` 8 | 「 *🍁Link pannel🍁* 」 9 | 10 | 11 | ❍ *YouTube* 12 | y2u.be/mDnJ7q3S3eY 13 | 14 | ❍ *Web site* 15 | xtroid.ml 16 | 17 | ❍ *Blog* 18 | tinyurl.com/Bloglink12 19 | 20 | ❍ *Book Web* 21 | cutt.ly/9Qot6w2 22 | 23 | ❍ *Telegaram* 24 | ╚⦁⦁⦁ Main Group ╗ 25 | t.me/danuma01 26 | 27 | ╚⦁⦁⦁ A/L Channel ╗ 28 | t.me/alxams 29 | 30 | ╚⦁⦁⦁ O/L Channel ╗ 31 | t.me/olxams 32 | 33 | ╚⦁⦁⦁ Bot Channel ╗ 34 | t.me/danumabots 35 | 36 | ╚⦁⦁⦁ Mod Apps ╗ 37 | t.me/danuma 38 | 39 | ╚⦁⦁⦁ Film Channel ╗ 40 | t.me/films_SL_x 41 | 42 | ╚⦁⦁⦁ Play Games ╗ 43 | t.me/SLPlaygames 44 | 45 | ╚⦁⦁⦁ NXT binners ╗ 46 | t.me/nxtbinners 47 | 48 | ╚⦁⦁⦁ Cartoon World ╗ 49 | t.me/SL_Toons 50 | ` 51 | 52 | const Menu2 = ` 53 | 「 *🍁X-Troid Menu🍁* 」 54 | 55 | 56 | ➤ *N.G 01*🚀 57 | chat.whatsapp.com/Jm6pa5tkyz5HwqoMtWLS8z 58 | 59 | ➤ *N.G 02*🚀 60 | chat.whatsapp.com/Gu8CaPSCKqCG1EYiladH92 61 | 62 | ➤ *N.G 03*🚀 63 | chat.whatsapp.com/Lc3EUv1Bb0rLq3bRTbJBHu 64 | 65 | ➤ *N.G 04*🚀 66 | chat.whatsapp.com/HZYNN499UrcLQVz8fGyYUg 67 | 68 | ➤ *N.G 05*🚀 69 | chat.whatsapp.com/Lv9LGDw5zHZ8T3jg9gLynF 70 | 71 | ➤ *N.G 06*🚀 72 | chat.whatsapp.com/I8LuuciTGsDIKB7GTchDt6 73 | 74 | ➤ *N.G 07*🚀 75 | chat.whatsapp.com/H5mj9Y09y2f0DCeW2YtJTo 76 | 77 | _Please join only one group_ 78 | ` 79 | const Menu3 =` 80 | ⧏ 𝒍𝒂𝒔𝒊𝒚𝒂 / ⧐, [03.09.21 12:22] 81 | 「 *🪀WhatsApp Menu🪀* 」 82 | 83 | 84 | •━━━»» *W.G 01*««━━━• 85 | chat.whatsapp.com/JVEdzU42Qmw3KsOkBApTOM 86 | 87 | •━━━»» *W.G 02*««━━━• 88 | chat.whatsapp.com/K5niEonkgRiGqnkAxmdlVZ 89 | 90 | •━━━»» *W.G 03*««━━━• 91 | chat.whatsapp.com/DjG7hi3kL7mCzP9UwRe38m 92 | 93 | •━━━»» *W.G 04*««━━━• 94 | chat.whatsapp.com/DJzGuFUOXZOFRlG6APWR6a 95 | 96 | •━━━»» *W.G 05*««━━━• 97 | chat.whatsapp.com/FaPZBiAK37Y2my4RenHm5K 98 | 99 | •━━━»» *W.G 06*««━━━• 100 | chat.whatsapp.com/GsqFiZpJhC61zOIwmyrTD0 101 | 102 | •━━━»» *W.G 07*««━━━• 103 | chat.whatsapp.com/Fa0huMO87L77YzpHGYer6r 104 | 105 | •━━━»» *W.G 08*««━━━• 106 | chat.whatsapp.com/EQxMNwd8VNPEroqLn2sV6O 107 | 108 | •━━━»» *W.G 09*««━━━• 109 | chat.whatsapp.com/LSFUlNMigLu4FLYOXXfLBY 110 | 111 | •━━━»» *W.G 010*««━━━• 112 | chat.whatsapp.com/IfxHVuTiYqn7cmv7QjtNzE 113 | ` 114 | 115 | 116 | if (Config.WORKTYPE == 'private') { 117 | 118 | XTroid.addCMD({pattern: 'grp', fromMe: true,desc:'Get group link list', deleteCommand: false,}, (async (message, match) => { 119 | var lasiimg = await axios.get(`https://netfiletolink.herokuapp.com/30084`, { responseType: 'arraybuffer' }) 120 | var lasiimg2 = await axios.get(`https://telegra.ph/file/145ee2d4fb11363f72582.jpg`, { responseType: 'arraybuffer' }) 121 | var lasiimg3 = await axios.get(`https://telegra.ph/file/84800023135d94543132c.jpg`, { responseType: 'arraybuffer' }) 122 | 123 | 124 | await message.client.sendMessage(message.jid, Buffer.from(lasiimg.data), MessageType.video, {mimetype: Mimetype.gif, caption: Menu1}) 125 | await message.client.sendMessage(message.jid, Buffer.from(lasiimg2.data), MessageType.image, {mimetype: Mimetype.png, caption: Menu2}) 126 | await message.client.sendMessage(message.jid, Buffer.from(lasiimg3.data), MessageType.image, {mimetype: Mimetype.png, caption: Menu3}) 127 | 128 | })); 129 | } 130 | 131 | if (Config.WORKTYPE == 'public') { 132 | XTroid.addCMD({pattern: 'grp', fromMe: false, desc:'Get group link list',deleteCommand: false,}, (async (message, match) => { 133 | var lasiimg = await axios.get(`https://netfiletolink.herokuapp.com/30084`, { responseType: 'arraybuffer' }) 134 | var lasiimg2 = await axios.get(`https://telegra.ph/file/145ee2d4fb11363f72582.jpg`, { responseType: 'arraybuffer' }) 135 | var lasiimg3 = await axios.get(`https://telegra.ph/file/84800023135d94543132c.jpg`, { responseType: 'arraybuffer' }) 136 | 137 | await message.client.sendMessage(message.jid, Buffer.from(lasiimg.data), MessageType.video, {mimetype: Mimetype.gif, caption: Menu1}) 138 | await message.client.sendMessage(message.jid, Buffer.from(lasiimg2.data), MessageType.image, {mimetype: Mimetype.png, caption: Menu2}) 139 | await message.client.sendMessage(message.jid, Buffer.from(lasiimg3.data), MessageType.image, {mimetype: Mimetype.png, caption: Menu3}) 140 | })); 141 | 142 | XTroid.addCMD({pattern: 'grp', fromMe: true, desc:'Get group link list',deleteCommand: false,}, (async (message, match) => { 143 | var lasiimg = await axios.get(`https://netfiletolink.herokuapp.com/30084`, { responseType: 'arraybuffer' }) 144 | var lasiimg2 = await axios.get(`https://telegra.ph/file/145ee2d4fb11363f72582.jpg`, { responseType: 'arraybuffer' }) 145 | var lasiimg3 = await axios.get(`https://telegra.ph/file/84800023135d94543132c.jpg`, { responseType: 'arraybuffer' }) 146 | 147 | await message.client.sendMessage(message.jid, Buffer.from(lasiimg.data), MessageType.video, {mimetype: Mimetype.gif, caption: Menu1}) 148 | await message.client.sendMessage(message.jid, Buffer.from(lasiimg2.data), MessageType.image, {mimetype: Mimetype.png, caption: Menu2}) 149 | await message.client.sendMessage(message.jid, Buffer.from(lasiimg3.data), MessageType.image, {mimetype: Mimetype.png, caption: Menu3}) 150 | })); 151 | } 152 | -------------------------------------------------------------------------------- /plugins/voicy.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const ffmpeg = require('fluent-ffmpeg'); 3 | const fs = require('fs'); 4 | const { MessageType } = require('@adiwajshing/baileys'); 5 | const Language = require('../language'); 6 | const Lang = Language.getString('voicy'); 7 | const conf = require('../config'); 8 | 9 | 10 | const recognizeAudio = () => { 11 | 12 | const headers = new Headers({ 13 | 'Content-Type': 'audio/wav', 14 | "Authorization": `Bearer ${conf.WITAI_API}`, 15 | 'Cache-Control': 'no-cache', 16 | 'Transfer-Encoding': 'chunked' 17 | }) 18 | 19 | const requestBody = { 20 | method: "POST", 21 | body: fs.readFileSync('output.wav'), 22 | headers: headers 23 | } 24 | 25 | return fetch("https://api.wit.ai/speech?v=20200219", requestBody) 26 | .then(response => response.json()) 27 | .then(json => json._text) 28 | } 29 | 30 | const convertToWav = file => { 31 | return ffmpeg(file) 32 | .inputFormat('ogg') 33 | .audioCodec('pcm_s16le') 34 | .format('wav') 35 | .save('output.wav') 36 | } 37 | 38 | 39 | if (conf.WORKTYPE == 'private') { 40 | 41 | XTroid.addCMD({ pattern: 'voicy', desc: Lang.USAGE, fromMe: true }, (async (message, match) => { 42 | 43 | try { 44 | if (message.reply_message) { 45 | if (!message.reply_message.text && !message.reply_message.video && !message.reply_message.image) { 46 | const file = await message.client.downloadAndSaveMediaMessage({ 47 | key: { 48 | remoteJid: message.reply_message.jid, 49 | id: message.reply_message.id 50 | }, 51 | message: message.reply_message.data.quotedMessage 52 | }) 53 | 54 | 55 | convertToWav(file).on('end', async () => { 56 | const recognizedText = await recognizeAudio() 57 | 58 | await message.client.sendMessage(message.jid, Lang.TEXT + '```' + recognizedText + '```', MessageType.text) 59 | }); 60 | 61 | 62 | } else { 63 | await message.client.sendMessage(message.jid, Lang.ONLY_AUDIO, MessageType.text) 64 | 65 | } 66 | } else { 67 | await message.client.sendMessage(message.jid, Lang.NEED_REPLY, MessageType.text) 68 | 69 | } 70 | 71 | } catch (err) { 72 | console.log(err) 73 | } 74 | 75 | 76 | })); 77 | } 78 | if (conf.WORKTYPE == 'public') { 79 | 80 | XTroid.addCMD({ pattern: 'voicy', desc: Lang.USAGE, fromMe: false }, (async (message, match) => { 81 | 82 | try { 83 | if (message.reply_message) { 84 | if (!message.reply_message.text && !message.reply_message.video && !message.reply_message.image) { 85 | const file = await message.client.downloadAndSaveMediaMessage({ 86 | key: { 87 | remoteJid: message.reply_message.jid, 88 | id: message.reply_message.id 89 | }, 90 | message: message.reply_message.data.quotedMessage 91 | }) 92 | 93 | 94 | convertToWav(file).on('end', async () => { 95 | const recognizedText = await recognizeAudio() 96 | 97 | await message.client.sendMessage(message.jid, Lang.TEXT + '```' + recognizedText + '```', MessageType.text) 98 | }); 99 | 100 | 101 | } else { 102 | await message.client.sendMessage(message.jid, Lang.ONLY_AUDIO, MessageType.text) 103 | 104 | } 105 | } else { 106 | await message.client.sendMessage(message.jid, Lang.NEED_REPLY, MessageType.text) 107 | 108 | } 109 | 110 | } catch (err) { 111 | console.log(err) 112 | } 113 | 114 | 115 | })); 116 | XTroid.addCMD({ pattern: 'voicy', desc: Lang.USAGE, fromMe: true, dontAddCMDList: true }, (async (message, match) => { 117 | 118 | try { 119 | if (message.reply_message) { 120 | if (!message.reply_message.text && !message.reply_message.video && !message.reply_message.image) { 121 | const file = await message.client.downloadAndSaveMediaMessage({ 122 | key: { 123 | remoteJid: message.reply_message.jid, 124 | id: message.reply_message.id 125 | }, 126 | message: message.reply_message.data.quotedMessage 127 | }) 128 | 129 | 130 | convertToWav(file).on('end', async () => { 131 | const recognizedText = await recognizeAudio() 132 | 133 | await message.client.sendMessage(message.jid, Lang.TEXT + '```' + recognizedText + '```', MessageType.text) 134 | }); 135 | 136 | 137 | } else { 138 | await message.client.sendMessage(message.jid, Lang.ONLY_AUDIO, MessageType.text) 139 | 140 | } 141 | } else { 142 | await message.client.sendMessage(message.jid, Lang.NEED_REPLY, MessageType.text) 143 | 144 | } 145 | 146 | } catch (err) { 147 | console.log(err) 148 | } 149 | 150 | 151 | })); 152 | } 153 | -------------------------------------------------------------------------------- /plugins/screenshot.js: -------------------------------------------------------------------------------- 1 | /* 2 | */ 3 | 4 | const XTroid = require('../events'); 5 | const {MessageType, MessageOptions, Mimetype} = require('@adiwajshing/baileys'); 6 | const fs = require('fs'); 7 | const axios = require('axios'); 8 | const request = require('request'); 9 | const got = require("got"); 10 | const Config = require('../config'); 11 | 12 | const Language = require('../language'); 13 | const Lang = Language.getString('webss'); 14 | 15 | if (Config.WORKTYPE == 'private') { 16 | 17 | XTroid.addCMD({pattern: 'ss ?(.*)', fromMe: true, desc: Lang.SS_DESC}, (async (message, match) => { 18 | 19 | if (match[1] === '') return await message.sendMessage(Lang.LİNK); 20 | var r_text = new Array (); 21 | r_text[1] = "XMMMW7X-8BSM7NG-GD973EQ-SGQWPJM"; 22 | r_text[2] ="CYCJ53X-0RAM3A6-P2C3BG9-Z14QQP0"; 23 | r_text[3] ="TXKEYT0-4RYM2XC-J3TJ4S2-42FKSMQ"; 24 | r_text[4] ="BMSX72X-SK0M04Z-QBDDRE6-7W6A5ZT"; 25 | r_text[5] ="BTFHN7J-WWGMFHN-Q8QMMXT-N0ACH5N"; 26 | r_text[6] ="YBBC2A4-D3CMTYF-MHY3AQC-6NCQ7QR"; 27 | r_text[7] ="B9GZNNE-SV0M0RK-Q3PWHJ0-YB3YYVS"; 28 | r_text[8] ="RXK9KF3-SAK495G-G67QW4J-P715A46"; 29 | r_text[9] ="NF4PBZS-S7SM3R1-KX2J348-002QZT1"; 30 | r_text[10] ="VQEE26P-VKG4YVP-K0VKVYX-3RN70NG"; 31 | r_text[11] ="VCTSK5T-VCE4HC0-JWQ0C1F-AJYTHEC"; 32 | r_text[12] ="EFXCXXG-EBM4GDS-KAGG4EB-WEDMY9N"; 33 | r_text[13] ="81PQCEJ-5JK4TFP-J68KWZC-SQ9PZCS"; 34 | r_text[14] ="DCZXP8M-4SD4EJT-J4KBY7R-9B5F8GW"; 35 | r_text[15] ="MS5D51N-RXQM6JH-M12104F-RGW91D9"; 36 | r_text[16] ="D5FHWDB-RDS42AX-MRESW75-K0FS7Z5"; 37 | r_text[17] ="542ZAXP-XK946J5-GCDK8CF-NE5PECH"; 38 | r_text[18] ="3D7NRM7-6S8MTJB-QJM7XXW-DRKGXEM"; 39 | 40 | 41 | var i = Math.floor(19*Math.random()) 42 | 43 | 44 | 45 | var webimage = await axios.get(`https://shot.screenshotapi.net/screenshot?token=${r_text[i]}&url=${match[1]}&output=image&file_type=png&wait_for_event=load`, { responseType: 'arraybuffer' }) 46 | await message.sendMessage(Buffer.from(webimage.data), MessageType.image, {mimetype: Mimetype.jpg, caption: 'speed capt. by xtroid'}) 47 | 48 | })); 49 | } 50 | else if (Config.WORKTYPE == 'public') { 51 | 52 | XTroid.addCMD({pattern: 'ss ?(.*)', fromMe: false, desc: Lang.SS_DESC}, (async (message, match) => { 53 | 54 | if (match[1] === '') return await message.sendMessage(Lang.LİNK); 55 | var r_text = new Array (); 56 | r_text[1] = "XMMMW7X-8BSM7NG-GD973EQ-SGQWPJM"; 57 | r_text[2] ="CYCJ53X-0RAM3A6-P2C3BG9-Z14QQP0"; 58 | r_text[3] ="TXKEYT0-4RYM2XC-J3TJ4S2-42FKSMQ"; 59 | r_text[4] ="BMSX72X-SK0M04Z-QBDDRE6-7W6A5ZT"; 60 | r_text[5] ="BTFHN7J-WWGMFHN-Q8QMMXT-N0ACH5N"; 61 | r_text[6] ="YBBC2A4-D3CMTYF-MHY3AQC-6NCQ7QR"; 62 | r_text[7] ="B9GZNNE-SV0M0RK-Q3PWHJ0-YB3YYVS"; 63 | r_text[8] ="RXK9KF3-SAK495G-G67QW4J-P715A46"; 64 | r_text[9] ="NF4PBZS-S7SM3R1-KX2J348-002QZT1"; 65 | r_text[10] ="VQEE26P-VKG4YVP-K0VKVYX-3RN70NG"; 66 | r_text[11] ="VCTSK5T-VCE4HC0-JWQ0C1F-AJYTHEC"; 67 | r_text[12] ="EFXCXXG-EBM4GDS-KAGG4EB-WEDMY9N"; 68 | r_text[13] ="81PQCEJ-5JK4TFP-J68KWZC-SQ9PZCS"; 69 | r_text[14] ="DCZXP8M-4SD4EJT-J4KBY7R-9B5F8GW"; 70 | r_text[15] ="MS5D51N-RXQM6JH-M12104F-RGW91D9"; 71 | r_text[16] ="D5FHWDB-RDS42AX-MRESW75-K0FS7Z5"; 72 | r_text[17] ="542ZAXP-XK946J5-GCDK8CF-NE5PECH"; 73 | r_text[18] ="3D7NRM7-6S8MTJB-QJM7XXW-DRKGXEM"; 74 | 75 | 76 | var i = Math.floor(19*Math.random()) 77 | 78 | 79 | 80 | var webimage = await axios.get(`https://shot.screenshotapi.net/screenshot?token=${r_text[i]}&url=${match[1]}&output=image&file_type=png&wait_for_event=load`, { responseType: 'arraybuffer' }) 81 | await message.sendMessage(Buffer.from(webimage.data), MessageType.image, {mimetype: Mimetype.jpg, caption: 'speed capt. by xtroid'}) 82 | 83 | })); 84 | XTroid.addCMD({pattern: 'ss ?(.*)', fromMe: true, desc: Lang.SS_DESC, dontAddCMDList: true}, (async (message, match) => { 85 | 86 | if (match[1] === '') return await message.sendMessage(Lang.LİNK); 87 | var r_text = new Array (); 88 | r_text[1] = "XMMMW7X-8BSM7NG-GD973EQ-SGQWPJM"; 89 | r_text[2] ="CYCJ53X-0RAM3A6-P2C3BG9-Z14QQP0"; 90 | r_text[3] ="TXKEYT0-4RYM2XC-J3TJ4S2-42FKSMQ"; 91 | r_text[4] ="BMSX72X-SK0M04Z-QBDDRE6-7W6A5ZT"; 92 | r_text[5] ="BTFHN7J-WWGMFHN-Q8QMMXT-N0ACH5N"; 93 | r_text[6] ="YBBC2A4-D3CMTYF-MHY3AQC-6NCQ7QR"; 94 | r_text[7] ="B9GZNNE-SV0M0RK-Q3PWHJ0-YB3YYVS"; 95 | r_text[8] ="RXK9KF3-SAK495G-G67QW4J-P715A46"; 96 | r_text[9] ="NF4PBZS-S7SM3R1-KX2J348-002QZT1"; 97 | r_text[10] ="VQEE26P-VKG4YVP-K0VKVYX-3RN70NG"; 98 | r_text[11] ="VCTSK5T-VCE4HC0-JWQ0C1F-AJYTHEC"; 99 | r_text[12] ="EFXCXXG-EBM4GDS-KAGG4EB-WEDMY9N"; 100 | r_text[13] ="81PQCEJ-5JK4TFP-J68KWZC-SQ9PZCS"; 101 | r_text[14] ="DCZXP8M-4SD4EJT-J4KBY7R-9B5F8GW"; 102 | r_text[15] ="MS5D51N-RXQM6JH-M12104F-RGW91D9"; 103 | r_text[16] ="D5FHWDB-RDS42AX-MRESW75-K0FS7Z5"; 104 | r_text[17] ="542ZAXP-XK946J5-GCDK8CF-NE5PECH"; 105 | r_text[18] ="3D7NRM7-6S8MTJB-QJM7XXW-DRKGXEM"; 106 | 107 | 108 | var i = Math.floor(19*Math.random()) 109 | 110 | 111 | 112 | var webimage = await axios.get(`https://shot.screenshotapi.net/screenshot?token=${r_text[i]}&url=${match[1]}&output=image&file_type=png&wait_for_event=load`, { responseType: 'arraybuffer' }) 113 | await message.sendMessage(Buffer.from(webimage.data), MessageType.image, {mimetype: Mimetype.jpg, caption: 'speed capt. by xtroid'}) 114 | 115 | })); 116 | } 117 | 118 | -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | 2 | const { Sequelize } = require('sequelize'); 3 | const fs = require('fs'); 4 | if (fs.existsSync('config.env')) require('dotenv').config({ path: './config.env' }); 5 | 6 | 7 | function convertToBool(text, fault = 'true') { 8 | return text === fault ? true : false; 9 | } 10 | 11 | DATABASE_URL = process.env.DATABASE_URL === undefined ? './Xproject.db' : process.env.DATABASE_URL; 12 | DEBUG = process.env.DEBUG === undefined ? false : convertToBool(process.env.DEBUG); 13 | 14 | module.exports = { 15 | VERSION: '4.5 ADMIN', 16 | CCRUN: "zeks", 17 | GG:"Error 101", 18 | CHANNEL: 'https://t.me/danumabots', 19 | MENU_EMOJI: process.env.EMOJI === undefined ?'🔮' : process.env.EMOJI, 20 | DESC_EMOJI: process.env.DEMOJI === undefined ?'🪅' : process.env.DEMOJI, 21 | SONG_UP_TEXT: process.env.SONGUPMSG === undefined ?'🪅' : process.env.SONGUPMSG, 22 | SONG_DOWN_TEXT: process.env.SONGUPMSG === undefined ?'🪅' : process.env.SONDOWNMSG, 23 | MENUTEXT: process.env.MENU === undefined ?'Admin' : process.env.MENU, 24 | CMENUTEXT: process.env.CUSTOMLIST === undefined ?'' : process.env.CUSTOMLIST, 25 | MENU_IMAGE: process.env.MENUIMG === undefined ?'' : process.env.MENUIMG, 26 | CAPTION_KEY: process.env.CP === undefined ?' ⚜ X-Troid Pro ⚜' : process.env.CP, 27 | ALIVETEXT: process.env.ALIVEMSG === undefined ?'😈 Admin 😈' : process.env.ALIVEMSG, 28 | ALIVEIMG: process.env.ALIVEIMG === undefined ? 'https://telegra.ph/file/a143b34753c8434058e87.jpg' : process.env.ALIVEIMG, 29 | GIF_WEL: process.env.GIF_WEL === undefined ?'https://netfiletolink.herokuapp.com/49353' : process.env.GIF_WEL, 30 | GIF_BYE: process.env.GIF_BYE === undefined ?'https://webfilesdanuma.herokuapp.com/stream/14' : process.env.GIF_BYE, 31 | 32 | 33 | SESSION: process.env.A_XTROID_SESSION === undefined ? '' : process.env.A_XTROID_SESSION, 34 | ANTİLİNK: process.env.ANTİ_LİNK === undefined ? 'false' : process.env.ANTİ_LİNK, 35 | AUTOBİO: process.env.AUTO_BİO === undefined ? 'false' : process.env.AUTO_BİO, 36 | GANSTYLE: process.env.GAN_IMAGE === undefined ? 'https://telegra.ph/file/b11ff90ad6a02293fefaf.jpg' : process.env.GAN_IMAGE, 37 | BGMFILTER: process.env.BGM_FILTER === undefined ? false : convertToBool(process.env.BGM_FILTER), 38 | LANG: process.env.LANGUAGE === undefined ? 'TR' : process.env.LANGUAGE.toUpperCase(), 39 | 40 | KICKMEMSG: process.env.KICKME_MESSAGE === undefined ? 'default' : process.env.KICKME_MESSAGE, 41 | BLOCKCHAT: process.env.BLOCK_CHAT === undefined ? false : process.env.BLOCK_CHAT, 42 | ADDMSG: process.env.ADD_MESSAGE === undefined ? 'default' : process.env.ADD_MESSAGE, 43 | MUTEMSG: process.env.MUTE_MESSAGE === undefined ? 'default' : process.env.MUTE_MESSAGE, 44 | NOLOG: process.env.NO_LOG === undefined ? 'false' : process.env.NO_LOG, 45 | AILIZA: process.env.AI_LIZA === undefined ? 'false' : process.env.AI_LIZA, 46 | BLOCKMSG: process.env.BLOCK_MESSAGE === undefined ? 'default' : process.env.BLOCK_MESSAGE, 47 | UNBLOCKMSG: process.env.UNBLOCK_MESSAGE === undefined ? 'default' : process.env.UNBLOCK_MESSAGE, 48 | UNMUTEMSG: process.env.UNMUTE_MESSAGE === undefined ? 'default' : process.env.UNMUTE_MESSAGE, 49 | LOCKR: process.env.LOCKR === undefined ?'https://tinyurl.com/' : process.env.LOCKR, 50 | WORKTYPE: process.env.WORK_TYPE === undefined ? 'private' : process.env.WORK_TYPE, 51 | LOCK: process.env.LOCK === undefined ?'****' : process.env.LOCK, 52 | PROMOTEMSG: process.env.PROMOTE_MESSAGE === undefined ? 'default' : process.env.PROMOTE_MESSAGE, 53 | DEMOTEMSG: process.env.DEMOTE_MESSAGE === undefined ? 'default' : process.env.DEMOTE_MESSAGE, 54 | BANMSG: process.env.BAN_MESSAGE === undefined ? 'default' : process.env.BAN_MESSAGE, 55 | AFKMSG: process.env.AFK_MESSAGE === undefined ? 'default' : process.env.AFK_MESSAGE, 56 | HANDLERS: process.env.HANDLERS === undefined ? '^[.!;]' : process.env.HANDLERS, 57 | 58 | 59 | 60 | 61 | SEND_READ: process.env.SEND_READ === undefined ? false : convertToBool(process.env.SEND_READ), 62 | BRANCH: 'master', 63 | HEROKU: { 64 | HEROKU: process.env.HEROKU === undefined ? false : convertToBool(process.env.HEROKU), 65 | API_KEY: process.env.HEROKU_API_KEY === undefined ? '' : process.env.HEROKU_API_KEY, 66 | APP_NAME: process.env.HEROKU_APP_NAME === undefined ? '' : process.env.HEROKU_APP_NAME 67 | }, 68 | DATABASE_URL: DATABASE_URL, 69 | CCN: "Ikyy69", 70 | DATABASE: DATABASE_URL === './Xproject.db' ? new Sequelize({ dialect: "sqlite", storage: DATABASE_URL, logging: DEBUG }) : new Sequelize(DATABASE_URL, { dialectOptions: { ssl: { require: true, rejectUnauthorized: false } }, logging: DEBUG }), 71 | RBG_API_KEY: process.env.REMOVE_BG_API_KEY === undefined ? false : process.env.REMOVE_BG_API_KEY, 72 | NO_ONLINE: process.env.NO_ONLINE === undefined ? true : convertToBool(process.env.NO_ONLINE), 73 | SUDO: process.env.SUDO === undefined ? false : process.env.SUDO, 74 | DEBUG: DEBUG, 75 | COFFEEHOUSE_API_KEY: process.env.COFFEEHOUSE_API_KEY === undefined ? false : process.env.COFFEEHOUSE_API_KEY, 76 | WITAI_API: "TEYMELA6DMC4XB5YM3SPTTQWUUIBKURG", 77 | ON: "hunter", 78 | 79 | 80 | 81 | SUPPORT: "94702102324-1616997271", 82 | SUPPORT2:"94702102324-1619710622", 83 | SUPPORT3:"94702102324-1623132102", 84 | G1:"94758258917-1538284375", 85 | G2:"94758258917-1553586710", 86 | G3:"94758258917-1563444031", 87 | G4:"94758258917-1563796118", 88 | G5:"94758258917-1574127271", 89 | G6:"94758258917-1577356855", 90 | G7:"94702102324-1606916704", 91 | G8:"94702102324-1612721726", 92 | G9:"94702102324-1623072392", 93 | G10:"94702102324-1623072431", 94 | NWS1:"94702102324-1616483925", 95 | NWS2:"94702102324-1621503960", 96 | NWS3:"94702102324-1624633291" 97 | }; 98 | 99 | 100 | -------------------------------------------------------------------------------- /plugins/npk.js: -------------------------------------------------------------------------------- 1 | 2 | const XTroid = require('../events'); 3 | const {MessageType, MessageOptions} = require('@adiwajshing/baileys'); 4 | const config = require('../config') 5 | const desc_msg = "X-Troid Logo colection" 6 | const need = "*type some word after command*\n*විධානයට පසුව වචනයක් ලියන්න" 7 | 8 | if (config.WORKTYPE == 'private') { 9 | XTroid.addCMD({pattern: 'npack', fromMe: true, desc: desc_msg}, (async (message, match) => { 10 | var t1 = 'Club light Logo.' 11 | var t2 = 'Green Light Icon' 12 | var t3 = 'Steel Effect' 13 | var t4 = 'Xmas Effect' 14 | var t5 = 'Cloud Logo.' 15 | var t6 = 'Blood Themed Logo' 16 | var t7 = 'Toxic Themed Logos.' 17 | var t8 = 'Another Blood Themed Logo' 18 | var t9 = 'Carbon Effect' 19 | var t10 = 'Lux Effect logo' 20 | var t11 = 'Gold & Lether Logo.' 21 | 22 | 23 | var usage_cmd = '🍀 *උදා :* ' 24 | var command_cmd = '👑 *විධානය :* ' 25 | var desc_cmd = '🌸*විස්තරය :* ' 26 | 27 | const msg = command_cmd + '```.nclub``` \n' + desc_cmd + t1 + '_\n' + usage_cmd + '*.nclub Xtroid*\n\n' + 28 | command_cmd + '```.ngreen``` \n' + desc_cmd + t2 + '_\n' + usage_cmd + '*.ngreenLasiya*\n\n' + 29 | command_cmd + '```.nsteel```\n' + desc_cmd + t3 + '_\n' + usage_cmd + '*.nsteel Xtroid*\n\n' + 30 | command_cmd + '```.nxms``` \n' + desc_cmd + t4 + '_\n' + usage_cmd + '*.nxms Xtroid*\n\n' + 31 | command_cmd + '```.ncloud``` \n' + desc_cmd + t5 + '_\n' + usage_cmd + '*.ncloud Xtroid*\n\n' + 32 | command_cmd + '```.nblood``` \n' + desc_cmd + t6 + '_\n' + usage_cmd + '*.nblood Xtroid*\n\n' + 33 | command_cmd + '```.ntoxic``` \n' + desc_cmd + t7 + '_\n' + usage_cmd + '*.ntoxic Xtroid*\n\n' + 34 | command_cmd + '```.n2bld``` \n' + desc_cmd + t8 + '_\n' + usage_cmd + '*.n2bld Xtroid*\n\n' + 35 | command_cmd + '```.ncarb``` \n' + desc_cmd + t9 + '_\n' + usage_cmd + '*.ncarb Xtroid,Lasiya*\n\n' + 36 | command_cmd + '```.nlux``` \n' + desc_cmd + t10 + '_\n' + usage_cmd + '*.nlux Xtroid*\n\n' + 37 | command_cmd + '```.ngold``` \n' + desc_cmd + t11 + '_\n' + usage_cmd + '*.ngold Xtroid*\n\n' 38 | 39 | 40 | 41 | await message.client.sendMessage(message.jid,msg, MessageType.text) 42 | })); 43 | } 44 | 45 | else if (config.WORKTYPE == 'public') { 46 | XTroid.addCMD({pattern: 'npack', fromMe: false, desc: desc_msg}, (async (message, match) => { 47 | var t1 = 'Club light Logo.' 48 | var t2 = 'Green Light Icon' 49 | var t3 = 'Steel Effect' 50 | var t4 = 'Xmas Effect' 51 | var t5 = 'Cloud Logo.' 52 | var t6 = 'Blood Themed Logo' 53 | var t7 = 'Toxic Themed Logos.' 54 | var t8 = 'Another Blood Themed Logo' 55 | var t9 = 'Carbon Effect' 56 | var t10 = 'Lux Effect logo' 57 | var t11 = 'Gold & Lether Logo.' 58 | 59 | 60 | var usage_cmd = '🍀 *උදා :* ' 61 | var command_cmd = '👑 *විධානය :* ' 62 | var desc_cmd = '🌸*විස්තරය :* ' 63 | 64 | const msg = command_cmd + '```.nclub``` \n' + desc_cmd + t1 + '_\n' + usage_cmd + '*.nclub Xtroid*\n\n' + 65 | command_cmd + '```.ngreen``` \n' + desc_cmd + t2 + '_\n' + usage_cmd + '*.ngreenLasiya*\n\n' + 66 | command_cmd + '```.nsteel```\n' + desc_cmd + t3 + '_\n' + usage_cmd + '*.nsteel Xtroid*\n\n' + 67 | command_cmd + '```.nxms``` \n' + desc_cmd + t4 + '_\n' + usage_cmd + '*.nxms Xtroid*\n\n' + 68 | command_cmd + '```.ncloud``` \n' + desc_cmd + t5 + '_\n' + usage_cmd + '*.ncloud Xtroid*\n\n' + 69 | command_cmd + '```.nblood``` \n' + desc_cmd + t6 + '_\n' + usage_cmd + '*.nblood Xtroid*\n\n' + 70 | command_cmd + '```.ntoxic``` \n' + desc_cmd + t7 + '_\n' + usage_cmd + '*.ntoxic Xtroid*\n\n' + 71 | command_cmd + '```.n2bld``` \n' + desc_cmd + t8 + '_\n' + usage_cmd + '*.n2bld Xtroid*\n\n' + 72 | command_cmd + '```.ncarb``` \n' + desc_cmd + t9 + '_\n' + usage_cmd + '*.ncarb Xtroid,Lasiya*\n\n' + 73 | command_cmd + '```.nlux``` \n' + desc_cmd + t10 + '_\n' + usage_cmd + '*.nlux Xtroid*\n\n' + 74 | command_cmd + '```.ngold``` \n' + desc_cmd + t11 + '_\n' + usage_cmd + '*.ngold Xtroid*\n\n' 75 | 76 | 77 | 78 | await message.client.sendMessage(message.jid,msg, MessageType.text) 79 | })); 80 | XTroid.addCMD({pattern: 'npack', fromMe: true, desc: desc_msg}, (async (message, match) => { 81 | var t1 = 'Club light Logo.' 82 | var t2 = 'Green Light Icon' 83 | var t3 = 'Steel Effect' 84 | var t4 = 'Xmas Effect' 85 | var t5 = 'Cloud Logo.' 86 | var t6 = 'Blood Themed Logo' 87 | var t7 = 'Toxic Themed Logos.' 88 | var t8 = 'Another Blood Themed Logo' 89 | var t9 = 'Carbon Effect' 90 | var t10 = 'Lux Effect logo' 91 | var t11 = 'Gold & Lether Logo.' 92 | 93 | 94 | var usage_cmd = '🍀 *උදා :* ' 95 | var command_cmd = '👑 *විධානය :* ' 96 | var desc_cmd = '🌸*විස්තරය :* ' 97 | 98 | const msg = command_cmd + '```.nclub``` \n' + desc_cmd + t1 + '_\n' + usage_cmd + '*.nclub Xtroid*\n\n' + 99 | command_cmd + '```.ngreen``` \n' + desc_cmd + t2 + '_\n' + usage_cmd + '*.ngreenLasiya*\n\n' + 100 | command_cmd + '```.nsteel```\n' + desc_cmd + t3 + '_\n' + usage_cmd + '*.nsteel Xtroid*\n\n' + 101 | command_cmd + '```.nxms``` \n' + desc_cmd + t4 + '_\n' + usage_cmd + '*.nxms Xtroid*\n\n' + 102 | command_cmd + '```.ncloud``` \n' + desc_cmd + t5 + '_\n' + usage_cmd + '*⚜️VIP⚜️*\n\n' + 103 | command_cmd + '```.nblood``` \n' + desc_cmd + t6 + '_\n' + usage_cmd + '*⚜️VIP⚜️*\n\n' + 104 | command_cmd + '```.ntoxic``` \n' + desc_cmd + t7 + '_\n' + usage_cmd + '*⚜️VIP⚜️*\n\n' + 105 | command_cmd + '```.n2bld``` \n' + desc_cmd + t8 + '_\n' + usage_cmd + '*⚜️VIP⚜️*\n\n' + 106 | command_cmd + '```.ncarb``` \n' + desc_cmd + t9 + '_\n' + usage_cmd + '*⚜️VIP⚜️*\n\n' + 107 | command_cmd + '```.nlux``` \n' + desc_cmd + t10 + '_\n' + usage_cmd + '*⚜️VIP⚜️*\n\n' + 108 | command_cmd + '```.ngold``` \n' + desc_cmd + t11 + '_\n' + usage_cmd + '*⚜️VIP⚜️*\n\n' 109 | 110 | 111 | 112 | await message.client.sendMessage(message.jid,msg, MessageType.text) 113 | })); 114 | } 115 | 116 | 117 | 118 | -------------------------------------------------------------------------------- /plugins/log.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const { MessageType, Mimetype, GroupSettingChange, MessageOptions } = require('@adiwajshing/baileys'); 3 | const dil = require('axios'); 4 | const fs = require('fs'); 5 | const ffmpeg = require('fluent-ffmpeg'); 6 | const {execFile} = require('child_process'); 7 | 8 | const Language = require('../language'); 9 | const Lang = Language.getString('log'); 10 | 11 | XTroid.addCMD({ pattern: 'log', fromMe: true, desc: Lang.LOG, warn: Lang.ANIM, onlyGroup: true}, (async (message, match) => { 12 | 13 | const meta = await message.client.groupMetadata(message.jid) 14 | const usmeta = message.client.isOnWhatsApp(message.jid) 15 | 16 | if (message.jid.includes('-')) { 17 | if (!message.reply_message) { 18 | return await message.client.sendMessage( 19 | message.jid, 20 | Lang.REPLY, 21 | MessageType.text 22 | ); 23 | } 24 | else if (message.reply_message.text) { 25 | await message.client.sendMessage( 26 | message.client.user.jid, 27 | Lang.HEAD + meta.id + Lang.FROM + 'wa.me/' + message.reply_message.jid.split('@')[0] + Lang.USER + Lang.MSG + message.reply_message.text, 28 | MessageType.text 29 | ); 30 | await message.client.sendMessage( 31 | message.jid, 32 | Lang.SUC, 33 | MessageType.text, 34 | ); 35 | } 36 | else if (message.reply_message.image) { 37 | var location = await message.client.downloadAndSaveMediaMessage({ 38 | key: { 39 | remoteJid: message.reply_message.jid, 40 | id: message.reply_message.id 41 | }, 42 | message: message.reply_message.data.quotedMessage 43 | }); 44 | ffmpeg(location) 45 | .save('im.jpg') 46 | .on('end', async () => { 47 | await message.client.sendMessage( 48 | message.client.user.jid, 49 | fs.readFileSync('im.jpg'), 50 | MessageType.image, 51 | { caption: Lang.HEAD + meta.id + Lang.FROM + 'wa.me/' + message.reply_message.jid.split('@')[0] + Lang.USER } 52 | ); 53 | await message.client.sendMessage( 54 | message.jid, 55 | Lang.SUC, 56 | MessageType.text, 57 | ); 58 | }); 59 | } 60 | else if (message.reply_message.video) { 61 | var location = await message.client.downloadAndSaveMediaMessage({ 62 | key: { 63 | remoteJid: message.reply_message.jid, 64 | id: message.reply_message.id 65 | }, 66 | message: message.reply_message.data.quotedMessage 67 | }); 68 | ffmpeg(location) 69 | .save('vid.mp4') 70 | .on('end', async () => { 71 | await message.client.sendMessage( 72 | message.client.user.jid, 73 | fs.readFileSync('vid.mp4'), 74 | MessageType.video, 75 | { mimetype: Mimetype.mpeg, caption: Lang.HEAD + meta.id + Lang.FROM + 'wa.me/' + message.reply_message.jid.split('@')[0] + Lang.USER } 76 | ); 77 | await message.client.sendMessage( 78 | message.jid, 79 | Lang.SUC, 80 | MessageType.text, 81 | ); 82 | }); 83 | } 84 | else if (!message.reply_message.text && !message.reply_message.video && !message.reply_message.sticker && !message.reply_message.image) { 85 | var location = await message.client.downloadAndSaveMediaMessage({ 86 | key: { 87 | remoteJid: message.reply_message.jid, 88 | id: message.reply_message.id 89 | }, 90 | message: message.reply_message.data.quotedMessage 91 | }); 92 | ffmpeg(location) 93 | .save('ad.mp3') 94 | .on('end', async () => { 95 | await message.client.sendMessage( 96 | message.client.user.jid, 97 | fs.readFileSync('ad.mp3'), 98 | MessageType.audio, 99 | { mimetype: Mimetype.mp4Audio} 100 | ); 101 | await message.client.sendMessage( 102 | message.client.user.jid, 103 | Lang.HEAD + meta.id + Lang.FROM + 'wa.me/' + message.reply_message.jid.split('@')[0] + Lang.USER, 104 | MessageType.text 105 | ); 106 | await message.client.sendMessage( 107 | message.jid, 108 | Lang.SUC, 109 | MessageType.text, 110 | ); 111 | }); 112 | } 113 | else { 114 | var location = await message.client.downloadAndSaveMediaMessage({ 115 | key: { 116 | remoteJid: message.reply_message.jid, 117 | id: message.reply_message.id 118 | }, 119 | message: message.reply_message.data.quotedMessage 120 | }); 121 | ffmpeg(location) 122 | .save('log.webp') 123 | .on('end', async () => { 124 | await message.client.sendMessage( 125 | message.client.user.jid, 126 | fs.readFileSync('log.webp'), 127 | MessageType.sticker 128 | ); 129 | await message.client.sendMessage( 130 | message.client.user.jid, 131 | Lang.HEAD + meta.id + Lang.FROM + 'wa.me/' + message.reply_message.jid.split('@')[0] + Lang.USER, 132 | MessageType.text 133 | ); 134 | await message.client.sendMessage( 135 | message.jid, 136 | Lang.SUC, 137 | MessageType.text, 138 | ); 139 | }); 140 | } 141 | } 142 | else if (!message.jid.includes('-')) { 143 | return; 144 | } 145 | })); 146 | -------------------------------------------------------------------------------- /plugins/afk.js: -------------------------------------------------------------------------------- 1 | /*# Exclusively from danuma project 2 | # Do not use this fore any commercial thing 3 | # If you abuse thais bot we wil kick you from bot 4 | # Do not edit (Respect to the Devaoloper) 5 | # All rights reserved ©Lasiya @lasiya99X t.me/lasiya99X 6 | # Get more about devaoloper https://lasiya.mlcy 7 | */ 8 | 9 | const XTroid = require('../events'); 10 | const {MessageType} = require('@adiwajshing/baileys'); 11 | const Config = require('../config'); 12 | 13 | const Language = require('../language'); 14 | const Lang = Language.getString('afk'); 15 | 16 | var AFK = { 17 | isAfk: false, 18 | reason: false, 19 | lastseen: 0 20 | }; 21 | 22 | // https://stackoverflow.com/a/37096512 23 | function secondsToHms(d) { 24 | d = Number(d); 25 | var h = Math.floor(d / 3600); 26 | var m = Math.floor(d % 3600 / 60); 27 | var s = Math.floor(d % 3600 % 60); 28 | 29 | var hDisplay = h > 0 ? h + (h == 1 ? " " + Lang.HOUR + ", " : " " + Lang.HOUR + ", ") : ""; 30 | var mDisplay = m > 0 ? m + (m == 1 ? " " + Lang.MINUTE + ", " : " " + Lang.MINUTE + ", ") : ""; 31 | var sDisplay = s > 0 ? s + (s == 1 ? " " + Lang.SECOND : " " + Lang.SECOND) : ""; 32 | return hDisplay + mDisplay + sDisplay; 33 | } 34 | 35 | XTroid.addCMD({on: 'text', fromMe: false, deleteCommand: false}, (async (message, match) => { 36 | if (Config.AFKMSG == 'default') { 37 | 38 | if (AFK.isAfk && ((!message.jid.includes('-')) || (message.jid.includes('-') && 39 | (( message.mention !== false && message.mention.length !== 0 ) || message.reply_message !== false)))) { 40 | if (message.jid.includes('-') && (message.mention !== false && message.mention.length !== 0)) { 41 | message.mention.map(async (jid) => { 42 | if (message.client.user.jid.split('@')[0] === jid.split('@')[0]) { 43 | await message.client.sendMessage(message.jid,Lang.AFK_TEXT + '\n' + 44 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 45 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 46 | } 47 | }) 48 | } else if (message.jid.includes('-') && message.reply_message !== false) { 49 | if (message.reply_message.jid.split('@')[0] === message.client.user.jid.split('@')[0]) { 50 | await message.client.sendMessage(message.jid,Lang.AFK_TEXT + '\n' + 51 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 52 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 53 | } 54 | } else { 55 | await message.client.sendMessage(message.jid,Lang.AFK_TEXT + '\n' + 56 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 57 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 58 | } 59 | } 60 | } 61 | else { 62 | if (AFK.isAfk && ((!message.jid.includes('-')) || (message.jid.includes('-') && 63 | (( message.mention !== false && message.mention.length !== 0 ) || message.reply_message !== false)))) { 64 | if (message.jid.includes('-') && (message.mention !== false && message.mention.length !== 0)) { 65 | message.mention.map(async (jid) => { 66 | if (message.client.user.jid.split('@')[0] === jid.split('@')[0]) { 67 | await message.client.sendMessage(message.jid,Config.AFKMSG + '\n' + 68 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 69 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 70 | } 71 | }) 72 | } else if (message.jid.includes('-') && message.reply_message !== false) { 73 | if (message.reply_message.jid.split('@')[0] === message.client.user.jid.split('@')[0]) { 74 | await message.client.sendMessage(message.jid,Config.AFKMSG + '\n' + 75 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 76 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 77 | } 78 | } else { 79 | await message.client.sendMessage(message.jid,Config.AFKMSG + '\n' + 80 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 81 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 82 | } 83 | } 84 | } 85 | })); 86 | 87 | XTroid.addCMD({on: 'text', fromMe: true, deleteCommand: false}, (async (message, match) => { 88 | if (AFK.isAfk && !message.id.startsWith('3EB0')) { 89 | AFK.lastseen = 0; 90 | AFK.reason = false; 91 | AFK.isAfk = false; 92 | 93 | await message.client.sendMessage(message.jid,Lang.IM_NOT_AFK,MessageType.text); 94 | } 95 | })); 96 | 97 | XTroid.addCMD({pattern: 'afk ?(.*)', fromMe: true, deleteCommand: false, desc: Lang.AFK_DESC}, (async (message, match) => { 98 | if (!AFK.isAfk) { 99 | AFK.lastseen = Math.round((new Date()).getTime() / 1000); 100 | if (match[1] !== '') { AFK.reason = match[1]; } 101 | AFK.isAfk = true; 102 | 103 | await message.client.sendMessage(message.jid,Lang.IM_AFK + (AFK.reason !== false ? ('\n*' + Lang.REASON +':* ```' + AFK.reason + '```') : ''),MessageType.text); 104 | } 105 | })); 106 | 107 | module.exports = { secondsToHms }; 108 | -------------------------------------------------------------------------------- /plugins/movie.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const { MessageType, MessageOptions, Mimetype } = require('@adiwajshing/baileys'); 3 | const got = require('got'); 4 | const Config = require('../config'); 5 | const axios = require('axios'); 6 | const fs = require('fs') 7 | // 8 | 9 | if (Config.WORKTYPE == 'private') { 10 | XTroid.addCMD({ pattern: 'movie ?(.*)', fromMe: true, desc: "Shows movie info." }, (async (message, match) => { 11 | if (match[1] === '') return await message.client.sendMessage(message.jid, '```Give me a name.```', MessageType.text, { quoted: message.data }); 12 | let url = `http://www.omdbapi.com/?apikey=742b2d09&t=${match[1]}&plot=full` 13 | const response = await got(url); 14 | const lasijson = JSON.parse(response.body); 15 | if (lasijson.Response != 'True') return await message.client.sendMessage(message.jid, '*Not found.*', MessageType.text, { quoted: message.data }); 16 | let msg = ''; 17 | msg += '*🎞Title*\n' + '```' + lasijson.Title + '```' + '\n\n'; 18 | msg += '*🏷Year*\n' + '```' + lasijson.Year + '```' + '\n\n'; 19 | msg += '*⭐️Rated*\n' + '```' + lasijson.Rated + '```' + '\n\n'; 20 | msg += '*🎁Released*\n' + '```' + lasijson.Released + '```' + '\n\n'; 21 | msg += '*🕐Runtime*\n' + '```' + lasijson.Runtime + '```' + '\n\n'; 22 | msg += '*🎈Genre*\n' + '```' + lasijson.Genre + '```' + '\n\n'; 23 | msg += '*📽Director*\n' + '```' + lasijson.Director + '```' + '\n\n'; 24 | msg += '*📃Writer*\n' + '```' + lasijson.Writer + '```' + '\n\n'; 25 | msg += '*🦸🏻‍♂️Actors*\n' + '```' + lasijson.Actors + '```' + '\n\n'; 26 | msg += '*👀Plot*\n' + '```' + lasijson.Plot + '```' + '\n\n'; 27 | msg += '*💬Language*\n' + '```' + lasijson.Language + '```' + '\n\n'; 28 | msg += '*🏳️‍🌈Country*\n' + '```' + lasijson.Country + '```' + '\n\n'; 29 | msg += '*🏆Awards*\n' + '```' + lasijson.Awards + '```' + '\n\n'; 30 | msg += '*💵BoxOffice*\n' + '```' + lasijson.BoxOffice + '```' + '\n\n'; 31 | msg += '*🎬Production*\n' + '```' + lasijson.Production + '```' + '\n\n'; 32 | msg += '*🧚🏻‍♀️imdbRating*\n' + '```' + lasijson.imdbRating + '```' + '\n\n'; 33 | msg += '*👌🏻imdbVotes*\n' + '```' + lasijson.imdbVotes + '```' + '\n'; 34 | 35 | var lasiimage = await axios.get(`https://telegra.ph/file/ea34e463b6d09d967c063.jpg`, { responseType: 'arraybuffer' }) 36 | 37 | await message.client.sendMessage(message.jid, Buffer.from(lasiimage.data), MessageType.image, {mimetype: Mimetype.png, caption: msg }); 38 | })); 39 | } 40 | 41 | else if (Config.WORKTYPE == 'public') { 42 | 43 | XTroid.addCMD({ pattern: 'movie ?(.*)', fromMe: false, desc: "Shows movie info." }, (async (message, match) => { 44 | if (match[1] === '') return await message.client.sendMessage(message.jid, '```Give me a name.```', MessageType.text, { quoted: message.data }); 45 | let url = `http://www.omdbapi.com/?apikey=742b2d09&t=${match[1]}&plot=full` 46 | const response = await got(url); 47 | const lasijson = JSON.parse(response.body); 48 | if (lasijson.Response != 'True') return await message.client.sendMessage(message.jid, '*Not found.*', MessageType.text, { quoted: message.data }); 49 | let msg = ''; 50 | msg += '*🎞Title*\n' + '```' + lasijson.Title + '```' + '\n\n'; 51 | msg += '*🏷Year*\n' + '```' + lasijson.Year + '```' + '\n\n'; 52 | msg += '*⭐️Rated*\n' + '```' + lasijson.Rated + '```' + '\n\n'; 53 | msg += '*🎁Released*\n' + '```' + lasijson.Released + '```' + '\n\n'; 54 | msg += '*🕐Runtime*\n' + '```' + lasijson.Runtime + '```' + '\n\n'; 55 | msg += '*🎈Genre*\n' + '```' + lasijson.Genre + '```' + '\n\n'; 56 | msg += '*📽Director*\n' + '```' + lasijson.Director + '```' + '\n\n'; 57 | msg += '*📃Writer*\n' + '```' + lasijson.Writer + '```' + '\n\n'; 58 | msg += '*🦸🏻‍♂️Actors*\n' + '```' + lasijson.Actors + '```' + '\n\n'; 59 | msg += '*👀Plot*\n' + '```' + lasijson.Plot + '```' + '\n\n'; 60 | msg += '*💬Language*\n' + '```' + lasijson.Language + '```' + '\n\n'; 61 | msg += '*🏳️‍🌈Country*\n' + '```' + lasijson.Country + '```' + '\n\n'; 62 | msg += '*🏆Awards*\n' + '```' + lasijson.Awards + '```' + '\n\n'; 63 | msg += '*💵BoxOffice*\n' + '```' + lasijson.BoxOffice + '```' + '\n\n'; 64 | msg += '*🎬Production*\n' + '```' + lasijson.Production + '```' + '\n\n'; 65 | msg += '*🧚🏻‍♀️imdbRating*\n' + '```' + lasijson.imdbRating + '```' + '\n\n'; 66 | msg += '*👌🏻imdbVotes*\n' + '```' + lasijson.imdbVotes + '```' + '\n'; 67 | 68 | var lasiimage = await axios.get(`https://telegra.ph/file/ea34e463b6d09d967c063.jpg`, { responseType: 'arraybuffer' }) 69 | 70 | await message.client.sendMessage(message.jid, Buffer.from(lasiimage.data), MessageType.image, {mimetype: Mimetype.png, caption: msg }); 71 | })); 72 | 73 | 74 | 75 | 76 | XTroid.addCMD({ pattern: 'movie ?(.*)', fromMe: true, dontAddCMDList: true }, (async (message, match) => { 77 | if (match[1] === '') return await message.client.sendMessage(message.jid, '```Give me a name.```', MessageType.text, { quoted: message.data }); 78 | let url = `http://www.omdbapi.com/?apikey=742b2d09&t=${match[1]}&plot=full` 79 | const response = await got(url); 80 | const lasijson = JSON.parse(response.body); 81 | if (lasijson.Response != 'True') return await message.client.sendMessage(message.jid, '*Not found.*', MessageType.text, { quoted: message.data }); 82 | let msg = ''; 83 | msg += '*🎞Title*\n' + '```' + lasijson.Title + '```' + '\n\n'; 84 | msg += '*🏷Year*\n' + '```' + lasijson.Year + '```' + '\n\n'; 85 | msg += '*⭐️Rated*\n' + '```' + lasijson.Rated + '```' + '\n\n'; 86 | msg += '*🎁Released*\n' + '```' + lasijson.Released + '```' + '\n\n'; 87 | msg += '*🕐Runtime*\n' + '```' + lasijson.Runtime + '```' + '\n\n'; 88 | msg += '*🎈Genre*\n' + '```' + lasijson.Genre + '```' + '\n\n'; 89 | msg += '*📽Director*\n' + '```' + lasijson.Director + '```' + '\n\n'; 90 | msg += '*📃Writer*\n' + '```' + lasijson.Writer + '```' + '\n\n'; 91 | msg += '*🦸🏻‍♂️Actors*\n' + '```' + lasijson.Actors + '```' + '\n\n'; 92 | msg += '*👀Plot*\n' + '```' + lasijson.Plot + '```' + '\n\n'; 93 | msg += '*💬Language*\n' + '```' + lasijson.Language + '```' + '\n\n'; 94 | msg += '*🏳️‍🌈Country*\n' + '```' + lasijson.Country + '```' + '\n\n'; 95 | msg += '*🏆Awards*\n' + '```' + lasijson.Awards + '```' + '\n\n'; 96 | msg += '*💵BoxOffice*\n' + '```' + lasijson.BoxOffice + '```' + '\n\n'; 97 | msg += '*🎬Production*\n' + '```' + lasijson.Production + '```' + '\n\n'; 98 | msg += '*🧚🏻‍♀️imdbRating*\n' + '```' + lasijson.imdbRating + '```' + '\n\n'; 99 | msg += '*👌🏻imdbVotes*\n' + '```' + lasijson.imdbVotes + '```' + '\n'; 100 | 101 | var lasiimage = await axios.get(`https://telegra.ph/file/ea34e463b6d09d967c063.jpg`, { responseType: 'arraybuffer' }) 102 | 103 | await message.client.sendMessage(message.jid, Buffer.from(lasiimage.data), MessageType.image, {mimetype: Mimetype.png, caption: msg }); 104 | })); 105 | } 106 | -------------------------------------------------------------------------------- /plugins/stickers.js: -------------------------------------------------------------------------------- 1 | const XTroid = require('../events'); 2 | const {MessageType, Mimetype} = require('@adiwajshing/baileys'); 3 | const fs = require('fs'); 4 | const ffmpeg = require('fluent-ffmpeg'); 5 | const {execFile} = require('child_process'); 6 | const cwebp = require('cwebp-bin'); 7 | const Config = require('../config'); 8 | 9 | const Language = require('../language'); 10 | const Lang = Language.getString('sticker'); 11 | 12 | if (Config.WORKTYPE == 'private') { 13 | XTroid.addCMD({pattern: 'sticker$', fromMe: true, desc: Lang.STICKER_DESC}, (async (message, match) => { 14 | 15 | if (message.reply_message === false) return await message.client.sendMessage(message.jid,Lang.NEED_REPLY, MessageType.text); 16 | var downloading = await message.client.sendMessage(message.jid,Lang.DOWNLOADING,MessageType.text); 17 | var location = await message.client.downloadAndSaveMediaMessage({ 18 | key: { 19 | remoteJid: message.reply_message.jid, 20 | id: message.reply_message.id 21 | }, 22 | message: message.reply_message.data.quotedMessage 23 | }); 24 | 25 | if (message.reply_message.video === false && message.reply_message.image) { 26 | ffmpeg(location) 27 | .outputOptions(["-y", "-vcodec libwebp"]) 28 | .videoFilters('scale=600:600:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=600:600:(ow-iw)/2:(oh-ih)/2:color=#00000000,setsar=1') 29 | .save('st.webp') 30 | .on('end', async () => { 31 | await message.sendMessage(fs.readFileSync('st.webp'), MessageType.sticker); 32 | }); 33 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 34 | 35 | } 36 | 37 | ffmpeg(location) 38 | .outputOptions(["-y", "-vcodec libwebp", "-lossless 1", "-qscale 1", "-preset default", "-loop 0", "-an", "-vsync 0", "-s 600x600"]) 39 | .videoFilters('scale=600:600:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=600:600:(ow-iw)/2:(oh-ih)/2:color=#00000000,setsar=1') 40 | .save('sticker.webp') 41 | .on('end', async () => { 42 | await message.sendMessage(fs.readFileSync('sticker.webp'), MessageType.sticker); 43 | }); 44 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 45 | })); 46 | } 47 | else if (Config.WORKTYPE == 'public') { 48 | 49 | XTroid.addCMD({pattern: 'sticker$', fromMe: false, desc: Lang.STICKER_DESC}, (async (message, match) => { 50 | 51 | if (message.reply_message === false) return await message.client.sendMessage(message.jid,Lang.NEED_REPLY, MessageType.text); 52 | var downloading = await message.client.sendMessage(message.jid,Lang.DOWNLOADING,MessageType.text); 53 | var location = await message.client.downloadAndSaveMediaMessage({ 54 | key: { 55 | remoteJid: message.reply_message.jid, 56 | id: message.reply_message.id 57 | }, 58 | message: message.reply_message.data.quotedMessage 59 | }); 60 | 61 | if (message.reply_message.video === false && message.reply_message.image) { 62 | ffmpeg(location) 63 | .outputOptions(["-y", "-vcodec libwebp"]) 64 | .videoFilters('scale=600:600:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=600:600:(ow-iw)/2:(oh-ih)/2:color=#00000000,setsar=1') 65 | .save('st.webp') 66 | .on('end', async () => { 67 | await message.sendMessage(fs.readFileSync('st.webp'), MessageType.sticker); 68 | }); 69 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 70 | 71 | } 72 | 73 | ffmpeg(location) 74 | .outputOptions(["-y", "-vcodec libwebp", "-lossless 1", "-qscale 1", "-preset default", "-loop 0", "-an", "-vsync 0", "-s 600x600"]) 75 | .videoFilters('scale=600:600:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=600:600:(ow-iw)/2:(oh-ih)/2:color=#00000000,setsar=1') 76 | .save('sticker.webp') 77 | .on('end', async () => { 78 | await message.sendMessage(fs.readFileSync('sticker.webp'), MessageType.sticker); 79 | }); 80 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 81 | })); 82 | XTroid.addCMD({pattern: 'sticker$', fromMe: true, desc: Lang.STICKER_DESC, dontAddCMDList: true}, (async (message, match) => { 83 | 84 | if (message.reply_message === false) return await message.client.sendMessage(message.jid,Lang.NEED_REPLY, MessageType.text); 85 | var downloading = await message.client.sendMessage(message.jid,Lang.DOWNLOADING,MessageType.text); 86 | var location = await message.client.downloadAndSaveMediaMessage({ 87 | key: { 88 | remoteJid: message.reply_message.jid, 89 | id: message.reply_message.id 90 | }, 91 | message: message.reply_message.data.quotedMessage 92 | }); 93 | 94 | if (message.reply_message.video === false && message.reply_message.image) { 95 | ffmpeg(location) 96 | .outputOptions(["-y", "-vcodec libwebp"]) 97 | .videoFilters('scale=600:600:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=600:600:(ow-iw)/2:(oh-ih)/2:color=#00000000,setsar=1') 98 | .save('st.webp') 99 | .on('end', async () => { 100 | await message.sendMessage(fs.readFileSync('st.webp'), MessageType.sticker); 101 | }); 102 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 103 | 104 | } 105 | 106 | ffmpeg(location) 107 | .outputOptions(["-y", "-vcodec libwebp", "-lossless 1", "-qscale 1", "-preset default", "-loop 0", "-an", "-vsync 0", "-s 600x600"]) 108 | .videoFilters('scale=600:600:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=600:600:(ow-iw)/2:(oh-ih)/2:color=#00000000,setsar=1') 109 | .save('sticker.webp') 110 | .on('end', async () => { 111 | await message.sendMessage(fs.readFileSync('sticker.webp'), MessageType.sticker); 112 | }); 113 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 114 | })); 115 | } 116 | -------------------------------------------------------------------------------- /plugins/profile.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const XTroid = require('../events'); 4 | const {MessageType} = require('@adiwajshing/baileys'); 5 | const Config = require('../config'); 6 | 7 | const fs = require('fs'); 8 | const Language = require('../language'); 9 | const Lang = Language.getString('profile'); 10 | 11 | XTroid.addCMD({pattern: 'kickme', fromMe: true, desc: Lang.KICKME_DESC, onlyGroup: true}, (async (message, match) => { 12 | if (Config.KICKMEMSG == 'default') { 13 | await message.client.sendMessage(message.jid,Lang.KICKME,MessageType.text); 14 | await message.client.groupLeave(message.jid); 15 | } 16 | else { 17 | await message.client.sendMessage(message.jid,Config.KICKMEMSG,MessageType.text); 18 | await message.client.groupLeave(message.jid); 19 | } 20 | })); 21 | 22 | XTroid.addCMD({pattern: 'pp', fromMe: true, desc: Lang.PP_DESC}, (async (message, match) => { 23 | if (!message.reply_message || !message.reply_message.image) return await message.client.sendMessage(message.jid,Lang.NEED_PHOTO, MessageType.text); 24 | 25 | var load = await message.client.sendMessage(message.jid,Lang.PPING,MessageType.text); 26 | var location = await message.client.downloadAndSaveMediaMessage({ 27 | key: { 28 | remoteJid: message.reply_message.jid, 29 | id: message.reply_message.id 30 | }, 31 | message: message.reply_message.data.quotedMessage 32 | }); 33 | 34 | await message.client.updateProfilePicture(message.client.user.jid, fs.readFileSync(location)); 35 | await message.client.deleteMessage(message.jid, {id: load.key.id, remoteJid: message.jid, fromMe: true}) 36 | })); 37 | 38 | XTroid.addCMD({pattern: 'block ?(.*)', fromMe: true, desc: Lang.BLOCK_DESC}, (async (message, match) => { 39 | if (Config.BLOCKMSG == 'default') { 40 | if (message.reply_message !== false) { 41 | await message.client.sendMessage(message.jid, '@' + message.reply_message.jid.split('@')[0] + '```, ' + Lang.BLOCKED + '!```', MessageType.text, { 42 | quotedMessage: message.reply_message.data, contextInfo: {mentionedJid: [message.reply_message.jid.replace('c.us', 's.whatsapp.net')]} 43 | }); 44 | await message.client.blockUser(message.reply_message.jid, "add"); 45 | } else if (message.mention !== false) { 46 | message.mention.map(async user => { 47 | await message.client.sendMessage(message.jid, '@' + user.split('@')[0] + '```, ' + Lang.BLOCKED + '!```', MessageType.text, { 48 | previewType: 0, contextInfo: {mentionedJid: [user.replace('c.us', 's.whatsapp.net')]} 49 | }); 50 | await message.client.blockUser(user, "add"); 51 | }); 52 | } else if (!message.jid.includes('-')) { 53 | await message.client.sendMessage(message.jid, '*' + Lang.BLOCKED_UPPER + '*', MessageType.text); 54 | await message.client.blockUser(message.jid, "add"); 55 | } else { 56 | await message.client.sendMessage(message.jid, '*' + Lang.NEED_USER + '*', MessageType.text); 57 | } 58 | } 59 | else { 60 | if (message.reply_message !== false) { 61 | await message.client.sendMessage(message.jid, '@' + message.reply_message.jid.split('@')[0] + Config.BLOCKMSG, MessageType.text, { 62 | quotedMessage: message.reply_message.data, contextInfo: {mentionedJid: [message.reply_message.jid.replace('c.us', 's.whatsapp.net')]} 63 | }); 64 | await message.client.blockUser(message.reply_message.jid, "add"); 65 | } else if (message.mention !== false) { 66 | message.mention.map(async user => { 67 | await message.client.sendMessage(message.jid, '@' + user.split('@')[0] + Config.BLOCKMSG, MessageType.text, { 68 | previewType: 0, contextInfo: {mentionedJid: [user.replace('c.us', 's.whatsapp.net')]} 69 | }); 70 | await message.client.blockUser(user, "add"); 71 | }); 72 | } else if (!message.jid.includes('-')) { 73 | await message.client.sendMessage(message.jid, '*' + Lang.BLOCKED_UPPER + '*', MessageType.text); 74 | await message.client.blockUser(message.jid, "add"); 75 | } else { 76 | await message.client.sendMessage(message.jid, '*' + Lang.NEED_USER + '*', MessageType.text); 77 | } 78 | } 79 | })); 80 | 81 | XTroid.addCMD({pattern: 'unblock ?(.*)', fromMe: true, desc: Lang.UNBLOCK_DESC}, (async (message, match) => { 82 | if (Config.UNBLOCKMSG == 'default') { 83 | 84 | if (message.reply_message !== false) { 85 | await message.client.blockUser(message.reply_message.jid, "remove"); 86 | await message.client.sendMessage(message.jid, '@' + message.reply_message.jid.split('@')[0] + '```, ' + Lang.UNBLOCKED + '!```', MessageType.text, { 87 | quotedMessage: message.reply_message.data, contextInfo: {mentionedJid: [message.reply_message.jid.replace('c.us', 's.whatsapp.net')]} 88 | }); 89 | } else if (message.mention !== false) { 90 | message.mention.map(async user => { 91 | await message.client.blockUser(user, "remove"); 92 | await message.client.sendMessage(message.jid, '@' + user.split('@')[0] + '```, ' + Lang.UNBLOCKED + '!```', MessageType.text, { 93 | contextInfo: {mentionedJid: [user.replace('c.us', 's.whatsapp.net')]} 94 | }); 95 | }); 96 | } else if (!message.jid.includes('-')) { 97 | await message.client.blockUser(message.jid, "remove"); 98 | await message.client.sendMessage(message.jid, '*' + Lang.UNBLOCKED_UPPER + '*', MessageType.text,); 99 | } else { 100 | await message.client.sendMessage(message.jid, '*' + Lang.NEED_USER + '*', MessageType.text,); 101 | } 102 | } 103 | else { 104 | if (message.reply_message !== false) { 105 | await message.client.blockUser(message.reply_message.jid, "remove"); 106 | await message.client.sendMessage(message.jid, '@' + message.reply_message.jid.split('@')[0] + Config.UNBLOCKMSG, MessageType.text, { 107 | quotedMessage: message.reply_message.data, contextInfo: {mentionedJid: [message.reply_message.jid.replace('c.us', 's.whatsapp.net')]} 108 | }); 109 | } else if (message.mention !== false) { 110 | message.mention.map(async user => { 111 | await message.client.blockUser(user, "remove"); 112 | await message.client.sendMessage(message.jid, '@' + user.split('@')[0] + Config.UNBLOCKMSG, MessageType.text, { 113 | contextInfo: {mentionedJid: [user.replace('c.us', 's.whatsapp.net')]} 114 | }); 115 | }); 116 | } else if (!message.jid.includes('-')) { 117 | await message.client.blockUser(message.jid, "remove"); 118 | await message.client.sendMessage(message.jid, '*' + Lang.UNBLOCKED_UPPER + '*', MessageType.text,); 119 | } else { 120 | await message.client.sendMessage(message.jid, '*' + Lang.NEED_USER + '*', MessageType.text,); 121 | } 122 | } 123 | })); 124 | -------------------------------------------------------------------------------- /plugins/anime.js: -------------------------------------------------------------------------------- 1 | 2 | /* # Exclusively from danuma project 3 | # Do not use this fore any commercial thing 4 | # If you abuse thais bot we wil kick you from bot 5 | # Do not edit (Respect to the Devaoloper) 6 | # All rights reserved ©Lasiya @lasiya99X t.me/lasiya99X 7 | # Get more about devaoloper https://lasiya.ml 8 | rgtthrth : rawes60457@edmondpt.com 9 | */ 10 | 11 | const XTroid = require('../events'); 12 | const { MessageType, MessageOptions, Mimetype } = require('@adiwajshing/baileys'); 13 | const fs = require('fs'); 14 | const axios = require('axios'); 15 | const Config = require('../config'); 16 | const need = "*type some word after command*\n*විධානයට පසුව වචනයක් ලියන්න" 17 | const GG = "...." 18 | 19 | if (Config.WORKTYPE == 'private') { 20 | 21 | XTroid.addCMD({ pattern: 'rloli ?(.*)', fromMe: true,dontAddCMDList: true }, (async (message, match) => { 22 | await axios.get(`https://tinyurl.com/${Config.LOCKR}`).then(async (ann) => { 23 | const { lasi } = ann.data.def1 24 | const lc = lasi 25 | const seed = Config.LOCK 26 | if (lc !== seed) return await message.sendMessage(GG); 27 | 28 | var lasiyasimg = await axios.get(`https://docs-jojo.herokuapp.com/api/randomloli`, { responseType: 'arraybuffer' }) 29 | 30 | await message.sendMessage(Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: Config.CAPTION_KEY}) 31 | }); 32 | })); 33 | 34 | 35 | 36 | XTroid.addCMD({ pattern: 'rwifu ?(.*)', fromMe: true,dontAddCMDList: true }, (async (message, match) => { 37 | 38 | await axios.get(`https://tinyurl.com/${Config.LOCKR}`).then(async (ann) => { 39 | const { lasi } = ann.data.def1 40 | const lc = lasi 41 | const seed = Config.LOCK 42 | if (lc !== seed) return await message.sendMessage(GG); 43 | var lasiyasimg = await axios.get(`https://bx-${Config.ON}.herokuapp.com/api/sfw/waifu?apikey=${Config.CCN}`, { responseType: 'arraybuffer' }) 44 | 45 | await message.sendMessage(Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: Config.CAPTION_KEY}) 46 | }); 47 | })); 48 | 49 | 50 | XTroid.addCMD({ pattern: 'rwolf ?(.*)', fromMe: true,dontAddCMDList: true }, (async (message, match) => { 51 | await axios.get(`https://tinyurl.com/${Config.LOCKR}`).then(async (ann) => { 52 | const { lasi } = ann.data.def1 53 | const lc = lasi 54 | const seed = Config.LOCK 55 | if (lc !== seed) return await message.sendMessage(GG); 56 | 57 | var lasiyasimg = await axios.get(`https://bx-${Config.ON}.herokuapp.com/api/sfw/awoo?apikey=${Config.CCN}`, { responseType: 'arraybuffer' }) 58 | 59 | await message.sendMessage(Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: Config.CAPTION_KEY}) 60 | }); 61 | })); 62 | 63 | 64 | XTroid.addCMD({ pattern: 'rshin ?(.*)', fromMe: true,dontAddCMDList: true }, (async (message, match) => { 65 | await axios.get(`https://tinyurl.com/${Config.LOCKR}`).then(async (ann) => { 66 | const { lasi } = ann.data.def1 67 | const lc = lasi 68 | const seed = Config.LOCK 69 | if (lc !== seed) return await message.sendMessage(GG); 70 | 71 | var lasiyasimg = await axios.get(`https://bx-${Config.ON}.herokuapp.com/api/sfw/shinobu?apikey=${Config.CCN}`, { responseType: 'arraybuffer' }) 72 | 73 | await message.sendMessage(Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: Config.CAPTION_KEY}) 74 | }); 75 | })); 76 | 77 | XTroid.addCMD({ pattern: 'rwtc ?(.*)', fromMe: true,dontAddCMDList: true }, (async (message, match) => { 78 | await axios.get(`https://tinyurl.com/${Config.LOCKR}`).then(async (ann) => { 79 | const { lasi } = ann.data.def1 80 | const lc = lasi 81 | const seed = Config.LOCK 82 | if (lc !== seed) return await message.sendMessage(GG); 83 | 84 | var lasiyasimg = await axios.get(`https://bx-${Config.ON}.herokuapp.com/api/sfw/megumin?apikey=${Config.CCN}`, { responseType: 'arraybuffer' }) 85 | 86 | await message.sendMessage(Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: Config.CAPTION_KEY}) 87 | }); 88 | })); 89 | 90 | } 91 | 92 | else if (Config.WORKTYPE == 'public') { 93 | 94 | XTroid.addCMD({ pattern: 'rloli ?(.*)', fromMe: false,dontAddCMDList: true }, (async (message, match) => { 95 | await axios.get(`https://tinyurl.com/${Config.LOCKR}`).then(async (ann) => { 96 | const { lasi } = ann.data.def1 97 | const lc = lasi 98 | const seed = Config.LOCK 99 | if (lc !== seed) return await message.sendMessage(GG); 100 | 101 | var lasiyasimg = await axios.get(`https://docs-jojo.herokuapp.com/api/randomloli`, { responseType: 'arraybuffer' }) 102 | 103 | await message.sendMessage(Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: Config.CAPTION_KEY}) 104 | }); 105 | })); 106 | 107 | 108 | 109 | XTroid.addCMD({ pattern: 'rwifu ?(.*)', fromMe: false,dontAddCMDList: true }, (async (message, match) => { 110 | await axios.get(`https://tinyurl.com/${Config.LOCKR}`).then(async (ann) => { 111 | const { lasi } = ann.data.def1 112 | const lc = lasi 113 | const seed = Config.LOCK 114 | if (lc !== seed) return await message.sendMessage(GG); 115 | 116 | var lasiyasimg = await axios.get(`https://bx-${Config.ON}.herokuapp.com/api/sfw/waifu?apikey=${Config.CCN}`, { responseType: 'arraybuffer' }) 117 | 118 | await message.sendMessage(Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: Config.CAPTION_KEY}) 119 | }); 120 | })); 121 | 122 | XTroid.addCMD({ pattern: 'rwolf ?(.*)', fromMe: false,dontAddCMDList: true }, (async (message, match) => { 123 | await axios.get(`https://tinyurl.com/${Config.LOCKR}`).then(async (ann) => { 124 | const { lasi } = ann.data.def1 125 | const lc = lasi 126 | const seed = Config.LOCK 127 | if (lc !== seed) return await message.sendMessage(GG); 128 | 129 | var lasiyasimg = await axios.get(`https://bx-${Config.ON}.herokuapp.com/api/sfw/awoo?apikey=${Config.CCN}`, { responseType: 'arraybuffer' }) 130 | 131 | await message.sendMessage(Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: Config.CAPTION_KEY}) 132 | }); 133 | })); 134 | 135 | 136 | 137 | XTroid.addCMD({ pattern: 'rshin ?(.*)', fromMe: false,dontAddCMDList: true }, (async (message, match) => { 138 | await axios.get(`https://tinyurl.com/${Config.LOCKR}`).then(async (ann) => { 139 | const { lasi } = ann.data.def1 140 | const lc = lasi 141 | const seed = Config.LOCK 142 | if (lc !== seed) return await message.sendMessage(GG); 143 | 144 | var lasiyasimg = await axios.get(`https://bx-${Config.ON}.herokuapp.com/api/sfw/shinobu?apikey=${Config.CCN}`, { responseType: 'arraybuffer' }) 145 | 146 | await message.sendMessage(Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: Config.CAPTION_KEY}) 147 | }); 148 | })); 149 | 150 | 151 | XTroid.addCMD({ pattern: 'rwtc ?(.*)', fromMe: false,dontAddCMDList: true }, (async (message, match) => { 152 | await axios.get(`https://tinyurl.com/${Config.LOCKR}`).then(async (ann) => { 153 | const { lasi } = ann.data.def1 154 | const lc = lasi 155 | const seed = Config.LOCK 156 | if (lc !== seed) return await message.sendMessage(GG); 157 | 158 | var lasiyasimg = await axios.get(`https://bx-${Config.ON}.herokuapp.com/api/sfw/megumin?apikey=${Config.CCN}`, { responseType: 'arraybuffer' }) 159 | 160 | await message.sendMessage(Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.jpg, caption: Config.CAPTION_KEY}) 161 | }); 162 | })); 163 | 164 | 165 | 166 | 167 | } 168 | -------------------------------------------------------------------------------- /plugins/someonesay.js: -------------------------------------------------------------------------------- 1 | /* 2 | */ 3 | 4 | const XTroid = require('../events'); 5 | const { MessageType, MessageOptions, Mimetype } = require('@adiwajshing/baileys'); 6 | const fs = require('fs'); 7 | const axios = require('axios'); 8 | const Config = require('../config'); 9 | 10 | const Language = require('../language'); 11 | const Lang = Language.getString('ttp'); 12 | 13 | if (Config.WORKTYPE == 'private') { 14 | 15 | XTroid.addCMD({ pattern: 'animesay ?(.*)', fromMe: true, desc: Lang.ANIME_DESC }, (async (message, match) => { 16 | 17 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 18 | 19 | var lasiyasimg = await axios.get(`https://nekobot.xyz/api/imagegen?type=kannagen&text=${match[1].replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&raw=1`, { responseType: 'arraybuffer' }) 20 | 21 | await message.client.sendMessage(message.jid,Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.png, caption: Config.CAPTION_KEY }) 22 | 23 | })); 24 | 25 | XTroid.addCMD({ pattern: 'changesay ?(.*)', fromMe: true, desc: Lang.CHANGE_DESC }, (async (message, match) => { 26 | 27 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 28 | 29 | var lasiyasimg = await axios.get(`https://nekobot.xyz/api/imagegen?type=changemymind&text=${match[1].replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&raw=1`, { responseType: 'arraybuffer' }) 30 | 31 | await message.client.sendMessage(message.jid,Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.png, caption: Config.CAPTION_KEY }) 32 | 33 | })); 34 | 35 | XTroid.addCMD({ pattern: 'trumpsay ?(.*)', fromMe: true, desc: Lang.TRUMP_DESC }, (async (message, match) => { 36 | 37 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 38 | 39 | var lasiyasimg = await axios.get(`https://nekobot.xyz/api/imagegen?type=trumptweet&text=${match[1].replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&raw=1`, { responseType: 'arraybuffer' }) 40 | 41 | await message.client.sendMessage(message.jid,Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.png, caption: Config.CAPTION_KEY }) 42 | 43 | })); 44 | } 45 | else if (Config.WORKTYPE == 'public') { 46 | 47 | XTroid.addCMD({ pattern: 'animesay ?(.*)', fromMe: false, desc: Lang.ANIME_DESC }, (async (message, match) => { 48 | 49 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 50 | 51 | var lasiyasimg = await axios.get(`https://nekobot.xyz/api/imagegen?type=kannagen&text=${match[1].replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&raw=1`, { responseType: 'arraybuffer' }) 52 | 53 | await message.client.sendMessage(message.jid,Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.png, caption: Config.CAPTION_KEY }) 54 | 55 | })); 56 | 57 | XTroid.addCMD({ pattern: 'changesay ?(.*)', fromMe: false, desc: Lang.CHANGE_DESC }, (async (message, match) => { 58 | 59 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 60 | 61 | var lasiyasimg = await axios.get(`https://nekobot.xyz/api/imagegen?type=changemymind&text=${match[1].replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&raw=1`, { responseType: 'arraybuffer' }) 62 | 63 | await message.client.sendMessage(message.jid,Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.png, caption: Config.CAPTION_KEY }) 64 | 65 | })); 66 | 67 | XTroid.addCMD({ pattern: 'trumpsay ?(.*)', fromMe: false, desc: Lang.TRUMP_DESC }, (async (message, match) => { 68 | 69 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 70 | 71 | var lasiyasimg = await axios.get(`https://nekobot.xyz/api/imagegen?type=trumptweet&text=${match[1].replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&raw=1`, { responseType: 'arraybuffer' }) 72 | 73 | await message.client.sendMessage(message.jid,Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.png, caption: Config.CAPTION_KEY }) 74 | 75 | })); 76 | XTroid.addCMD({ pattern: 'animesay ?(.*)', fromMe: true, desc: Lang.ANIME_DESC, dontAddCMDList: true }, (async (message, match) => { 77 | 78 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 79 | 80 | var lasiyasimg = await axios.get(`https://nekobot.xyz/api/imagegen?type=kannagen&text=${match[1].replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&raw=1`, { responseType: 'arraybuffer' }) 81 | 82 | await message.client.sendMessage(message.jid,Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.png, caption: Config.CAPTION_KEY }) 83 | 84 | })); 85 | 86 | XTroid.addCMD({ pattern: 'changesay ?(.*)', fromMe: true, desc: Lang.CHANGE_DESC, dontAddCMDList: true }, (async (message, match) => { 87 | 88 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 89 | 90 | var lasiyasimg = await axios.get(`https://nekobot.xyz/api/imagegen?type=changemymind&text=${match[1].replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&raw=1`, { responseType: 'arraybuffer' }) 91 | 92 | await message.client.sendMessage(message.jid,Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.png, caption: Config.CAPTION_KEY }) 93 | 94 | })); 95 | 96 | XTroid.addCMD({ pattern: 'trumpsay ?(.*)', fromMe: true, desc: Lang.TRUMP_DESC, dontAddCMDList: true }, (async (message, match) => { 97 | 98 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 99 | 100 | var lasiyasimg = await axios.get(`https://nekobot.xyz/api/imagegen?type=trumptweet&text=${match[1].replace(/Ö/g, "%C3%96").replace(/ö/g, "%C3%B6").replace(/ü/g, "%C3%BC").replace(/Ü/g, "%C3%9C").replace(/Ğ/g, "%C4%9E").replace(/ğ/g, "%C4%9F").replace(/ş/g, "%C5%9F").replace(/Ş/g, "%C5%9E").replace(/ç/g, "%C3%A7").replace(/Ç/g, "%C3%87").replace(/ı/g, "%C4%B1").replace(/i/g, "%69").replace(/"/g, "%22").replace(/İ/g, "%C4%B0")}&raw=1`, { responseType: 'arraybuffer' }) 101 | 102 | await message.client.sendMessage(message.jid,Buffer.from(lasiyasimg.data), MessageType.image, { mimetype: Mimetype.png, caption: Config.CAPTION_KEY }) 103 | 104 | })); 105 | } 106 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Xtroid", 3 | "description": "Coded By Lasiya", 4 | "logo": "https://telegra.ph/file/2bb85d7b80b9ad96bcb96.jpg", 5 | "keywords": ["whatsapp", "userbot", "bot", "api", "ai"], 6 | "repository": "https://github.com/1XusernameX1/lizy", 7 | "website": "lasiya.ml", 8 | "success_url": "https://t.me/danumabots", 9 | "stack": "container", 10 | "env": { 11 | "A_XTROID_SESSION": { 12 | "description": "Type here yours X-Troid Session (after get scanning QR) QR කේතය scan කර ලබාගත් අදාල කේතය මෙහි යොදන්න.", 13 | "required": true 14 | }, 15 | "SUDO": { 16 | "description": "Leave blank if you don't know how to use it! Sudo mode;ඔබගේ බොත වෙත තවත් හිමිකරුවකු එක කිරීමට අදාල එම whatsapp අංකය මෙලෙස යොදන්න +94)", 17 | "required": false 18 | }, 19 | "LANGUAGE": { 20 | "description": "Bot language. English => en, සිංහල => SI", 21 | "required": true, 22 | "value": "en" 23 | }, 24 | "ANTİ_LİNK": { 25 | "description": "⚠️Link Blocking System.⚠️ලින්ක් දමන්නන් සමුහයෙන් ඉවත් කිරීමට", 26 | "required": true, 27 | "value": "false" 28 | }, 29 | "AUTO_BİO": { 30 | "description": "Set true for auto date, time in biography.ඔබගේ විස්තරය කාලීනව වෙනස් වීමට (අවශ්‍ය නැතිනම් වෙනස් නොකරන්න )", 31 | "required": true, 32 | "value": "false" 33 | }, 34 | "HANDLERS": { 35 | "description": "Donot change!.වෙනස් නොකරන්න!!!", 36 | "required": true, 37 | "value": "^[.!;#]" 38 | }, 39 | "AI_LIZA": { 40 | "description": "Type (true) to open artificial intelligence. : කෘතීම බුද්ධිය සක්‍රිය කිරීමට (true) ලෙස ලියන්න", 41 | "required": true, 42 | "value": "false" 43 | }, 44 | "NO_LOG": { 45 | "description": "Type (true) to stop error and log messeges. : ඔබගේම අංකයෙන් ඔබට ලැබෙන දෝෂ පණිවිඩ නවතාදැමීමට (true) ලෙස ලියන්න.", 46 | "required": true, 47 | "value": "true" 48 | }, 49 | "SEND_READ": { 50 | "description": "Write true if you want to throw seen.ඔබට පැමිණෙන පණිවිඩ BOTලවා seen කරවිමට", 51 | "required": true, 52 | "value": "true" 53 | }, 54 | "HEROKU": { 55 | "description": "DONOT CHANGE; වෙනස් කිරීමෙන් වලකින්න", 56 | "required": true, 57 | "value": "true" 58 | }, 59 | "HEROKU_API_KEY": { 60 | "description": "Heroku API Key.හෙරොකු API කේතය", 61 | "required": true 62 | }, 63 | "MUTE_MESSAGE": { 64 | "description": "Customizable Mute Message! Use => default, to change back. සමුහ වැසීමේ පණිවිඩයට ඔබට කැමති එකක් එකතු කිරීමට", 65 | "required": false, 66 | "value": "default" 67 | }, 68 | "BLOCK_CHAT": { 69 | "description": "Choose in which chat the bot won't work there. (SL=94) (US=1)Ex: 9471xxxx && 9471xxxx-1xxx or 9471xxxx,9471xxx... /සමුහයක් හෝ පුද්ගලයෙකු අවහිර කිරීමට", 70 | "required": false, 71 | "value": "false" 72 | }, 73 | "UNMUTE_MESSAGE": { 74 | "description": "Customizable Unmute Message! Use => default, to change back.සමුහ නැවත විවුර්ත කරීමේ පණිවිඩය ඔබට අවශ්‍ය ලෙස සකසා මෙහි දමන්න", 75 | "required": false, 76 | "value": "default" 77 | }, 78 | "BLOCK_MESSAGE": { 79 | "description": "Customizable Block Message! Use => default, to change back. පුද්ගලයෙකු අවහිර කිරීමේ පණිවිඩය", 80 | "required": false, 81 | "value": "default" 82 | }, 83 | "UNBLOCK_MESSAGE": { 84 | "description": "Customizable Unblock Message! Use => default, to change back.අවහිර කල අයෙකු නැවත කතා කිරීමට අවස්ථාව දීමේ පණිවිඩය", 85 | "required": false, 86 | "value": "default" 87 | }, 88 | "WORK_TYPE": { 89 | "description": "Xtroid bot Working Type. If you use “public”, everyone can use the bot. Else if you use “private”, only you can use your bot. ඔබ සාදන්නේ පුද්ගලික bot එකක් නම් “private” ලෙසත් , පොදු botඑකක් නම් “public” ලෙසත් ලබාදෙන්න", 90 | "required": true, 91 | "value": "public" 92 | }, 93 | "HEROKU_APP_NAME": { 94 | "description": "Heroku APP Name.ඉහල පළමුවෙන්ම පිරවූ APP නාමය", 95 | "required": true 96 | }, 97 | "DEBUG": { 98 | "description": "NO need to change, වෙනස් කිරීමට අවශ්‍ය නැත", 99 | "required": true, 100 | "value": "false" 101 | }, 102 | "REMOVE_BG_API_KEY": { 103 | "description": "Get API from https://remove.bg මෙම ලින්කුවෙන් ලබාගන්න https://remove.bg ", 104 | "required": false 105 | }, 106 | "GIF_WEL": { 107 | "description": "set custom welcom gif past direct lnk of mp4 or gif ⚠️must not bigger than 2MB ( can cange after )/ලබාදී ඇති පිළිගැනීමේ පණිවිඩයට ඔබට අවශ්‍ය වීඩියෝවක් එක කිරීමට වීඩියෝවක ඩිරෙක් ලින්ක් එකක් මෙහි යොදන්න ⚠️2MB වලට අඩු", 108 | "required": false 109 | }, 110 | "GIF_BYE": { 111 | "description": "set custom good bye gif past direct lnk of mp4 or gif ⚠️must not bigger than 2MB ( can cange after )/ලබාදී ඇති සමුදීමේ පණිවිඩයට ඔබට අවශ්‍ය වීඩියෝවක් එක කිරීමට වීඩියෝවක ඩිරෙක් ලින්ක් එකක් මෙහි යොදන්න ⚠️2MB වලට අඩු", 112 | "required": false 113 | }, 114 | "ALIVEMSG": { 115 | "description": "Customizable Alive Message!: ALIVE පණිවිඩය ඔබට අවශ්‍ය පරිදි වෙනස් කරගැනීමට", 116 | "required": false 117 | }, 118 | "BAN_MESSAGE": { 119 | "description": "Customizable Ban Message! Use => default, to change back.යමෙකු සමුහයෙන් ඉවත් කරීමේ පණිවිඩය වෙනස් කිරීමට", 120 | "required": false, 121 | "value": "default" 122 | }, 123 | "ADD_MESSAGE": { 124 | "description": "Customizable Add Message! Use => default, to change back.ඔබ විසින් යමෙකුව සමුහයට එකතුකිරිමේදී ලැබෙන පණිවිඩය. ", 125 | "required": false, 126 | "value": "default" 127 | }, 128 | "KICKME_MESSAGE": { 129 | "description": "Customizable Kickme Message! Use => default, to change back.ඔබ සමුහයෙන් ඉවත් වීමේදී තබා එන අවසන් පණිවිඩය", 130 | "required": false, 131 | "value": "default" 132 | }, 133 | "PROMOTE_MESSAGE": { 134 | "description": "Customizable Promote Message! Use => default, to change back.සමුහයේ යමෙකුගේ තනතුරු උසස් කිරීමේ පණිවිඩය", 135 | "required": false, 136 | "value": "default" 137 | }, 138 | "DEMOTE_MESSAGE": { 139 | "description": "Customizable Demote Message! Use => default, to change back.තනතුරු පත්කිරීමේ පණිවිඩය", 140 | "required": false, 141 | "value": "default" 142 | }, 143 | "AFK_MESSAGE": { 144 | "description": "Customizable AFK Message! Use => default, to change back.ඔබ දුරකතනයෙන් ඉවත්වන විට තබා යන පණිවිඩය", 145 | "required": false, 146 | "value": "default" 147 | }, 148 | "NO_ONLINE": { 149 | "description": "Type true if you don't want to appear online.ගිණුම online වසා තැබීමට", 150 | "required": false, 151 | "value": "true" 152 | }, 153 | "EMOJI": { 154 | "description": "This is Menu emoji you can cange it here: මෙනුවේ විධාන ඉමොජිය වෙනස් කිරීමට", 155 | "required": false, 156 | "value": "🔮" 157 | }, 158 | "DEMOJI": { 159 | "description": "This is Menu desc emoji you can cange it here: මෙනුවේ දෙවෙනි ඉමොජිය වෙනස් කිරීමට", 160 | "required": false, 161 | "value": "🪅" 162 | }, 163 | "CP": { 164 | "description": "This is Menu Caption of send media you can cange it here: bot ගෙන් send වෙන photo/video වල තිබිය යුතු නම වෙනස් කිරීමට", 165 | "required": false, 166 | "value": "•--» 𝔁𝓉ŕ𝔬เⒹ «--•" 167 | }, 168 | "ALIVEIMG": { 169 | "description": "Customizable Alive Image!: ALIVE පණිවිඩයේ පින්තුරය ඔබට අවශ්‍ය පරිදි වෙනස් කරගැනීමට", 170 | "required": false, 171 | "value": "https://telegra.ph/file/a143b34753c8434058e87.jpg" 172 | }, 173 | "SONDOWNMSG": { 174 | "description": "Song downloading message;", 175 | "required": true, 176 | "value": "╭┄┄┉♫♪♫┉┄┄╮\n*Searching song➧*\n╰┄┄┉♫♪♫┉┄┄╯" 177 | }, 178 | "SONGUPMSG": { 179 | "description": "Song Uploading message;", 180 | "required": true, 181 | "value": ".ılı.—— uploading ——.ılı.\n ⏫|◁ II ▷|⏫" 182 | } 183 | 184 | }, 185 | "addons": [{ 186 | "plan": "heroku-postgresql" 187 | }], 188 | "buildpacks": [{ 189 | "url": "heroku-community/apt" 190 | }] 191 | } 192 | 193 | -------------------------------------------------------------------------------- /plugins/web.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const XTroid = require('../events'); 4 | const {MessageType} = require('@adiwajshing/baileys'); 5 | const speedTest = require('@lh2020/speedtest-net'); 6 | const TinyURL = require('tinyurl'); 7 | const Config = require('../config'); 8 | 9 | const Language = require('../language'); 10 | const Lang = Language.getString('web'); 11 | const SLang = Language.getString('webss'); 12 | 13 | // https://github.com/ddsol/speedtest.net/blob/master/bin/index.js#L86 14 | function speedText(speed) { 15 | let bits = speed * 8; 16 | const units = ['', 'K', 'M', 'G', 'T']; 17 | const places = [0, 1, 2, 3, 3]; 18 | let unit = 0; 19 | while (bits >= 2000 && unit < 4) { 20 | unit++; 21 | bits /= 1000; 22 | } 23 | 24 | return `${bits.toFixed(places[unit])} ${units[unit]}bps`; 25 | } 26 | 27 | XTroid.addCMD({pattern: 'speedtest$', fromMe: true, desc: Lang.SPEEDTEST_DESC}, (async (message, match) => { 28 | var msg = await message.reply(Lang.SPEEDTESTING); 29 | var st = await speedTest({acceptLicense: true, acceptGdpr: true}); 30 | 31 | await message.client.sendMessage( 32 | message.jid,Lang.SPEEDTEST_RESULT + '\n\n' + 33 | '*ISP:* ```' + st.isp + '```\n' + 34 | '*Ping:* ```' + st.ping.latency + 'ms```\n' + 35 | '*' + Lang.UPLOAD + ':* ```' + speedText(st.upload.bandwidth) + '```\n' + 36 | '*' + Lang.DOWNLOAD + ':* ```' + speedText(st.download.bandwidth) + '```\n',MessageType.text 37 | ); 38 | await msg.delete(); 39 | })); 40 | 41 | XTroid.addCMD({pattern: 'ping$', fromMe: true, deleteCommand: false, desc: Lang.PING_DESC}, (async (message, match) => { 42 | var start = new Date().getTime(); 43 | await message.sendMessage('```Ping!```'); 44 | var end = new Date().getTime(); 45 | 46 | await message.client.sendMessage( 47 | message.jid,'*Pong!*\n```' + (end - start) + 'ms```', MessageType.text); 48 | })); 49 | 50 | if (Config.WORKTYPE == 'private') { 51 | 52 | XTroid.addCMD({pattern: 'short ?(.*)', fromMe: true, desc: Lang.URL}, (async (message, match) => { 53 | 54 | if (match[1] === '') return await message.client.sendMessage(message.jid, SLang.LİNK, MessageType.text); 55 | 56 | TinyURL.shorten(`${match[1]}`, async(res, err) => { 57 | if (err) 58 | await message.client.sendMessage(message.jid, '*#### Error! ####*\n\n' + '```' + err + '```', MessageType.text); 59 | 60 | await message.client.sendMessage(message.jid,`*Original Link:* ${match[1]}\n*Short Link:* ` + res, MessageType.text) 61 | }); 62 | })); 63 | XTroid.addCMD({pattern: 'calc ?(.*)', fromMe: true, desc: Lang.CALC }, (async (message, match) => { 64 | if (match[1].length < 4) { return await message.client.sendMessage(message.jid,Lang.VALİD, MessageType.text) } 65 | if (match[1].includes('+')) { var split = match[1].split('+'), sonsayi = split[1], ilksayi = split[0] 66 | var result = -(-ilksayi - sonsayi) 67 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 68 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text); 69 | } 70 | } 71 | else if (match[1].includes('-')) { var split = match[1].split('-'), sonsayicik = split[1], ilksayicik = split[0] 72 | var result = ilksayicik - sonsayicik 73 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 74 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text); 75 | } 76 | } 77 | else if (match[1].includes('x')) { var split = match[1].split('x'), sonsayicarp = split[1], ilksayicarp = split[0] 78 | var result = ilksayicarp * sonsayicarp 79 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 80 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text); 81 | } 82 | } 83 | else if (match[1].includes('/')) { var split = match[1].split('/'), sonsayibol = split[1], ilksayibol = split[0] 84 | var result = ilksayibol / sonsayibol 85 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 86 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text) 87 | } 88 | } 89 | })); 90 | } 91 | else if (Config.WORKTYPE == 'public') { 92 | 93 | XTroid.addCMD({pattern: 'short ?(.*)', fromMe: false, desc: Lang.URL}, (async (message, match) => { 94 | 95 | if (match[1] === '') return await message.client.sendMessage(message.jid, SLang.LİNK, MessageType.text); 96 | 97 | TinyURL.shorten(`${match[1]}`, async(res, err) => { 98 | if (err) 99 | await message.client.sendMessage(message.jid, '*#### Error! ####*\n\n' + '```' + err + '```', MessageType.text); 100 | 101 | await message.client.sendMessage(message.jid,`*Original Link:* ${match[1]}\n*Short Link:* ` + res, MessageType.text) 102 | }); 103 | })); 104 | XTroid.addCMD({pattern: 'short ?(.*)', fromMe: true, desc: Lang.URL, dontAddCMDList: true}, (async (message, match) => { 105 | 106 | if (match[1] === '') return await message.client.sendMessage(message.jid, SLang.LİNK, MessageType.text); 107 | 108 | TinyURL.shorten(`${match[1]}`, async(res, err) => { 109 | if (err) 110 | await message.client.sendMessage(message.jid, '*#### Error! ####*\n\n' + '```' + err + '```', MessageType.text); 111 | 112 | await message.client.sendMessage(message.jid,`*Original Link:* ${match[1]}\n*Short Link:* ` + res, MessageType.text) 113 | }); 114 | })); 115 | XTroid.addCMD({pattern: 'calc ?(.*)', fromMe: false, desc: 'Simple calculator'}, (async (message, match) => { 116 | if (match[1].length < 4) { return await message.client.sendMessage(message.jid,Lang.VALİD, MessageType.text) } 117 | if (match[1].includes('+')) { var split = match[1].split('+'), sonsayi = split[1], ilksayi = split[0] 118 | var result = -(-ilksayi - sonsayi) 119 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 120 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text); 121 | } 122 | } 123 | else if (match[1].includes('-')) { var split = match[1].split('-'), sonsayicik = split[1], ilksayicik = split[0] 124 | var result = ilksayicik - sonsayicik 125 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 126 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text); 127 | } 128 | } 129 | else if (match[1].includes('x')) { var split = match[1].split('x'), sonsayicarp = split[1], ilksayicarp = split[0] 130 | var result = ilksayicarp * sonsayicarp 131 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 132 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text); 133 | } 134 | } 135 | else if (match[1].includes('/')) { var split = match[1].split('/'), sonsayibol = split[1], ilksayibol = split[0] 136 | var result = ilksayibol / sonsayibol 137 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 138 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text) 139 | } 140 | } 141 | })); 142 | XTroid.addCMD({pattern: 'calc ?(.*)', fromMe: true, desc: Lang.CALC }, (async (message, match) => { 143 | if (match[1].length < 4) { return await message.client.sendMessage(message.jid,Lang.VALİD, MessageType.text) } 144 | if (match[1].includes('+')) { var split = match[1].split('+'), sonsayi = split[1], ilksayi = split[0] 145 | var result = -(-ilksayi - sonsayi) 146 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 147 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text); 148 | } 149 | } 150 | else if (match[1].includes('-')) { var split = match[1].split('-'), sonsayicik = split[1], ilksayicik = split[0] 151 | var result = ilksayicik - sonsayicik 152 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 153 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text); 154 | } 155 | } 156 | else if (match[1].includes('x')) { var split = match[1].split('x'), sonsayicarp = split[1], ilksayicarp = split[0] 157 | var result = ilksayicarp * sonsayicarp 158 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 159 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text); 160 | } 161 | } 162 | else if (match[1].includes('/')) { var split = match[1].split('/'), sonsayibol = split[1], ilksayibol = split[0] 163 | var result = ilksayibol / sonsayibol 164 | try { await message.client.sendMessage(message.jid,Lang.SUC + result, MessageType.text) } 165 | catch (err) { return await message.client.sendMessage(message.jid,Lang.UNSUC + err,MessageType.text) 166 | } 167 | } 168 | })); 169 | } 170 | -------------------------------------------------------------------------------- /plugins/social-scraper.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const XTroid = require('../events') 7 | const { MessageType } = require('@adiwajshing/baileys') 8 | const axios = require('axios') 9 | const cn = require('../config'); 10 | 11 | const Language = require('../language') 12 | const { errorMessage, infoMessage } = require('../helpers') 13 | const Lang = Language.getString('instagram') 14 | const Tlang = Language.getString('tiktok') 15 | 16 | if (cn.WORKTYPE == 'private') { 17 | 18 | XTroid.addCMD({ pattern: 'insta ?(.*)', fromMe: true, desc: Lang.DESC }, (async (message, match) => { 19 | if (match[0].includes('install')) return; 20 | if (match[1] === '') return await message.client.sendMessage(message.jid, Lang.NEED_WORD, MessageType.text, { quoted: message.data }); 21 | if (!match[1].includes('www.instagram.com')) return await message.client.sendMessage(message.jid, Lang.NEED_WORD, MessageType.text, { quoted: message.data }); 22 | 23 | let urls = `https://api.xteam.xyz/dl/ig?url=${match[1]}&APIKEY=ab9942f95c09ca89` 24 | let response 25 | try { response = await got(urls) } catch { return await message.client.sendMessage(message.jid, Lang.FİX, MessageType.text, { quoted: message.data }); 26 | } 27 | const lasijson = JSON.parse(response.body); 28 | 29 | if (lasijson.status === false) return await message.client.sendMessage(message.jid, Lang.NOT_FOUND, MessageType.text, { quoted: message.data }); 30 | if (lasijson.code === 403) return await message.client.sendMessage(message.jid, '```API Error!```', MessageType.text, { quoted: message.data }); 31 | 32 | await message.client.sendMessage(message.jid, Tlang.DOWN, MessageType.text, { quoted: message.data }); 33 | 34 | let url = lasijson.result.data[0].data; 35 | let name = lasijson.result.data[0].type; 36 | await axios({ method: "get", url, headers: { 'DNT': 1, 'Upgrade-Insecure-Request': 1 }, responseType: 'arraybuffer'}).then(async (res) => { 37 | if (name === 'video') { return await message.sendMessage(Buffer(res.data), MessageType.video, { caption: '*' + Tlang.USERNAME + '* ' + lasijson.result.username + '\n*' + Tlang.LİNK + '* ' + 'http://instagram.com/' + lasijson.result.username + '\n*' + Tlang.CAPTİON + '* ' + lasijson.result.caption }) } else { return await message.sendMessage(Buffer(res.data), MessageType.image, { caption: '*' + Tlang.USERNAME + '* ' + lasijson.result.username + '\n*' + Tlang.LİNK + '* ' + 'http://instagram.com/' + lasijson.result.username + '\n*' + Tlang.CAPTİON + '* ' + lasijson.result.caption }); 38 | } 39 | }); 40 | 41 | })); 42 | 43 | /* 44 | XTroid.addCMD({ pattern: 'tiktok ?(.*)', fromMe: true, desc: Tlang.TİKTOK }, async (message, match) => { 45 | 46 | const userName = match[1] 47 | 48 | if (!userName) return await message.client.sendMessage(message.jid, Tlang.NEED, MessageType.text) 49 | 50 | await message.client.sendMessage(message.jid, Tlang.DOWN, MessageType.text) 51 | 52 | await axios 53 | .get(`https://shinoa-rest.herokuapp.com/dl/tiktok?link=${userName}`) 54 | .then(async (response) => { 55 | const { 56 | data, 57 | } = response.data 58 | 59 | const profileBuffer = await axios.get(data.mp4, { 60 | responseType: 'arraybuffer', 61 | }) 62 | 63 | await message.sendMessage(Buffer.from(profileBuffer.data), MessageType.video, { 64 | caption: 'Made by Xtroid', 65 | }) 66 | }) 67 | .catch( 68 | async (err) => await message.client.sendMessage(message.jid, Tlang.NOT + userName, MessageType.text), 69 | ) 70 | }, 71 | ) 72 | */ 73 | } 74 | else if (cn.WORKTYPE == 'public') { 75 | 76 | XTroid.addCMD({ pattern: 'insta ?(.*)', fromMe: false, desc: Lang.DESC }, (async (message, match) => { 77 | if (match[0].includes('install')) return; 78 | if (match[1] === '') return await message.client.sendMessage(message.jid, Lang.NEED_WORD, MessageType.text, { quoted: message.data }); 79 | if (!match[1].includes('www.instagram.com')) return await message.client.sendMessage(message.jid, Lang.NEED_WORD, MessageType.text, { quoted: message.data }); 80 | 81 | let urls = `https://api.xteam.xyz/dl/ig?url=${match[1]}&APIKEY=ab9942f95c09ca89` 82 | let response 83 | try { response = await got(urls) } catch { return await message.client.sendMessage(message.jid, Lang.FİX, MessageType.text, { quoted: message.data }); 84 | } 85 | const lasijson = JSON.parse(response.body); 86 | 87 | if (lasijson.status === false) return await message.client.sendMessage(message.jid, Lang.NOT_FOUND, MessageType.text, { quoted: message.data }); 88 | if (lasijson.code === 403) return await message.client.sendMessage(message.jid, '```API Error!```', MessageType.text, { quoted: message.data }); 89 | 90 | await message.client.sendMessage(message.jid, Tlang.DOWN, MessageType.text, { quoted: message.data }); 91 | 92 | let url = lasijson.result.data[0].data; 93 | let name = lasijson.result.data[0].type; 94 | await axios({ method: "get", url, headers: { 'DNT': 1, 'Upgrade-Insecure-Request': 1 }, responseType: 'arraybuffer'}).then(async (res) => { 95 | if (name === 'video') { return await message.sendMessage(Buffer(res.data), MessageType.video, { caption: '*' + Tlang.USERNAME + '* ' + lasijson.result.username + '\n*' + Tlang.LİNK + '* ' + 'http://instagram.com/' + lasijson.result.username + '\n*' + Tlang.CAPTİON + '* ' + lasijson.result.caption }) } else { return await message.sendMessage(Buffer(res.data), MessageType.image, { caption: '*' + Tlang.USERNAME + '* ' + lasijson.result.username + '\n*' + Tlang.LİNK + '* ' + 'http://instagram.com/' + lasijson.result.username + '\n*' + Tlang.CAPTİON + '* ' + lasijson.result.caption }); 96 | } 97 | }); 98 | 99 | })); 100 | XTroid.addCMD({ pattern: 'insta ?(.*)', fromMe: true, desc: Lang.DESC, dontAddCMDList: true }, (async (message, match) => { 101 | if (match[0].includes('install')) return; 102 | if (match[1] === '') return await message.client.sendMessage(message.jid, Lang.NEED_WORD, MessageType.text, { quoted: message.data }); 103 | if (!match[1].includes('www.instagram.com')) return await message.client.sendMessage(message.jid, Lang.NEED_WORD, MessageType.text, { quoted: message.data }); 104 | 105 | let urls = `https://api.xteam.xyz/dl/ig?url=${match[1]}&APIKEY=ab9942f95c09ca89` 106 | let response 107 | try { response = await got(urls) } catch { return await message.client.sendMessage(message.jid, Lang.FİX, MessageType.text, { quoted: message.data }); 108 | } 109 | const lasijson = JSON.parse(response.body); 110 | 111 | if (lasijson.status === false) return await message.client.sendMessage(message.jid, Lang.NOT_FOUND, MessageType.text, { quoted: message.data }); 112 | if (lasijson.code === 403) return await message.client.sendMessage(message.jid, '```API Error!```', MessageType.text, { quoted: message.data }); 113 | 114 | await message.client.sendMessage(message.jid, Tlang.DOWN, MessageType.text, { quoted: message.data }); 115 | 116 | let url = lasijson.result.data[0].data; 117 | let name = lasijson.result.data[0].type; 118 | await axios({ method: "get", url, headers: { 'DNT': 1, 'Upgrade-Insecure-Request': 1 }, responseType: 'arraybuffer'}).then(async (res) => { 119 | if (name === 'video') { return await message.sendMessage(Buffer(res.data), MessageType.video, { caption: '*' + Tlang.USERNAME + '* ' + lasijson.result.username + '\n*' + Tlang.LİNK + '* ' + 'http://instagram.com/' + lasijson.result.username + '\n*' + Tlang.CAPTİON + '* ' + lasijson.result.caption }) } else { return await message.sendMessage(Buffer(res.data), MessageType.image, { caption: '*' + Tlang.USERNAME + '* ' + lasijson.result.username + '\n*' + Tlang.LİNK + '* ' + 'http://instagram.com/' + lasijson.result.username + '\n*' + Tlang.CAPTİON + '* ' + lasijson.result.caption }); 120 | } 121 | }); 122 | 123 | })); 124 | /* 125 | XTroid.addCMD({ pattern: 'tiktok ?(.*)', fromMe: false, desc: Tlang.TİKTOK }, async (message, match) => { 126 | 127 | const userName = match[1] 128 | 129 | if (!userName) return await message.client.sendMessage(message.jid, Tlang.NEED, MessageType.text) 130 | 131 | await message.client.sendMessage(message.jid, Tlang.DOWN, MessageType.text) 132 | 133 | await axios 134 | .get(`https://api.xteam.xyz/dl/tiktok?url=${userName}&APIKEY=ab9942f95c09ca89`) 135 | .then(async (response) => { 136 | const { 137 | server_1, 138 | } = response.data 139 | 140 | const profileBuffer = await axios.get(server_1, { 141 | responseType: 'arraybuffer', 142 | }) 143 | 144 | await message.sendMessage(Buffer.from(profileBuffer.data), MessageType.video, { 145 | caption: 'Made by Xtroid', 146 | }) 147 | }) 148 | .catch( 149 | async (err) => await message.client.sendMessage(message.jid, Tlang.NOT + userName, MessageType.text), 150 | ) 151 | }, 152 | ) 153 | XTroid.addCMD({ pattern: 'tiktok ?(.*)', fromMe: true, desc: Tlang.TİKTOK }, async (message, match) => { 154 | 155 | const userName = match[1] 156 | 157 | if (!userName) return await message.client.sendMessage(message.jid, Tlang.NEED, MessageType.text) 158 | 159 | await message.client.sendMessage(message.jid, Tlang.DOWN, MessageType.text) 160 | 161 | await axios 162 | .get(`https://shinoa-rest.herokuapp.com/dl/tiktok?link=${userName}`) 163 | .then(async (response) => { 164 | const { 165 | data, 166 | } = response.data 167 | 168 | const profileBuffer = await axios.get(data.mp4, { 169 | responseType: 'arraybuffer', 170 | }) 171 | 172 | await message.sendMessage(Buffer.from(profileBuffer.data), MessageType.video, { 173 | caption: 'Made by Xtroid', 174 | }) 175 | }) 176 | .catch( 177 | async (err) => await message.client.sendMessage(message.jid, Tlang.NOT + userName, MessageType.text), 178 | ) 179 | }, 180 | ) 181 | */ 182 | } 183 | --------------------------------------------------------------------------------