├── plugins ├── sql │ ├── fsfl.js │ ├── lydia.js │ ├── plugin.js │ ├── notes.js │ ├── greetings.js │ └── filters.js ├── test.txt ├── up_down.js ├── joke.js ├── location.js ├── comp.js ├── insult.js ├── spdf.js ├── QandA.js ├── hmod.js ├── wame.js ├── owner.js ├── clear.js ├── bgm.js ├── changer.js ├── tagadmin.js ├── movie.js ├── scan.js ├── quotes.js ├── screenshot.js ├── adan.js ├── molu.js ├── multiuse.js ├── random.js ├── therivar.js ├── insta.js ├── attp.js ├── device.js ├── sprt.js ├── memes.js ├── updater.js ├── weather.js ├── removebg.js ├── voicy.js ├── ipsta.js ├── news.js ├── notes.js ├── stickers.js ├── ocr.js ├── lydia.js ├── report.js ├── someonesay.js ├── carbon.js ├── afk.js ├── greetings.js ├── show.js ├── evaluators.js ├── ffmpeg.js └── theri.js ├── _config.yml ├── heroku.yml ├── whatsasena ├── Dockerfile ├── index.js ├── Base.js ├── StringSession.js ├── Image.js ├── Video.js ├── Message.js └── ReplyMessage.js ├── julie ├── Dockerfile ├── index.js ├── Base.js ├── StringSession.js ├── Image.js ├── Video.js ├── Message.js └── ReplyMessage.js ├── language.js ├── .github └── FUNDING.yml ├── helpers.js ├── events.js ├── julie.js ├── qr.js ├── package.json ├── README.md ├── CONTRIBUTING.md ├── config.js └── app.json /plugins/sql/fsfl.js: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /plugins/test.txt: -------------------------------------------------------------------------------- 1 | test 2 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-modernist -------------------------------------------------------------------------------- /heroku.yml: -------------------------------------------------------------------------------- 1 | build: 2 | docker: 3 | worker: /julie/Dockerfile 4 | run: 5 | worker: npm start 6 | -------------------------------------------------------------------------------- /whatsasena/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM fusuf/whatsasena:latest 2 | 3 | RUN git clone https://github.com/farhan-dqz/JulieMwol /root/WhatsAsenaDuplicated 4 | WORKDIR /root/WhatsAsenaDuplicated/ 5 | ENV TZ=Europe/Istanbul 6 | RUN npm install supervisor -g 7 | RUN yarn install --no-audit 8 | 9 | CMD ["node", "bot.js"] 10 | -------------------------------------------------------------------------------- /julie/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM quay.io/lyfe00011/test:beta 2 | 3 | RUN git clone https://github.com/farhan-dqz/Julie-Mwol /root/WhatsAsenaDuplicated 4 | WORKDIR /root/WhatsAsenaDuplicated/ 5 | RUN yarn install --no-audit 6 | RUN git clone https://github.com/farhan-dqz/media 7 | RUN cp -R /root/Utils/* /root/WhatsAsenaDuplicated 8 | CMD ["node", "bot.js"] 9 | -------------------------------------------------------------------------------- /julie/index.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | module.exports = { 10 | Base: require('./Base'), 11 | Message: require('./Message'), 12 | StringSession: require('./StringSession'), 13 | ReplyMessage: require('./ReplyMessage'), 14 | Image: require('./Image'), 15 | Video: require('./Video') 16 | }; 17 | -------------------------------------------------------------------------------- /whatsasena/index.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | module.exports = { 10 | Base: require('./Base'), 11 | Message: require('./Message'), 12 | StringSession: require('./StringSession'), 13 | ReplyMessage: require('./ReplyMessage'), 14 | Image: require('./Image'), 15 | Video: require('./Video') 16 | }; 17 | -------------------------------------------------------------------------------- /julie/Base.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | 'use strict'; 10 | 11 | class Base { 12 | constructor(client) { 13 | Object.defineProperty(this, 'client', { value: client }); 14 | } 15 | 16 | _clone() { 17 | return Object.assign(Object.create(this), this); 18 | } 19 | 20 | _patch(data) { return data; } 21 | } 22 | 23 | module.exports = Base; 24 | -------------------------------------------------------------------------------- /whatsasena/Base.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | 'use strict'; 10 | 11 | class Base { 12 | constructor(client) { 13 | Object.defineProperty(this, 'client', { value: client }); 14 | } 15 | 16 | _clone() { 17 | return Object.assign(Object.create(this), this); 18 | } 19 | 20 | _patch(data) { return data; } 21 | } 22 | 23 | module.exports = Base; 24 | -------------------------------------------------------------------------------- /plugins/sql/lydia.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | 8 | 9 | const config = require('../../config'); 10 | const { DataTypes } = require('sequelize'); 11 | 12 | const LydiaDB = config.DATABASE.define('Lydia', { 13 | session_id: { 14 | type: DataTypes.STRING, 15 | allowNull: false 16 | }, 17 | expires: { 18 | type: DataTypes.INTEGER, 19 | allowNull: false 20 | }, 21 | users: { 22 | type: DataTypes.TEXT, 23 | allowNull: false 24 | } 25 | }); 26 | 27 | module.exports = { LydiaDB: LydiaDB }; 28 | */ 29 | -------------------------------------------------------------------------------- /plugins/up_down.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | 8 | 9 | const Asena = require('../events'); 10 | const {MessageType, Mimetype} = require('@adiwajshing/baileys'); 11 | const got = require('got') 12 | const fs = require('fs') 13 | const Language = require('../language'); 14 | const Lang = Language.getString('up_down'); 15 | 16 | Asena.addCommand({pattern: 'download ?(.*)', fromMe: true, desc: Lang.MEMES_DESC, usage: 'meme top;bottom'}, (async (message, match) => { 17 | if (message.reply_message === false) return await message.sendMessage(Lang.NEED_REPLY); 18 | 19 | })); 20 | */ 21 | -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: ['https://github.com/farhan-dqz','https://github.com/farhan-dqz/Julie-Mwol','toxic-devil.github.io'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /plugins/sql/plugin.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsJulie - Yusuf Usta 7 | */ 8 | 9 | const config = require('../../config'); 10 | const { DataTypes } = require('sequelize'); 11 | 12 | const PluginDB = config.DATABASE.define('Plugin', { 13 | name: { 14 | type: DataTypes.STRING, 15 | allowNull: false 16 | }, 17 | url: { 18 | type: DataTypes.TEXT, 19 | allowNull: false 20 | } 21 | }); 22 | 23 | async function installPlugin(adres, file) { 24 | var Plugin = await PluginDB.findAll({ 25 | where: {url: adres} 26 | }); 27 | 28 | if (Plugin.length >= 1) { 29 | return false; 30 | } else { 31 | return await PluginDB.create({ url: adres, name: file }); 32 | } 33 | } 34 | module.exports = { PluginDB: PluginDB, installPlugin: installPlugin }; -------------------------------------------------------------------------------- /plugins/joke.js: -------------------------------------------------------------------------------- 1 | const Asena = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const got = require('got'); 4 | 5 | const Language = require('../language'); 6 | const Lang = Language.getString('weather'); 7 | 8 | Asena.addCommand({pattern: 'joke ?(.*)', fromMe: false, desc: Lang.JOKE_DESC}, async (message, match) => { 9 | if (match[1] === 'xx') return await message.reply(Lang.NEED_LOCATIONA); 10 | const url = `https://official-joke-api.appspot.com/random_joke`; 11 | try { 12 | const response = await got(url); 13 | const json = JSON.parse(response.body); 14 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*🗣️ ' + Lang.JOKE +'* ```' + json.setup + '```\n\n' + 15 | '*😆' + Lang.PUNCHLINE +'* ```' + json.punchline+ '```\n', MessageType.text); 16 | } catch { 17 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDAC, MessageType.text); 18 | } 19 | }); 20 | -------------------------------------------------------------------------------- /plugins/location.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const Asena = 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 | Asena.addCommand({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/comp.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2021 Vai838. 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License. 4 | WhatsAsenaDuplicated 5 | */ 6 | 7 | const Asena = require('../events'); 8 | const {MessageType} = require('@adiwajshing/baileys'); 9 | const got = require('got'); 10 | 11 | const Language = require('../language'); 12 | const Lang = Language.getString('weather'); 13 | 14 | Asena.addCommand({pattern: 'compliment ?(.*)', fromMe: false, desc: Lang.CM_DESC}, async (message, match) => { 15 | if (match[1] === 'xx') return await message.reply(Lang.NEED_LOCATIONA); 16 | const url = `https://complimentr.com/api`; 17 | try { 18 | const response = await got(url); 19 | const json = JSON.parse(response.body); 20 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '\n\n *compliment : 🤗 ' + Lang.CM +'* ```' + json.compliment + '```\n\n' , MessageType.text); 21 | } catch { 22 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDAC, MessageType.text); 23 | } 24 | }); 25 | -------------------------------------------------------------------------------- /julie/StringSession.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const fs = require('fs'); 10 | 11 | class StringSession { 12 | constructor() { 13 | } 14 | 15 | deCrypt(string = undefined) { 16 | if ('JULIE_SESSION' in process.env && string === undefined) { 17 | string = process.env.STRING_SESSION; 18 | } else if (string !== undefined) { 19 | if (fs.existsSync(string)) { 20 | string = fs.readFileSync(string, {encoding:'utf8', flag:'r'}); 21 | } 22 | } 23 | 24 | var split = string.split(':::'); 25 | if (split.length >= 2) { 26 | return JSON.parse(Buffer.from(split[split.length - 1], 'base64').toString('utf-8')); 27 | } 28 | } 29 | 30 | createStringSession(dict) { 31 | return 'JulieMwol:::' + Buffer.from(JSON.stringify(dict)).toString('base64'); 32 | } 33 | } 34 | 35 | module.exports = StringSession; 36 | -------------------------------------------------------------------------------- /plugins/insult.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2021 Vai838. 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License. 4 | WhatsAsenaDuplicated 5 | */ 6 | 7 | const Asena = require('../events'); 8 | const {MessageType} = require('@adiwajshing/baileys'); 9 | const got = require('got'); 10 | 11 | const Language = require('../language'); 12 | const Lang = Language.getString('weather'); 13 | 14 | Asena.addCommand({pattern: 'insult ?(.*)', fromMe: false, desc: Lang.EVINS_DESC}, async (message, match) => { 15 | if (match[1] === 'xx') return await message.reply(Lang.NEED_LOCATIONA); 16 | const url = `https://evilinsult.com/generate_insult.php?lang=en&type=json`; 17 | try { 18 | const response = await got(url); 19 | const json = JSON.parse(response.body); 20 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '\n\n *Insult : 👿🤬 ' + Lang.EVINS +'* ```' + json.insult + '```\n\n', MessageType.text); 21 | } catch { 22 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDAC, MessageType.text); 23 | } 24 | }); 25 | -------------------------------------------------------------------------------- /whatsasena/StringSession.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const fs = require('fs'); 10 | 11 | class StringSession { 12 | constructor() { 13 | } 14 | 15 | deCrypt(string = undefined) { 16 | if ('ASENA_SESSION' in process.env && string === undefined) { 17 | string = process.env.STRING_SESSION; 18 | } else if (string !== undefined) { 19 | if (fs.existsSync(string)) { 20 | string = fs.readFileSync(string, {encoding:'utf8', flag:'r'}); 21 | } 22 | } 23 | 24 | var split = string.split(';;;'); 25 | if (split.length >= 2) { 26 | return JSON.parse(Buffer.from(split[split.length - 1], 'base64').toString('utf-8')); 27 | } 28 | } 29 | 30 | createStringSession(dict) { 31 | return 'ASENA;;;' + Buffer.from(JSON.stringify(dict)).toString('base64'); 32 | } 33 | } 34 | 35 | module.exports = StringSession; 36 | -------------------------------------------------------------------------------- /helpers.js: -------------------------------------------------------------------------------- 1 | /* 2 | # Copyright (C) 2020 MuhammedKpln. 3 | # 4 | # WhatsAsena is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # WhatsAsena is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | */ 18 | 19 | function successfullMessage(msg) { 20 | return "✅ *Julie Mwol*: ```" + msg + "```" 21 | } 22 | function errorMessage(msg) { 23 | return "🛑 *Julie Mwol*: ```" + msg + "```" 24 | } 25 | function infoMessage(msg) { 26 | return "⏺️ *Julie Mwol*: ```" + msg + "```" 27 | } 28 | 29 | 30 | module.exports = { 31 | successfullMessage, 32 | errorMessage, 33 | infoMessage 34 | } 35 | -------------------------------------------------------------------------------- /plugins/spdf.js: -------------------------------------------------------------------------------- 1 | let Julie = require('../events'); 2 | let {MessageType, MessageOptions, Mimetype} = require('@adiwajshing/baileys'); 3 | let fs = require('fs'); 4 | let axios = require('axios'); 5 | let request = require('request'); 6 | let got = require("got"); 7 | let Config = require('../config'); 8 | let Language = require('../language'); 9 | let Lang = Language.getString('unvoice'); 10 | let toxicdevil = Config.WORKTYPE == 'public' ? false : true 11 | 12 | Julie.addCommand({pattern: 'spdf ?(.*)', fromMe: toxicdevil, desc: 'Converts Site to PDF.' }, (async (message, match) => { 13 | 14 | if (match[1] === '') return await message.client.sendMessage(message.jid, '*You must enter a link!*', MessageType.text); 15 | 16 | var webimage = await axios.get(`https://api.html2pdf.app/v1/generate?url=${match[1]}&apiKey=begC4dFAup1b8LyRXxAfjetfqDg2uYx8PWmh9YJ59tTZXiUyh2Vs72HdYQB68vyc`, { responseType: 'arraybuffer' }) 17 | 18 | await message.client.sendMessage(message.jid, '```Converting Site to PDF```', MessageType.text); 19 | 20 | await message.sendMessage(Buffer.from(webimage.data), MessageType.document, {mimetype: Mimetype.pdf, filename: 'Julie-Mwol.pdf'}); 21 | 22 | })); 23 | -------------------------------------------------------------------------------- /plugins/QandA.js: -------------------------------------------------------------------------------- 1 | const Asena = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const axios = require('axios'); 4 | const Config = require('../config'); 5 | 6 | // CMD_HELP 7 | const brainly = "Finds the answer." 8 | const usage = ".brainly " 9 | 10 | const butuh = "```Enter the Question!```" 11 | 12 | Asena.addCommand({ pattern: 'brainly ?(.*)', fromMe: false, desc: brainly, usage: usage }, async (message, match) => { 13 | 14 | const Soal = match[1] 15 | 16 | if (match[1] === '') return await message.client.sendMessage(message.jid, butuh, MessageType.text); 17 | 18 | await axios 19 | .get(`https://api.xteam.xyz/brainly?APIKEY=10c4105200edc0f0&soal=${Soal}`) 20 | .then(async (response) => { 21 | const { 22 | soal, 23 | jawaban, 24 | } = response.data 25 | 26 | const msg = `*Soal:* ${soal} 27 | *Jawaban Brainly:* ${jawaban.replace(/1Question/g, '*(1) Question*').replace(/2Question/g, '*(2) Question*').replace(/3Question/g, '*(3) Question*').replace(/Answer/g, '*Answer*').replace(/Brainly Found/g, '')}` 28 | await message.client.sendMessage(message.jid, msg, MessageType.text) 29 | }) 30 | }, 31 | ) 32 | -------------------------------------------------------------------------------- /plugins/hmod.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2021 plk-dqz. 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License. 4 | WhatsAsenaDuplicated*/ 5 | 6 | 7 | const Asena = require('../events'); 8 | const {MessageType} = require('@adiwajshing/baileys'); 9 | const got = require('got'); 10 | 11 | const Language = require('../language'); 12 | const Lang = Language.getString('weather'); 13 | 14 | Asena.addCommand({pattern: 'happymod ?(.*)', fromMe: false, desc: Lang.HMODD_DESC, dontAddCommandList: true }, async (message, match) => { 15 | if (match[1] === '') return await message.reply(Lang.NEED_APPNAME); 16 | const url = `https://api.zeks.xyz/api/happymod?apikey=&q=${match[1]}&apikey=1hroZ3ju94h0PBjCNKsfhYaSuLs`; 17 | try { 18 | const response = await got(url); 19 | const json = JSON.parse(response.body); 20 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, 21 | '*📕 ' + Lang.NAMEY +'* ```' + json.result[0].title + '```\n\n' + 22 | '*📘 ' + Lang.SIZE +'* ```' + json.result[0].size + '```\n\n\n' + 23 | '*📗 ' + Lang.DOWNLOAD +':* ```' + json.result[0].link + '```\n', MessageType.text); 24 | } catch { 25 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDMD, MessageType.text); 26 | } 27 | }); 28 | -------------------------------------------------------------------------------- /plugins/wame.js: -------------------------------------------------------------------------------- 1 | const Julie = 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 | Julie.addCommand({pattern: 'wame ?(.*)', fromMe: false, 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 | })); -------------------------------------------------------------------------------- /plugins/owner.js: -------------------------------------------------------------------------------- 1 | const Julie = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const Config = require('../config'); 4 | 5 | if (Config.WORKTYPE == 'private') { 6 | 7 | Julie.addCommand({pattern: 'owner', fromMe: true, desc: 'shows the detail of bot owner'}, (async (message, match) => { 8 | 9 | if (message.jid === '15369524516-1612300121@g.us') { 10 | 11 | return; 12 | } 13 | 14 | if (Config.OWNER == 'default') { 15 | await message.client.sendMessage(message.jid,'*JulieMwol by Farhan_Dqz*' , MessageType.text); 16 | } 17 | else { 18 | await message.client.sendMessage(message.jid,Config.OWNER + '\n\n---------------------', MessageType.text); 19 | } 20 | })); 21 | } 22 | 23 | else if (Config.WORKTYPE == 'public') { 24 | 25 | Julie.addCommand({pattern: 'owner', fromMe: false, desc: 'shows the detail of bot owner'}, (async (message, match) => { 26 | 27 | if (message.jid === '54218542512-1612300121@g.us') { 28 | 29 | return; 30 | } 31 | 32 | if (Config.OWNER == 'default') { 33 | await message.client.sendMessage(message.jid,'*JulieMwol by Farhan_Dqz*' , MessageType.text); 34 | } 35 | else { 36 | await message.client.sendMessage(message.jid,Config.OWNER + '\n\n--------------------', MessageType.text); 37 | } 38 | })); 39 | } -------------------------------------------------------------------------------- /plugins/sql/notes.js: -------------------------------------------------------------------------------- 1 | /* 2 | # Copyright (C) 2020 MuhammedKpln. 3 | # 4 | # WhatsJulie is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # WhatsJulie is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | */ 18 | 19 | const config = require('../../config'); 20 | const { DataTypes } = require('sequelize'); 21 | 22 | const NotesDB = config.DATABASE.define('notes', { 23 | note: { 24 | type: DataTypes.TEXT, 25 | allowNull: false 26 | } 27 | }); 28 | 29 | 30 | async function getNotes() { 31 | const Notes = await NotesDB.findAll() 32 | 33 | return Notes 34 | } 35 | 36 | async function saveNote(note) { 37 | return await NotesDB.create({ note }); 38 | } 39 | 40 | async function deleteAllNotes() { 41 | return await NotesDB.destroy({ 42 | where: {}, 43 | truncate: true 44 | }) 45 | } 46 | 47 | module.exports = { 48 | NotesDB, 49 | getNotes, 50 | saveNote, 51 | deleteAllNotes 52 | }; 53 | -------------------------------------------------------------------------------- /plugins/clear.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 afnanplk. 2 | you may not use this file except in compliance with the License. 3 | */ 4 | 5 | 6 | const {MessageType, GroupSettingChange, ChatModification, WAConnectionTest} = require('@adiwajshing/baileys'); 7 | const Julie = require('../events'); 8 | const Config = require('../config'); 9 | 10 | const Language = require('../language'); 11 | const Lang = Language.getString('admin'); 12 | const mut = Language.getString('mute'); 13 | const END = "clear all messages" 14 | 15 | async function checkImAdmin(message, user = message.client.user.jid) { 16 | var grup = await message.client.groupMetadata(message.jid); 17 | var sonuc = grup['participants'].map((member) => { 18 | if (member.id.split('@')[0] === user.split('@')[0] && member.isAdmin) return true; else; return false; 19 | }); 20 | return sonuc.includes(true); 21 | } 22 | 23 | Julie.addCommand({pattern: 'clear', fromMe: true, desc: END, dontAddCommandList: true}, (async (message, match) => { 24 | 25 | await message.sendMessage('```cleaning chat...```'); 26 | await message.client.modifyChat (message.jid, ChatModification.delete); 27 | await message.sendMessage('```🏳 Chat cleared 🏳```'); 28 | })); 29 | 30 | Julie.addCommand({pattern: 'clean ?(.*)', fromMe: true, desc: END, dontAddCommandList: true}, (async (message, match) => { 31 | 32 | await message.sendMessage('Chat clearing...'); 33 | await message.client.modifyChat (match[1] == '' ? message.jid : match [1], ChatModification.delete); 34 | await message.sendMessage('🚮 Chat cleared'); 35 | })); -------------------------------------------------------------------------------- /plugins/bgm.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2021 afnanplk 2 | julie-pinky 3 | */ 4 | 5 | const Julie = require('../events'); 6 | const config = require('../config'); 7 | const Heroku = require('heroku-client'); 8 | const heroku = new Heroku({ 9 | token: config.HEROKU.API_KEY 10 | }); 11 | let baseURI = '/apps/' + config.HEROKU.APP_NAME; 12 | 13 | var l_dsc = '' 14 | var alr_on = '' 15 | var alr_off = '' 16 | var BGM_on = '' 17 | var BGM_off = '' 18 | if (config.LANG == 'EN') { 19 | l_dsc = 'turn on and turn off bgm. -bot owner command' 20 | BGM_on = 'bgm option turned on!' 21 | BGM_off = 'bgm option turned off' 22 | } 23 | if (config.LANG == 'ML') { 24 | l_dsc = 'bgm ഓണാക്കുക അല്ലെങ്കിൽ ഓഫ് ചെയ്യുക. -ബോട്ട് ഉടമ കമാൻഡ്' 25 | BGM_on = 'bgm ഓപ്ഷൻ ഓണാക്കി' 26 | BGM_off = 'bgm ഓപ്ഷൻ ഓഫാക്കി' 27 | } 28 | Julie.addCommand({pattern: 'bgm ?(.*)', fromMe: true, desc: l_dsc, usage: '.bgm on / off' }, (async (message, match) => { 29 | if (match[1] == 'off') { 30 | await heroku.patch(baseURI + '/config-vars', { 31 | body: { 32 | ['BGM_FILTER']: 'false' 33 | } 34 | }); 35 | await message.sendMessage(BGM_off) 36 | } else if (match[1] == 'on') { 37 | await heroku.patch(baseURI + '/config-vars', { 38 | body: { 39 | ['BGM_FILTER']: 'true' 40 | } 41 | }); 42 | await message.sendMessage(BGM_on) 43 | } 44 | })); 45 | -------------------------------------------------------------------------------- /plugins/changer.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 afnanplk. 2 | afnan-pinky 3 | */ 4 | 5 | const Julie = require('../events'); 6 | const config = require('../config'); 7 | const Heroku = require('heroku-client'); 8 | const heroku = new Heroku({ 9 | token: config.HEROKU.API_KEY 10 | }); 11 | let baseURI = '/apps/' + config.HEROKU.APP_NAME; 12 | 13 | var plk_desc = '' 14 | var BGM_ONE = '' 15 | var BGM_TWO = '' 16 | 17 | if (config.LANG == 'EN') { 18 | 19 | plk_desc = 'change reply message BGM mode' 20 | BGM_ONE = '𝐁𝐆𝐌 𝐭𝐲𝐩𝐞 𝐜𝐡𝗮𝐧𝐠𝐞𝐝 𝐭𝐨 𝟭𝘀𝘁 𝐦𝐨𝐝𝐞' 21 | BGM_TWO = '𝐁𝐆𝐌 𝐭𝐲𝐩𝐞 𝐜𝐡𝗮𝐧𝐠𝐞𝐝 𝐭𝐨 𝟐𝐧𝐝 𝐦𝐨𝐝𝐞' 22 | } 23 | 24 | if (config.LANG == 'ML') { 25 | 26 | plk_desc = 'മറുപടി bgm മോഡ് മാറ്റാൻ' 27 | BGM_ONE = '𝐁𝐆𝐌 തരം ഒന്നാം മോഡിലേക്ക് മാറ്റി' 28 | BGM_TWO = '𝐁𝐆𝐌 തരം രണ്ടാം മോഡിലേക്ക് മാറ്റി' 29 | } 30 | 31 | Julie.addCommand({pattern: 'bgm ?(.*)', fromMe: true, desc: plk_desc, usage: '.bgm one / two' }, (async (message, match) => { 32 | if (match[1] == 'two') { 33 | await heroku.patch(baseURI + '/config-vars', { 34 | body: { 35 | ['CHANGE_BGM_TO']: 'two' 36 | } 37 | }); 38 | await message.sendMessage(BGM_TWO) 39 | } else if (match[1] == 'one') { 40 | await heroku.patch(baseURI + '/config-vars', { 41 | body: { 42 | ['CHANGE_BGM_TO']: 'one' 43 | } 44 | }); 45 | await message.sendMessage(BGM_ONE) 46 | } 47 | })); -------------------------------------------------------------------------------- /plugins/tagadmin.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | */ 3 | 4 | const Julie = require('../events'); 5 | const {MessageType} = require('@adiwajshing/baileys'); 6 | const Config = require('../config'); 7 | 8 | const Language = require('../language'); 9 | const Lang = Language.getString('tagall'); 10 | 11 | if (Config.WORKTYPE == 'private') { 12 | Julie.addCommand({pattern: 'tagadmin$', fromMe: true, desc: Lang.TAGADMİN}, (async (message, match) => { 13 | let grup = await message.client.groupMetadata(message.jid); 14 | var jids = []; 15 | mesaj = ''; 16 | grup['participants'].map(async (uye) => { 17 | if (uye.isAdmin) { 18 | mesaj += '👮‍♂️@' + uye.id.split('@')[0] + '\n'; 19 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 20 | } 21 | }); 22 | await message.client.sendMessage(message.jid,mesaj, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 23 | })); 24 | } 25 | else if (Config.WORKTYPE == 'public') { 26 | Julie.addCommand({pattern: 'tagadmin$', fromMe: false, desc: Lang.TAGADMİN}, (async (message, match) => { 27 | let grup = await message.client.groupMetadata(message.jid); 28 | var jids = []; 29 | mesaj = ''; 30 | grup['participants'].map(async (uye) => { 31 | if (uye.isAdmin) { 32 | mesaj += '👮‍♂️@' + uye.id.split('@')[0] + '\n'; 33 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 34 | } 35 | }); 36 | await message.client.sendMessage(message.jid,mesaj, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 37 | })); 38 | } 39 | -------------------------------------------------------------------------------- /plugins/movie.js: -------------------------------------------------------------------------------- 1 | const Asena = require('../events'); 2 | const { MessageType } = require('@adiwajshing/baileys'); 3 | const got = require('got'); 4 | //LyFE 5 | Asena.addCommand({ pattern: 'movie ?(.*)', fromMe: false, desc: "Shows movie info." }, (async (message, match) => { 6 | if (match[1] === '') return await message.client.sendMessage(message.jid, '```Give me a name.```', MessageType.text, { quoted: message.data }); 7 | let url = `http://www.omdbapi.com/?apikey=742b2d09&t=${match[1]}&plot=full` 8 | const response = await got(url); 9 | const json = JSON.parse(response.body); 10 | if (json.Response != 'True') return await message.client.sendMessage(message.jid, '*Not found.*', MessageType.text, { quoted: message.data }); 11 | let msg = '```'; 12 | msg += 'Title : ' + json.Title + '\n\n'; 13 | msg += 'Year : ' + json.Year + '\n\n'; 14 | msg += 'Rated : ' + json.Rated + '\n\n'; 15 | msg += 'Released : ' + json.Released + '\n\n'; 16 | msg += 'Runtime : ' + json.Runtime + '\n\n'; 17 | msg += 'Genre : ' + json.Genre + '\n\n'; 18 | msg += 'Director : ' + json.Director + '\n\n'; 19 | msg += 'Writer : ' + json.Writer + '\n\n'; 20 | msg += 'Actors : ' + json.Actors + '\n\n'; 21 | msg += 'Plot : ' + json.Plot + '\n\n'; 22 | msg += 'Language : ' + json.Language + '\n\n'; 23 | msg += 'Country : ' + json.Country + '\n\n'; 24 | msg += 'Awards : ' + json.Awards + '\n\n'; 25 | msg += 'BoxOffice : ' + json.BoxOffice + '\n\n'; 26 | msg += 'Production : ' + json.Production + '\n\n'; 27 | msg += 'imdbRating : ' + json.imdbRating + '\n\n'; 28 | msg += 'imdbVotes : ' + json.imdbVotes + '```'; 29 | await message.client.sendMessage(message.jid, msg, MessageType.text, { quoted: message.data }); 30 | })); 31 | -------------------------------------------------------------------------------- /plugins/scan.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const Julie = 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 | Julie.addCommand({ 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 | Julie.addCommand({ 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 | } 41 | -------------------------------------------------------------------------------- /plugins/quotes.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2021 Vai838. 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License. 4 | WhatsAsenaDuplicated 5 | */ 6 | 7 | const Asena = require('../events'); 8 | const {MessageType} = require('@adiwajshing/baileys'); 9 | const got = require('got'); 10 | 11 | const Language = require('../language'); 12 | const Lang = Language.getString('weather'); 13 | 14 | 15 | 16 | 17 | 18 | 19 | Asena.addCommand({pattern: 'quote ?(.*)', fromMe: false, desc: Lang.QUOTE_DESC}, async (message, match) => { 20 | if (match[1] === 'xx') return await message.reply(Lang.NEED_LOCATIONA); 21 | const url = `https://api.quotable.io/random`; 22 | try { 23 | const response = await got(url); 24 | const json = JSON.parse(response.body); 25 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📌 ' + Lang.QUOTE +'* ```' + json.content + '```\n\n' + 26 | '*✒️' + Lang.AUTHOR +'* ```' + json.author+ '```\n', MessageType.text); 27 | } catch { 28 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDA, MessageType.text); 29 | } 30 | }); 31 | 32 | 33 | Asena.addCommand({pattern: 'pquote ?(.*)', fromMe: true, dontAddCommandList: true}, async (message, match) => { 34 | if (match[1] === 'xx') return await message.reply(Lang.NEED_LOCATIONA); 35 | const url = `https://api.quotable.io/random`; 36 | try { 37 | const response = await got(url); 38 | const json = JSON.parse(response.body); 39 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📌 ' + Lang.QUOTE +'* ```' + json.content + '```\n\n' + 40 | '*✒️' + Lang.AUTHOR +'* ```' + json.author+ '```\n', MessageType.text); 41 | } catch { 42 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDA, MessageType.text); 43 | } 44 | }); 45 | -------------------------------------------------------------------------------- /plugins/screenshot.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const Julie = require('../events'); 7 | const {MessageType, MessageOptions, Mimetype} = require('@adiwajshing/baileys'); 8 | const fs = require('fs'); 9 | const axios = require('axios'); 10 | const request = require('request'); 11 | const got = require("got"); 12 | const Config = require('../config'); 13 | 14 | const Language = require('../language'); 15 | const Lang = Language.getString('webss'); 16 | 17 | if (Config.WORKTYPE == 'private') { 18 | 19 | Julie.addCommand({pattern: 'ss ?(.*)', fromMe: true, desc: Lang.SS_DESC}, (async (message, match) => { 20 | 21 | if (match[1] === '') return await message.sendMessage(Lang.LİNK); 22 | 23 | var webimage = await axios.get(`https://shot.screenshotapi.net/screenshot?&full_page=true&url=${match[1]}&fresh=true&output=image&file_type=png&dark_mode=true&wait_for_event=load&delay=2000`, { responseType: 'arraybuffer' }) 24 | 25 | await message.sendMessage(Buffer.from(webimage.data), MessageType.image, {mimetype: Mimetype.jpg, caption: '*Screenshot*'}) 26 | 27 | })); 28 | } 29 | else if (Config.WORKTYPE == 'public') { 30 | 31 | Julie.addCommand({pattern: 'ss ?(.*)', fromMe: false, desc: Lang.SS_DESC}, (async (message, match) => { 32 | 33 | if (match[1] === '') return await message.sendMessage(Lang.LİNK); 34 | 35 | var webimage = await axios.get(`https://shot.screenshotapi.net/screenshot?&full_page=true&url=${match[1]}&fresh=true&output=image&file_type=png&dark_mode=true&wait_for_event=load&delay=2000`, { responseType: 'arraybuffer' }) 36 | 37 | await message.sendMessage(Buffer.from(webimage.data), MessageType.image, {mimetype: Mimetype.jpg, caption: '*Screenshot*'}) 38 | 39 | })); 40 | } 41 | 42 | -------------------------------------------------------------------------------- /plugins/adan.js: -------------------------------------------------------------------------------- 1 | /* Codded by @mrclfd // rapiUp 2 | recoded by farhan-dqz 3 | Semoga Berfaedah dan Berkah :) 4 | */ 5 | 6 | const Julie = require('../events'); 7 | const {MessageType} = require('@adiwajshing/baileys'); 8 | const got = require('got'); 9 | const Config = require('../config'); 10 | 11 | // CMD_HELP 12 | const adzan = "Finds prayer time." 13 | const usage = ".prayer " 14 | 15 | const butuh = "```give a city name!```" 16 | const renek = "```Not found the city!```" 17 | 18 | 19 | Julie.addCommand({pattern: 'adan ?(.*)', desc: adzan, usage: usage, fromMe: false}, async (message, match) => { 20 | 21 | if (match[1] === '') return await message.reply(butuh); 22 | const url = `https://api.pray.zone/v2/times/today.json?city=${match[1]}`; 23 | try { 24 | const response = await got(url); 25 | const json = JSON.parse(response.body); 26 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*Jadwal Sholat*:\n' + 27 | '📅 ```' + json.results.datetime[0].date.gregorian + ' | ' + json.results.location.timezone + '```\n' + 28 | '🌏 ```' + json.results.location.city + ' | ' + json.results.location.country + '```\n\n' + 29 | '```Imsak :``` *' + json.results.datetime[0].times.Imsak + '*\n' + 30 | '```Subuh :``` *' + json.results.datetime[0].times.Fajr + '*\n' + 31 | '```Dzuhur :``` *' + json.results.datetime[0].times.Dhuhr + '*\n' + 32 | '```Asar :``` *' + json.results.datetime[0].times.Asr + '*\n' + 33 | '```Maghrib :``` *' + json.results.datetime[0].times.Maghrib + '*\n' + 34 | '```Isha :``` *' + json.results.datetime[0].times.Isha + '*\n', MessageType.text); 35 | } catch { 36 | return await message.client.sendMessage(message.jid, renek, MessageType.text); 37 | } 38 | }); 39 | -------------------------------------------------------------------------------- /plugins/sql/greetings.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const config = require('../../config'); 10 | const { DataTypes } = require('sequelize'); 11 | 12 | const GreetingsDB = config.DATABASE.define('Greeting', { 13 | chat: { 14 | type: DataTypes.STRING, 15 | allowNull: false 16 | }, 17 | type: { 18 | type: DataTypes.STRING, 19 | allowNull: false 20 | }, 21 | message: { 22 | type: DataTypes.TEXT, 23 | allowNull: false 24 | } 25 | }); 26 | 27 | async function getMessage(jid = null, tip = 'welcome') { 28 | var Msg = await GreetingsDB.findAll({ 29 | where: { 30 | chat: jid, 31 | type: tip 32 | } 33 | }); 34 | 35 | if (Msg.length < 1) { 36 | return false; 37 | } else { 38 | return Msg[0].dataValues; 39 | } 40 | } 41 | 42 | async function setMessage(jid = null, tip = 'welcome', text = null) { 43 | var Msg = await GreetingsDB.findAll({ 44 | where: { 45 | chat: jid, 46 | type: tip 47 | } 48 | }); 49 | 50 | if (Msg.length < 1) { 51 | return await GreetingsDB.create({ chat: jid, type: tip, message:text }); 52 | } else { 53 | return await Msg[0].update({ chat: jid, type: tip, message:text }); 54 | } 55 | } 56 | 57 | async function deleteMessage(jid = null, tip = 'welcome') { 58 | var Msg = await GreetingsDB.findAll({ 59 | where: { 60 | chat: jid, 61 | type: tip 62 | } 63 | }); 64 | 65 | return await Msg[0].destroy(); 66 | } 67 | 68 | module.exports = { 69 | GreetingsDB: GreetingsDB, 70 | getMessage: getMessage, 71 | setMessage: setMessage, 72 | deleteMessage: deleteMessage 73 | }; -------------------------------------------------------------------------------- /plugins/molu.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2021 Vai838. 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License. 4 | WhatsAsenaDuplicated 5 | */ 6 | 7 | const Asena = require('../events'); 8 | const Config = require('../config'); 9 | const {MessageType} = require('@adiwajshing/baileys'); 10 | const got = require('got'); 11 | 12 | const Language = require('../language'); 13 | const Lang = Language.getString('weather'); 14 | 15 | if (Config.WORKTYPE == 'private') { 16 | 17 | Asena.addCommand({pattern: 'molu ?(.*)', fromMe: true, desc: Lang.BOT_DESC}, async (message, match) => { 18 | if (match[1] === 'xx') return await message.reply(Lang.NEED_LOCATIONA); 19 | const url = `https://api.simsimi.net/v1/?text=${match[1]}&lang=en&cf=true`; 20 | try { 21 | const response = await got(url); 22 | const json = JSON.parse(response.body); 23 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, ' \n\n*mwolus* 💗' + Lang.BOT +' ```' + json.messages[0].response + '```\n\n' , MessageType.text,{quoted: message.data}); 24 | } catch { 25 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDAC, MessageType.text); 26 | } 27 | }); 28 | } 29 | else if (Config.WORKTYPE == 'public') { 30 | 31 | Asena.addCommand({pattern: 'molu ?(.*)', fromMe: false, desc: Lang.BOT_DESC}, async (message, match) => { 32 | if (match[1] === 'xx') return await message.reply(Lang.NEED_LOCATIONA); 33 | const url = `https://api.simsimi.net/v1/?text=${match[1]}&lang=en&cf=true`; 34 | try { 35 | const response = await got(url); 36 | const json = JSON.parse(response.body); 37 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, ' \n\n*Mwolus* 💗' + Lang.BOT +' ```' + json.messages[0].response + '```\n\n' , MessageType.text,{quoted: message.data}); 38 | } catch { 39 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDAC, MessageType.text); 40 | } 41 | }); 42 | } 43 | -------------------------------------------------------------------------------- /plugins/multiuse.js: -------------------------------------------------------------------------------- 1 | const Asena = require('../events'); 2 | const {MessageType} = require('@adiwajshing/baileys'); 3 | const axios = require('axios'); 4 | const IG_DESC = "Downloads Image/Video From Instagram" 5 | 6 | Asena.addCommand({ pattern: 'insta ?(.*)', fromMe: false, desc: IG_DESC }, async (message, match) => { 7 | //if(match[1] == '') return 8 | let { data, type } = await instaGram(match[1], '958b7c4b9c34d718'); 9 | //if(type == undefined) return 10 | if (type === 'image') { await message.sendMessage(data, MessageType.image, { caption: "Made By JulieMwol" }) } 11 | else if (type === 'video') { await message.sendMessage(data, MessageType.video, { caption: "Made By JulieMwol" }) } 12 | }); 13 | //const axios = require('axios') 14 | async function instaGram(url, key){ 15 | const _0x477b=['135767iKnckP','673rRPNhH','data','1oVaSnc','1wFsRJN','5ZNKfRV','1082797kEqNzc','33405qKXkqX','get','536467jgcujZ','1509050KmQvtd','1sEPhwh','&APIKEY=','510217irWqHr','1753kjFBCd','20fokBTd'];function _0x34d6(_0x4f9dd8,_0x1e6344){return _0x34d6=function(_0x477b29,_0x34d6ab){_0x477b29=_0x477b29-0x128;let _0x12f50b=_0x477b[_0x477b29];return _0x12f50b;},_0x34d6(_0x4f9dd8,_0x1e6344);}const _0x88f305=_0x34d6;(function(_0x346d1d,_0xbe28c5){const _0x7c775f=_0x34d6;while(!![]){try{const _0x4a8522=parseInt(_0x7c775f(0x129))*-parseInt(_0x7c775f(0x136))+parseInt(_0x7c775f(0x12f))*parseInt(_0x7c775f(0x137))+parseInt(_0x7c775f(0x128))*parseInt(_0x7c775f(0x12d))+parseInt(_0x7c775f(0x12e))+parseInt(_0x7c775f(0x133))*parseInt(_0x7c775f(0x131))+parseInt(_0x7c775f(0x12c))*-parseInt(_0x7c775f(0x132))+-parseInt(_0x7c775f(0x135))*-parseInt(_0x7c775f(0x12b));if(_0x4a8522===_0xbe28c5)break;else _0x346d1d['push'](_0x346d1d['shift']());}catch(_0x1daac9){_0x346d1d['push'](_0x346d1d['shift']());}}}(_0x477b,0xc048d));const res=await axios('https://xteam.xyz/dl/ig?url='+url+_0x88f305(0x134)+key),{data,type}=res[_0x88f305(0x12a)]['result'][_0x88f305(0x12a)][0x0],buffer=await axios[_0x88f305(0x130)](data,{'responseType':'arraybuffer'});return{'data':buffer[_0x88f305(0x12a)],'type':type}; 16 | } 17 | -------------------------------------------------------------------------------- /plugins/random.js: -------------------------------------------------------------------------------- 1 | const Asena = require('../events'); 2 | const { MessageType, MessageOptions, Mimetype } = require('@adiwajshing/baileys'); 3 | const fs = require('fs'); 4 | const axios = require('axios'); 5 | const NEED_WORD = "*Must Enter some Words*" 6 | 7 | 8 | Asena.addCommand({ pattern: 'random ?(.*)', fromMe: false, 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(12*Math.random()) 26 | if (match[1] === '') return await message.sendMessage(NEED_WORD); 27 | console.log(match[1]) 28 | 29 | var ttinullimage = await axios.get(`${r_text[i]}`, { responseType: 'arraybuffer' }) 30 | 31 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.image, { mimetype: Mimetype.jpg, caption: '```PublicBot```' }) 32 | 33 | })); 34 | -------------------------------------------------------------------------------- /plugins/sql/filters.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const config = require('../../config'); 10 | const { DataTypes } = require('sequelize'); 11 | 12 | const FiltersDB = config.DATABASE.define('filter', { 13 | chat: { 14 | type: DataTypes.STRING, 15 | allowNull: false 16 | }, 17 | pattern: { 18 | type: DataTypes.TEXT, 19 | allowNull: false 20 | }, 21 | text: { 22 | type: DataTypes.TEXT, 23 | allowNull: false 24 | }, 25 | regex: { 26 | type: DataTypes.BOOLEAN, allowNull: false, defaultValue: false 27 | } 28 | }); 29 | 30 | async function getFilter(jid = null, filter = null) { 31 | var Wher = {chat: jid}; 32 | if (filter !== null) Wher.push({pattern: filter}); 33 | var Msg = await FiltersDB.findAll({ 34 | where: Wher 35 | }); 36 | 37 | if (Msg.length < 1) { 38 | return false; 39 | } else { 40 | return Msg; 41 | } 42 | } 43 | 44 | 45 | async function setFilter(jid = null, filter = null, tex = null, regx = false) { 46 | var Msg = await FiltersDB.findAll({ 47 | where: { 48 | chat: jid, 49 | pattern: filter 50 | } 51 | }); 52 | 53 | if (Msg.length < 1) { 54 | return await FiltersDB.create({ chat: jid, pattern: filter, text: tex, regex: regx }); 55 | } else { 56 | return await Msg[0].update({ chat: jid, pattern: filter, text: tex, regex: regx }); 57 | } 58 | } 59 | 60 | async function deleteFilter(jid = null, filter) { 61 | var Msg = await FiltersDB.findAll({ 62 | where: { 63 | chat: jid, 64 | pattern: filter 65 | } 66 | }); 67 | if (Msg.length < 1) { 68 | return false; 69 | } else { 70 | return await Msg[0].destroy(); 71 | } 72 | } 73 | 74 | module.exports = { 75 | FiltersDB: FiltersDB, 76 | getFilter: getFilter, 77 | setFilter: setFilter, 78 | deleteFilter: deleteFilter 79 | }; -------------------------------------------------------------------------------- /events.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | // Komutları burada tutacağız. 10 | var config = require('./config'); 11 | var Commands = []; 12 | 13 | function addCommand(info, func) { 14 | // Basit bir fonksiyon, komut eklemek için. 15 | var types = ['photo', 'image', 'text', 'message']; 16 | 17 | var infos = { 18 | fromMe: info['fromMe'] === undefined ? true : info['fromMe'], // Or Sudo 19 | onlyGroup: info['onlyGroup'] === undefined ? false : info['onlyGroup'], 20 | onlyPinned: info['onlyPinned'] === undefined ? false : info['onlyPinned'], 21 | onlyPm: info['onlyPm'] === undefined ? false : info['onlyPm'], 22 | deleteCommand: info['deleteCommand'] === undefined ? true : info['deleteCommand'], 23 | desc: info['desc'] === undefined ? '' : info['desc'], 24 | usage: info['usage'] === undefined ? '' : info['usage'], 25 | dontAddCommandList: info['dontAddCommandList'] === undefined ? false : info['dontAddCommandList'], 26 | warn: info['warn'] === undefined ? '' : info['warn'], 27 | function: func 28 | }; 29 | 30 | if (info['on'] === undefined && info['pattern'] === undefined) { 31 | infos.on = 'message'; 32 | infos.fromMe = false; 33 | } else if (info['on'] !== undefined && types.includes(info['on'])) { 34 | infos.on = info['on']; 35 | 36 | if (info['pattern'] !== undefined) { 37 | infos.pattern = new RegExp((info['handler'] === undefined || info['handler'] === true ? config.HANDLERS : '') + info.pattern, (info['flags'] !== undefined ? info['flags'] : '')); 38 | } 39 | } else { 40 | infos.pattern = new RegExp((info['handler'] === undefined || info['handler'] === true ? config.HANDLERS : '') + info.pattern, (info['flags'] !== undefined ? info['flags'] : '')); 41 | } 42 | 43 | Commands.push(infos); 44 | return infos; 45 | } 46 | 47 | module.exports = { 48 | addCommand: addCommand, 49 | commands: Commands 50 | } 51 | -------------------------------------------------------------------------------- /julie.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const chalk = require('chalk'); 10 | const {WAConnection, MessageOptions, MessageType} = require('@adiwajshing/baileys'); 11 | const {StringSession} = require('./julie/'); 12 | const fs = require('fs'); 13 | 14 | async function whatsAsena () { 15 | const conn = new WAConnection(); 16 | const Session = new StringSession(); 17 | conn.version = [3, 3234, 9] 18 | conn.logger.level = 'warn'; 19 | conn.regenerateQRIntervalMs = 50000; 20 | 21 | conn.on('connecting', async () => { 22 | console.log(`${chalk.green.bold('Whats')}${chalk.blue.bold('Asena')} 23 | ${chalk.white.italic('AsenaString Kodu Alıcı')} 24 | 25 | ${chalk.blue.italic('ℹ️ Connecting to Whatsapp... Please Wait.')}`); 26 | }); 27 | 28 | 29 | conn.on('open', async () => { 30 | var st = Session.createStringSession(conn.base64EncodedAuthInfo()); 31 | console.log( 32 | chalk.green.bold('Asena String Kodunuz: '), Session.createStringSession(conn.base64EncodedAuthInfo()) 33 | ); 34 | 35 | if (!fs.existsSync('config.env')) { 36 | fs.writeFileSync('config.env', `ASENA_SESSION="${st}"`); 37 | } 38 | if (conn.user.jid.startsWith('90')) { 39 | await conn.sendMessage(conn.user.jid,st, MessageType.text) 40 | await conn.sendMessage(conn.user.jid,'*Bu Kodu Kimseyle Paylaşmayın!*', MessageType.text) 41 | console.log( 42 | chalk.blue.bold('Locale kuruyorsanız node bot.js ile botu başlatabilirsiniz.') 43 | ); 44 | } 45 | else { 46 | await conn.sendMessage(conn.user.jid,st, MessageType.text) 47 | await conn.sendMessage(conn.user.jid,'*Do Not Share This Code With Anyone!*', MessageType.text) 48 | console.log( 49 | chalk.blue.bold('If you are installing locale, you can start the bot with node bot.js') 50 | ); 51 | } 52 | 53 | process.exit(0); 54 | }); 55 | 56 | await conn.connect(); 57 | } 58 | 59 | whatsAsena() 60 | -------------------------------------------------------------------------------- /qr.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const chalk = require('chalk'); 10 | const {WAConnection, MessageOptions, MessageType} = require('@adiwajshing/baileys'); 11 | const {StringSession} = require('./whatsasena/'); 12 | const fs = require('fs'); 13 | 14 | async function whatsAsena () { 15 | const conn = new WAConnection(); 16 | const Session = new StringSession(); 17 | conn.version = [2, 2119, 6] 18 | conn.logger.level = 'warn'; 19 | conn.regenerateQRIntervalMs = 50000; 20 | 21 | conn.on('connecting', async () => { 22 | console.log(`${chalk.green.bold('Whats')}${chalk.blue.bold('Asena')} 23 | ${chalk.white.italic('AsenaString Kodu Alıcı')} 24 | 25 | ${chalk.blue.italic('ℹ️ Connecting to Whatsapp... Please Wait.')}`); 26 | }); 27 | 28 | 29 | conn.on('open', async () => { 30 | var st = Session.createStringSession(conn.base64EncodedAuthInfo()); 31 | console.log( 32 | chalk.green.bold('Asena String Kodunuz: '), Session.createStringSession(conn.base64EncodedAuthInfo()) 33 | ); 34 | 35 | if (!fs.existsSync('config.env')) { 36 | fs.writeFileSync('config.env', `ASENA_SESSION="${st}"`); 37 | } 38 | if (conn.user.jid.startsWith('90')) { 39 | await conn.sendMessage(conn.user.jid,st, MessageType.text) 40 | await conn.sendMessage(conn.user.jid,'*Bu Kodu Kimseyle Paylaşmayın!*', MessageType.text) 41 | console.log( 42 | chalk.blue.bold('Locale kuruyorsanız node bot.js ile botu başlatabilirsiniz.') 43 | ); 44 | } 45 | else { 46 | await conn.sendMessage(conn.user.jid,st, MessageType.text) 47 | await conn.sendMessage(conn.user.jid,'*Do Not Share This Code With Anyone!*', MessageType.text) 48 | console.log( 49 | chalk.blue.bold('If you are installing locale, you can start the bot with node bot.js') 50 | ); 51 | } 52 | 53 | process.exit(0); 54 | }); 55 | 56 | await conn.connect(); 57 | } 58 | 59 | whatsAsena() 60 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "JulieMwol", 3 | "version": "7.3.6", 4 | "description": "Julie Mwol is the Modified Version of WhatsAsena, Made By @farhan-dqz with Baileys.", 5 | "main": "./Julie-Mwol/bot.js", 6 | "scripts": { 7 | "start": "supervisor -s bot.js" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/farhan-dqz/Julie-Mwol.git" 12 | }, 13 | "keywords": [ 14 | "whatsapp", 15 | "bot", 16 | "ai", 17 | "asena", 18 | "WhatsAsena" 19 | ], 20 | "author": "farhan-dqz", 21 | "developer": "@TOXIC-DEVIL / @farhan-dqz", 22 | "license": "GPL-3.0-or-later", 23 | "bugs": { 24 | "url": "https://github.com/farhan-dqz/Julie-Mwol/issues" 25 | }, 26 | "homepage": "https://github.com/farhan-dqz/Julie-Mwol#readme", 27 | "dependencies": { 28 | "@lh2020/speedtest-net": "^2.1.1", 29 | "textmaker-thiccy": "1.2.1", 30 | "browser-id3-writer": "^4.4.0", 31 | "playstore-scraper": "^1.0.0", 32 | "axios": "^0.21.1", 33 | "googlethis": "^1.0.7", 34 | "audiobuffer-to-wav": "1.0.0", 35 | "chalk": "^4.1.0", 36 | "coffeehouse": "^2.0.0", 37 | "cwebp": "^2.0.5", 38 | "search-engine-client": "^1.2.6", 39 | "deepai": "^1.0.17", 40 | "cwebp-bin": "^6.1.1", 41 | "tinyurl": "^1.1.7", 42 | "dotenv": "^8.2.0", 43 | "tiktok-scraper": "1.4.20", 44 | "request": "2.88.2", 45 | "exchange-rates-api": "^1.0.2", 46 | "fluent-ffmpeg": "^2.1.2", 47 | "form-data": "^4.0.0", 48 | "g-i-s": "^2.1.6", 49 | "google-translate-tts": "^0.3.0", 50 | "got": "^11.8.2", 51 | "heroku-client": "^3.1.0", 52 | "jimp": "0.16.0", 53 | "js-ffmpeg": "0.0.26", 54 | "jsdom": "^16.5.1", 55 | "langs": "^2.0.0", 56 | "languagedetect": "^2.0.0", 57 | "meme-maker": "^2.1.2", 58 | "mongodb": "^3.6.3", 59 | "node-fetch": "^2.6.1", 60 | "node-tesseract-ocr": "^2.0.0", 61 | "pg": "^8.5.1", 62 | "sequelize": "^6.5.1", 63 | "simple-git": "^2.37.0", 64 | "sozlukjs": "^1.1.0", 65 | "spotify-web-api-node": "^5.0.0", 66 | "sqlite3": "5.0.0", 67 | "solenolyrics": "^5.0.0", 68 | "translatte": "^3.0.0", 69 | "wikijs": "^6.0.1", 70 | "yt-search": "^2.7.4", 71 | "ytdl-core": "^4.8.3" 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /plugins/therivar.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License. 4 | WhatsAsena - Yusuf Usta 5 | */ 6 | 7 | const Asena = require('../events'); 8 | const config = require('../config'); 9 | const Heroku = require('heroku-client'); 10 | const heroku = new Heroku({ 11 | token: config.HEROKU.API_KEY 12 | }); 13 | let baseURI = '/apps/' + config.HEROKU.APP_NAME; 14 | 15 | var l_dsc = '' 16 | var alr_on = '' 17 | var alr_off = '' 18 | var THERI_on = '' 19 | var THERI_off = '' 20 | 21 | if (config.LANG == 'EN') { 22 | l_dsc = 'chilla theri vilichaal spot kick. -bot owner command' 23 | alr_on = 'Antilink is already open!' 24 | alr_off = 'Antilink is currently closed!' 25 | THERI_on = '*eni chilla theri vilcha kick akkum*' 26 | THERI_off = '*eni enth theri vennelum vili*' 27 | } 28 | 29 | if (config.LANG == 'HI') { 30 | l_dsc = 'एंटीलिंक टूल को सक्रिय करता है।' 31 | alr_on = 'एंटीलिंक पहले से ही खुला है!' 32 | alr_off = 'एंटीलिंक वर्तमान में बंद है!' 33 | THERI_on = 'bgm option turndा!' 34 | THERI_off = 'bgm option turned off' 35 | } 36 | if (config.LANG == 'ML') { 37 | l_dsc = 'ആന്റിലിങ്ക് ഉപകരണം സജീവമാക്കുന്നു.' 38 | alr_on = 'ആന്റിലിങ്ക് ഇതിനകം തുറന്നു!' 39 | alr_off = 'ആന്റിലിങ്ക് നിലവിൽ അടച്ചിരിക്കുന്നു!' 40 | THERI_on = 'bgm option turned on' 41 | THERI_off = 'bgm option turned off' 42 | } 43 | 44 | Asena.addCommand({pattern: 'theri ?(.*)', fromMe: true, desc: l_dsc, usage: '.theri no / yes' }, (async (message, match) => { 45 | if (match[1] == 'yes') { 46 | await heroku.patch(baseURI + '/config-vars', { 47 | body: { 48 | ['THERI_KICK']: 'false' 49 | } 50 | }); 51 | await message.sendMessage(THERI_off) 52 | } else if (match[1] == 'no') { 53 | await heroku.patch(baseURI + '/config-vars', { 54 | body: { 55 | ['THERI_KICK']: 'true' 56 | } 57 | }); 58 | await message.sendMessage(THERI_on) 59 | } 60 | })); 61 | -------------------------------------------------------------------------------- /plugins/insta.js: -------------------------------------------------------------------------------- 1 | const Julie = require('../events'); 2 | const { MessageType } = require('@adiwajshing/baileys'); 3 | const axios = require('axios') 4 | const LOAD_ING = "```Downloading media...```" 5 | const insta = async (url) => { 6 | const _0x28dd55=_0x22f8;(function(_0x6e4616,_0x20fbf4){const _0x5f08a0=_0x22f8,_0x543590=_0x6e4616();while(!![]){try{const _0x47ce4f=parseInt(_0x5f08a0(0x18f))/0x1*(-parseInt(_0x5f08a0(0x18c))/0x2)+parseInt(_0x5f08a0(0x186))/0x3+parseInt(_0x5f08a0(0x18e))/0x4+parseInt(_0x5f08a0(0x187))/0x5+-parseInt(_0x5f08a0(0x18b))/0x6*(-parseInt(_0x5f08a0(0x191))/0x7)+-parseInt(_0x5f08a0(0x189))/0x8+parseInt(_0x5f08a0(0x190))/0x9;if(_0x47ce4f===_0x20fbf4)break;else _0x543590['push'](_0x543590['shift']());}catch(_0x43264c){_0x543590['push'](_0x543590['shift']());}}}(_0x262b,0x958c6));function _0x22f8(_0x34880d,_0x3a9ec7){const _0x262b8a=_0x262b();return _0x22f8=function(_0x22f8be,_0x303338){_0x22f8be=_0x22f8be-0x186;let _0x2cb587=_0x262b8a[_0x22f8be];return _0x2cb587;},_0x22f8(_0x34880d,_0x3a9ec7);}function _0x262b(){const _0x2f210d=['4586310OLQpTT','status','8098928RQSAMf','arraybuffer','24hjpdgw','12462ZxnqZY','type','1234372cmdrql','135JItfCO','4565412KZhxIi','1175874aZFTNT','result','https://lyfe00011.herokuapp.com/insta?url=','data','183150GbzKts'];_0x262b=function(){return _0x2f210d;};return _0x262b();}let {data}=await axios(_0x28dd55(0x193)+url);if(!data[_0x28dd55(0x188)])return{'status':![],'buffer':''};const buffer=await axios(data[_0x28dd55(0x192)][0x0][_0x28dd55(0x194)],{'responseType':_0x28dd55(0x18a)});return{'status':!![],'type':data['result'][0x0][_0x28dd55(0x18d)],'data':buffer[_0x28dd55(0x194)]}; 7 | } 8 | 9 | Julie.addCommand({ pattern: 'insta ?(.*)', fromMe: false, desc: "Downloads from instagaram", dontAddCommandList: true }, async (message, match) => { 10 | const { status, type, data } = await insta(match[1]) 11 | if (!status) return await message.sendMessage('not found') 12 | await message.client.sendMessage(message.jid, LOAD_ING, MessageType.text, { quoted: message.data }); 13 | if (type === 'image') return await message.sendMessage(data, MessageType.image, { caption: "Made By JulieMwol", quoted: message.data }) 14 | if (type === 'video') return await message.sendMessage(data, MessageType.video, { caption: "Made By JulieMwol", quoted: message.data }) 15 | }); 16 | //lyfe00011-farhan_dqz -------------------------------------------------------------------------------- /julie/Image.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 10 | const Base = require('./Base'); 11 | const Message = require('./Message'); 12 | const ReplyMessage = require('./ReplyMessage'); 13 | 14 | class Image extends Base { 15 | constructor(client, data) { 16 | super(client); 17 | if (data) this._patch(data); 18 | } 19 | 20 | _patch(data) { 21 | this.id = data.key.id === undefined ? undefined : data.key.id; 22 | this.jid = data.key.remoteJid; 23 | this.fromMe = data.key.fromMe; 24 | this.caption = data.message.imageMessage.caption === null ? data.message.imageMessage.caption : ''; 25 | this.url = data.message.imageMessage.url; 26 | this.timestamp = typeof(data.messageTimestamp) === 'object' ? data.messageTimestamp.low : data.messageTimestamp; 27 | this.mimetype = data.message.imageMessage.mimetype; 28 | this.height = data.message.imageMessage.height; 29 | this.width = data.message.imageMessage.width; 30 | this.mediaKey = data.message.imageMessage.mediaKey; 31 | this.data = data; 32 | 33 | if (data.message.imageMessage.hasOwnProperty('contextInfo') && data.message.contextInfo.quotedMessage) { 34 | this.reply_message = new ReplyMessage(this.client, data.message.imageMessage.contextInfo); } 35 | else { 36 | this.reply_message = false; 37 | } 38 | 39 | return super._patch(data); 40 | } 41 | 42 | async delete() { 43 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}) 44 | } 45 | 46 | async reply(text) { 47 | var message = await this.client.sendMessage(this.jid, text, MessageType.text, {quoted: this.data}) 48 | return new Message(this.client, message) 49 | } 50 | 51 | async sendMessage(content, type, options) { 52 | return await this.client.sendMessage(this.jid, content, type, options) 53 | } 54 | 55 | async sendTyping() { 56 | return await this.client.updatePresence(this.jid, Presence.composing) ; 57 | } 58 | 59 | async sendRead() { 60 | return await this.client.chatRead(this.jid); 61 | } 62 | 63 | async download(location = this.id) { 64 | await this.client.downloadAndSaveMediaMessage(this.data, location); 65 | return this.id + '.' + this.mimetype.split('/')[1]; 66 | } 67 | }; 68 | 69 | module.exports = Image; -------------------------------------------------------------------------------- /julie/Video.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 10 | const Base = require('./Base'); 11 | const Message = require('./Message'); 12 | const ReplyMessage = require('./ReplyMessage'); 13 | 14 | class Video extends Base { 15 | constructor(client, data) { 16 | super(client); 17 | if (data) this._patch(data); 18 | } 19 | 20 | _patch(data) { 21 | this.id = data.key.id === undefined ? undefined : data.key.id; 22 | this.jid = data.key.remoteJid; 23 | this.fromMe = data.key.fromMe; 24 | this.caption = data.message.videoMessage.caption === null ? data.message.videoMessage.caption : ''; 25 | this.url = data.message.videoMessage.url; 26 | this.timestamp = typeof(data.messageTimestamp) === 'object' ? data.messageTimestamp.low : data.messageTimestamp; 27 | this.mimetype = data.message.videoMessage.mimetype; 28 | this.height = data.message.videoMessage.height; 29 | this.width = data.message.videoMessage.width; 30 | this.mediaKey = data.message.videoMessage.mediaKey; 31 | this.data = data; 32 | 33 | if (data.message.videoMessage.hasOwnProperty('contextInfo') && data.message.contextInfo.quotedMessage) { 34 | this.reply_message = new ReplyMessage(this.client, data.message.videoMessage.contextInfo); } 35 | else { 36 | this.reply_message = false; 37 | } 38 | 39 | return super._patch(data); 40 | } 41 | 42 | async delete() { 43 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}) 44 | } 45 | 46 | async reply(text) { 47 | var message = await this.client.sendMessage(this.jid, text, MessageType.text, {quoted: this.data}) 48 | return new Message(this.client, message) 49 | } 50 | 51 | async sendMessage(content, type, options) { 52 | return await this.client.sendMessage(this.jid, content, type, options) 53 | } 54 | 55 | async sendTyping() { 56 | return await this.client.updatePresence(this.jid, Presence.composing) ; 57 | } 58 | 59 | async sendRead() { 60 | return await this.client.chatRead(this.jid); 61 | } 62 | 63 | async download(location = this.id) { 64 | await this.client.downloadAndSaveMediaMessage(this.data, location); 65 | return this.id + '.' + this.mimetype.split('/')[1]; 66 | } 67 | }; 68 | 69 | module.exports = Video; -------------------------------------------------------------------------------- /whatsasena/Image.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 10 | const Base = require('./Base'); 11 | const Message = require('./Message'); 12 | const ReplyMessage = require('./ReplyMessage'); 13 | 14 | class Image extends Base { 15 | constructor(client, data) { 16 | super(client); 17 | if (data) this._patch(data); 18 | } 19 | 20 | _patch(data) { 21 | this.id = data.key.id === undefined ? undefined : data.key.id; 22 | this.jid = data.key.remoteJid; 23 | this.fromMe = data.key.fromMe; 24 | this.caption = data.message.imageMessage.caption === null ? data.message.imageMessage.caption : ''; 25 | this.url = data.message.imageMessage.url; 26 | this.timestamp = typeof(data.messageTimestamp) === 'object' ? data.messageTimestamp.low : data.messageTimestamp; 27 | this.mimetype = data.message.imageMessage.mimetype; 28 | this.height = data.message.imageMessage.height; 29 | this.width = data.message.imageMessage.width; 30 | this.mediaKey = data.message.imageMessage.mediaKey; 31 | this.data = data; 32 | 33 | if (data.message.imageMessage.hasOwnProperty('contextInfo') && data.message.contextInfo.quotedMessage) { 34 | this.reply_message = new ReplyMessage(this.client, data.message.imageMessage.contextInfo); } 35 | else { 36 | this.reply_message = false; 37 | } 38 | 39 | return super._patch(data); 40 | } 41 | 42 | async delete() { 43 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}) 44 | } 45 | 46 | async reply(text) { 47 | var message = await this.client.sendMessage(this.jid, text, MessageType.text, {quoted: this.data}) 48 | return new Message(this.client, message) 49 | } 50 | 51 | async sendMessage(content, type, options) { 52 | return await this.client.sendMessage(this.jid, content, type, options) 53 | } 54 | 55 | async sendTyping() { 56 | return await this.client.updatePresence(this.jid, Presence.composing) ; 57 | } 58 | 59 | async sendRead() { 60 | return await this.client.chatRead(this.jid); 61 | } 62 | 63 | async download(location = this.id) { 64 | await this.client.downloadAndSaveMediaMessage(this.data, location); 65 | return this.id + '.' + this.mimetype.split('/')[1]; 66 | } 67 | }; 68 | 69 | module.exports = Image; -------------------------------------------------------------------------------- /whatsasena/Video.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 10 | const Base = require('./Base'); 11 | const Message = require('./Message'); 12 | const ReplyMessage = require('./ReplyMessage'); 13 | 14 | class Video extends Base { 15 | constructor(client, data) { 16 | super(client); 17 | if (data) this._patch(data); 18 | } 19 | 20 | _patch(data) { 21 | this.id = data.key.id === undefined ? undefined : data.key.id; 22 | this.jid = data.key.remoteJid; 23 | this.fromMe = data.key.fromMe; 24 | this.caption = data.message.videoMessage.caption === null ? data.message.videoMessage.caption : ''; 25 | this.url = data.message.videoMessage.url; 26 | this.timestamp = typeof(data.messageTimestamp) === 'object' ? data.messageTimestamp.low : data.messageTimestamp; 27 | this.mimetype = data.message.videoMessage.mimetype; 28 | this.height = data.message.videoMessage.height; 29 | this.width = data.message.videoMessage.width; 30 | this.mediaKey = data.message.videoMessage.mediaKey; 31 | this.data = data; 32 | 33 | if (data.message.videoMessage.hasOwnProperty('contextInfo') && data.message.contextInfo.quotedMessage) { 34 | this.reply_message = new ReplyMessage(this.client, data.message.videoMessage.contextInfo); } 35 | else { 36 | this.reply_message = false; 37 | } 38 | 39 | return super._patch(data); 40 | } 41 | 42 | async delete() { 43 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}) 44 | } 45 | 46 | async reply(text) { 47 | var message = await this.client.sendMessage(this.jid, text, MessageType.text, {quoted: this.data}) 48 | return new Message(this.client, message) 49 | } 50 | 51 | async sendMessage(content, type, options) { 52 | return await this.client.sendMessage(this.jid, content, type, options) 53 | } 54 | 55 | async sendTyping() { 56 | return await this.client.updatePresence(this.jid, Presence.composing) ; 57 | } 58 | 59 | async sendRead() { 60 | return await this.client.chatRead(this.jid); 61 | } 62 | 63 | async download(location = this.id) { 64 | await this.client.downloadAndSaveMediaMessage(this.data, location); 65 | return this.id + '.' + this.mimetype.split('/')[1]; 66 | } 67 | }; 68 | 69 | module.exports = Video; -------------------------------------------------------------------------------- /julie/Message.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 10 | const Base = require('./Base'); 11 | const ReplyMessage = require('./ReplyMessage'); 12 | 13 | class Message extends Base { 14 | constructor(client, data) { 15 | super(client); 16 | if (data) this._patch(data); 17 | } 18 | 19 | _patch(data) { 20 | this.id = data.key.id === undefined ? undefined : data.key.id; 21 | this.jid = data.key.remoteJid; 22 | this.fromMe = data.key.fromMe; 23 | this.message = data.message.extendedTextMessage === null ? data.message.conversation : data.message.extendedTextMessage.text; 24 | this.unreadCount = data.unreadCount; 25 | this.timestamp = typeof(data.messageTimestamp) === 'object' ? data.messageTimestamp.low : data.messageTimestamp; 26 | this.data = data; 27 | 28 | if (data.message.hasOwnProperty('extendedTextMessage') && 29 | data.message.extendedTextMessage.hasOwnProperty('contextInfo') === true && 30 | data.message.extendedTextMessage.contextInfo.hasOwnProperty('quotedMessage')) { 31 | this.reply_message = new ReplyMessage(this.client, data.message.extendedTextMessage.contextInfo); } else { 32 | this.reply_message = false; 33 | } 34 | 35 | if (data.message.hasOwnProperty('extendedTextMessage') && 36 | data.message.extendedTextMessage.hasOwnProperty('contextInfo') === true && 37 | data.message.extendedTextMessage.contextInfo.hasOwnProperty('mentionedJid')) { 38 | this.mention = data.message.extendedTextMessage.contextInfo.mentionedJid; 39 | } else { 40 | this.mention = false; 41 | } 42 | 43 | return super._patch(data); 44 | } 45 | 46 | async delete() { 47 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}) 48 | } 49 | 50 | async reply(text) { 51 | var message = await this.client.sendMessage(this.jid, text, MessageType.text); 52 | return new Message(this.client, message) 53 | } 54 | 55 | async sendMessage(content, type = MessageType.text, options) { 56 | return await this.client.sendMessage(this.jid, content, type, options) 57 | } 58 | 59 | async sendTyping() { 60 | return await this.client.updatePresence(this.jid, Presence.composing) ; 61 | } 62 | 63 | async sendRead() { 64 | return await this.client.chatRead(this.jid); 65 | } 66 | }; 67 | 68 | module.exports = Message; -------------------------------------------------------------------------------- /whatsasena/Message.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 10 | const Base = require('./Base'); 11 | const ReplyMessage = require('./ReplyMessage'); 12 | 13 | class Message extends Base { 14 | constructor(client, data) { 15 | super(client); 16 | if (data) this._patch(data); 17 | } 18 | 19 | _patch(data) { 20 | this.id = data.key.id === undefined ? undefined : data.key.id; 21 | this.jid = data.key.remoteJid; 22 | this.fromMe = data.key.fromMe; 23 | this.message = data.message.extendedTextMessage === null ? data.message.conversation : data.message.extendedTextMessage.text; 24 | this.unreadCount = data.unreadCount; 25 | this.timestamp = typeof(data.messageTimestamp) === 'object' ? data.messageTimestamp.low : data.messageTimestamp; 26 | this.data = data; 27 | 28 | if (data.message.hasOwnProperty('extendedTextMessage') && 29 | data.message.extendedTextMessage.hasOwnProperty('contextInfo') === true && 30 | data.message.extendedTextMessage.contextInfo.hasOwnProperty('quotedMessage')) { 31 | this.reply_message = new ReplyMessage(this.client, data.message.extendedTextMessage.contextInfo); } else { 32 | this.reply_message = false; 33 | } 34 | 35 | if (data.message.hasOwnProperty('extendedTextMessage') && 36 | data.message.extendedTextMessage.hasOwnProperty('contextInfo') === true && 37 | data.message.extendedTextMessage.contextInfo.hasOwnProperty('mentionedJid')) { 38 | this.mention = data.message.extendedTextMessage.contextInfo.mentionedJid; 39 | } else { 40 | this.mention = false; 41 | } 42 | 43 | return super._patch(data); 44 | } 45 | 46 | async delete() { 47 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}) 48 | } 49 | 50 | async reply(text) { 51 | var message = await this.client.sendMessage(this.jid, text, MessageType.text); 52 | return new Message(this.client, message) 53 | } 54 | 55 | async sendMessage(content, type = MessageType.text, options) { 56 | return await this.client.sendMessage(this.jid, content, type, options) 57 | } 58 | 59 | async sendTyping() { 60 | return await this.client.updatePresence(this.jid, Presence.composing) ; 61 | } 62 | 63 | async sendRead() { 64 | return await this.client.chatRead(this.jid); 65 | } 66 | }; 67 | 68 | module.exports = Message; -------------------------------------------------------------------------------- /plugins/attp.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const Julie = require('../events'); 7 | const { MessageType, MessageOptions, Mimetype } = require('@adiwajshing/baileys'); 8 | const fs = require('fs'); 9 | const axios = require('axios'); 10 | const Config = require('../config'); 11 | 12 | const Language = require('../language'); 13 | const Lang = Language.getString('ttp'); 14 | 15 | 16 | if (Config.WORKTYPE == 'private') { 17 | Julie.addCommand({ pattern: 'ttp ?(.*)', fromMe: true, desc: Lang.TTP_DESC }, (async (message, match) => { 18 | if (match[1] === '') return await message.client.sendMessage(message.jid,Lang.NEED_WORD, MessageType.text); 19 | var uri = encodeURI(match[1]) 20 | var ttinullimage = await axios.get('https://api.xteam.xyz/ttp?file&text=' + uri, { responseType: 'arraybuffer' }) 21 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.image, { mimetype: Mimetype.jpg, caption: 'Made by publicbot' }) 22 | })); 23 | Julie.addCommand({ pattern: 'attp ?(.*)', fromMe: true, desc: Lang.ATTP_DESC }, (async (message, match) => { 24 | if (match[1] === '') return await message.client.sendMessage(message.jid,Lang.NEED_WORD, MessageType.text); 25 | var uri = encodeURI(match[1]) 26 | var ttinullimage = await axios.get('https://api.xteam.xyz/attp?file&text=' + uri, { responseType: 'arraybuffer' }) 27 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.sticker, { mimetype: Mimetype.webp }) 28 | })); 29 | } 30 | else if (Config.WORKTYPE == 'public') { 31 | Julie.addCommand({ pattern: 'ttp ?(.*)', fromMe: false, desc: Lang.TTP_DESC }, (async (message, match) => { 32 | if (match[1] === '') return await message.client.sendMessage(message.jid,Lang.NEED_WORD, MessageType.text); 33 | var uri = encodeURI(match[1]) 34 | var ttinullimage = await axios.get('https://api.xteam.xyz/ttp?file&text=' + uri, { responseType: 'arraybuffer' }) 35 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.image, { mimetype: Mimetype.jpg, caption: 'Made by publicbot' }) 36 | })); 37 | Julie.addCommand({ pattern: 'attp ?(.*)', fromMe: false, desc: Lang.ATTP_DESC }, (async (message, match) => { 38 | if (match[1] === '') return await message.client.sendMessage(message.jid,Lang.NEED_WORD, MessageType.text); 39 | var uri = encodeURI(match[1]) 40 | var ttinullimage = await axios.get('https://api.xteam.xyz/attp?file&text=' + uri, { responseType: 'arraybuffer' }) 41 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.sticker, { mimetype: Mimetype.webp }) 42 | })); 43 | } 44 | 45 | /* Copyright (C) 2020 Yusuf Usta. 46 | 47 | Licensed under the GPL-3.0 License; 48 | you may not use this file except in compliance with the License. 49 | 50 | WhatsAsena - Yusuf Usta 51 | */ 52 | -------------------------------------------------------------------------------- /plugins/device.js: -------------------------------------------------------------------------------- 1 | /* Copyright © @Farhan_dqz. 2 | you can copy file. but credit must be there!!! 3 | JulieMwol - Farhan-dqz 4 | */ 5 | 6 | const Julie = require('../events'); 7 | const {MessageType} = require('@adiwajshing/baileys'); 8 | const axios = require ('axios') 9 | const LOAD_ING = "*Searching details*" 10 | const Config = require('../config'); 11 | 12 | const Language = require('../language'); 13 | const Lang = Language.getString('scrapers'); 14 | 15 | if (Config.WORKTYPE == 'private') { 16 | Julie.addCommand({pattern: 'device ?(.*)', fromMe: true, desc: Lang.DEVICE , dontAddCommandList: true }, async (message, match) => { 17 | 18 | const {data} = await axios(`https://zenzapi.xyz/api/gsmarena?query=${match[1]}&apikey=a9a05974d30e`) 19 | const { status, result } = data 20 | if(!status) return await message.sendMessage('not found') 21 | await message.client.sendMessage(message.jid, LOAD_ING , MessageType.text, { quoted: message.data }); 22 | let msg = '```' 23 | msg += `NAME :${result.judul}\n\n` 24 | msg += `DATE :${result.rilis}\n\n` 25 | msg += `WEIGHT :${result.ukuran}\n\n` 26 | msg += `VERSION :${result.type}\n\n` 27 | msg += `ROM :${result.storage}\n\n` 28 | msg += `DISPLAY :${result.display}\n\n` 29 | msg += `RAM :${result.ram}\n\n` 30 | msg += `BATTERY :${result.batrai}\n\n` 31 | msg += `CPU :${result.chipset}\n\n` 32 | msg += `INCH :${result.inchi}\n\n` 33 | msg += `VIDEO MP :${result.videoPixel}\n\n` 34 | msg += `PIC :${result.thumb}\n\n` 35 | msg += `BATTERY BRAND :${result.pixel}\n\n` 36 | msg += '```' 37 | return await message.client.sendMessage(message.jid, msg, MessageType.text, { quoted: message.data }); 38 | }); 39 | } 40 | else if (Config.WORKTYPE == 'public') { 41 | Julie.addCommand({pattern: 'device ?(.*)', fromMe: false, desc: Lang.DEVICE , dontAddCommandList: true }, async (message, match) => { 42 | 43 | const {data} = await axios(`https://zenzapi.xyz/api/gsmarena?query=${match[1]}&apikey=a9a05974d30e`) 44 | const { status, result } = data 45 | if(!status) return await message.sendMessage('not found') 46 | await message.client.sendMessage(message.jid, LOAD_ING , MessageType.text, { quoted: message.data }); 47 | let msg = '```' 48 | msg += `NAME :${result.judul}\n\n` 49 | msg += `DATE :${result.rilis}\n\n` 50 | msg += `WEIGHT :${result.ukuran}\n\n` 51 | msg += `VERSION :${result.type}\n\n` 52 | msg += `ROM :${result.storage}\n\n` 53 | msg += `DISPLAY :${result.display}\n\n` 54 | msg += `RAM :${result.ram}\n\n` 55 | msg += `BATTERY :${result.batrai}\n\n` 56 | msg += `CPU :${result.chipset}\n\n` 57 | msg += `INCH :${result.inchi}\n\n` 58 | msg += `VIDEO MP :${result.videoPixel}\n\n` 59 | msg += `PIC :${result.thumb}\n\n` 60 | msg += `BATTERY BRAND :${result.pixel}\n\n` 61 | msg += '```' 62 | return await message.client.sendMessage(message.jid, msg, MessageType.text, { quoted: message.data }); 63 | }); 64 | } -------------------------------------------------------------------------------- /plugins/sprt.js: -------------------------------------------------------------------------------- 1 | const Asena = require('../events'); 2 | const { MessageType, MessageOptions, Mimetype } = require('@adiwajshing/baileys'); 3 | const fs = require('fs'); 4 | const axios = require('axios'); 5 | 6 | Asena.addCommand({pattern: 'pink', fromMe: false,dontAddCommandList: true}, (async (message, match) => { 7 | 8 | var r_text = new Array (); 9 | r_text[0] = "\nEda eda, mandankonappi.. Nee enne kooduthal mandan aakkatheda\n"; 10 | r_text[1] = "pinkye tholpikkaan ningalkavilla. Jeevitathil pinkiye tholpichittundu… palarum… palavattom…😥😥 aarellum aaa sed bgm onn iduo..."; 11 | r_text[2] = "pinky says i love you 😘"; 12 | r_text[3] = "Pinkyudeyude yudhangal Company Kanan Povunnatheyuloo"; 13 | r_text[4] = "hi, how are you"; 14 | r_text[5] = "ennikk korch rest theroo...🥵🥵"; 15 | r_text[6] = "pinky - eva - simsim \ningane ethra ethra paerugal aan alle enikk..😂🤣"; 16 | r_text[7] = "താനാരാണെന്ന് തനിക്ക് അറിയാന്‍ മേലങ്കില്‍താന്‍ എന്നോട്‌ ചോദിക്ക്.. താനാരണെന്ന്...തനിക്ക് ഞാന്‍ പറഞ്ഞു തരാംതാനാരാണെന്ന്...എന്നിട്ട്‌ഞാനാരാണെന്ന് എനിക്കാറിയാമൊന്നുതാനെന്നോട്‌ ചോദിക്ക്..അപ്പോ തനിക്ക് ഞാന്‍ പറഞ്ഞു തരാംതാനാരാണെന്നും ..ഞാനാരാണെന്നും - കുതിരവട്ടം പപ്പു, മണിച്ചിത്രതാഴ് "; 17 | r_text[8] = "\n enne vilicho...?🧐 \n"; 18 | r_text[9] = "ente per Pinky ,ninte per donkey, backi ellarum monkey😼😼"; 19 | r_text[10] = "nee vilicha enikk villi kelkathe irrikkaan pattuo"; 20 | r_text[11] = "do you know who is my creator..? its none other than afnanplk"; 21 | r_text[12] = "രണ്ട് ബക്കറ്റ് നിറയെ വെള്ളമുണ്ട്. അതിൽ ഒരു ബക്കറ്റിനു ദ്വാരമുള്ളതാണ്. എന്നാൽ ദ്വാരമുള്ള ബക്കറ്റിൽ നിന്നും വെള്ളം പോകുന്നില്ല. കാരണം എന്താണ്? para ninak vivaram indo nokkatte"; 22 | r_text[13] = ".song adich thangalude fav song name para pinky ath download aakki theraam"; 23 | r_text[14] = "ഹിന്ദിക്കാർ പോക്കറ്റിലും മലയാളികൾ അടുപ്പിലും വെക്കുന്ന സാധനം എന്ത്..? ennallum ath enthaayikkum...🤔🤔"; 24 | r_text[15] = "hi.. ningal ente fan aano..?"; 25 | r_text[16] = "ivide aaro ente per villichallo.. nee aano..?"; 26 | r_text[17] = "\n hey mishter ningalude per entha..?"; 27 | r_text[18] = "enikk njan und pinky uyir"; 28 | r_text[19] = "\n eda sathyam para nee ente fan alle..\n "; 29 | r_text[20] = "The coefficient's of linear expansions is the position of Haemoglobin in the atmosphere. But Why? Full Many gem of purests serene lay underneath the unfathomed ocean's unblossomeds ! But why? But why"; 30 | r_text[21] = "Kochi pazhaya kochiyellennariyam… pakshe pinky pazhaya pinky thanneya...😎\n\n"; 31 | r_text[22] = "Kaanaan oru look illanney ullu… bhayankara budhiya\n\n ninnak allatto enik pinkyik"; 32 | r_text[23] = "Ithalla ithinapparam chaadi kadannavananee K.K. pinky"; 33 | r_text[24] = "\nVarrierey… Enthado njan inganey aayi poyathu\n"; 34 | r_text[25] = "\nPempillerey roattikoodey nadakkaan nee sammathikkilla, alley?... Da, neeyaanee alavaladi Shaji alley\n"; 35 | r_text[26] = "\nAthu enne uddheshichanu… enne thanney uddheshichanu… enne maatram uddheshichanu\n"; 36 | r_text[27] = "\nBeedi undo saghave, oru theepetti edukkan\n"; 37 | r_text[28] = "\nIppo sheriyakithara… ippo sheriyakithara…\n"; 38 | r_text[29] = "\nEnne kollathirikkan pattuo? illa alley?\n"; 39 | r_text[30] = "motivate cheyaan aarkum kayyum ath cheyth kaanikkaaana paad.\n -Pinky"; 40 | var i = Math.floor(31*Math.random()) 41 | 42 | await message.sendMessage(r_text[i]); 43 | 44 | })); 45 | -------------------------------------------------------------------------------- /julie/ReplyMessage.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 10 | const Base = require('./Base'); 11 | const Image = require('./Image'); 12 | 13 | class ReplyMessage extends Base { 14 | constructor(client, data) { 15 | super(client); 16 | if (data) this._patch(data); 17 | } 18 | 19 | _patch(data) { 20 | this.id = data.stanzaId; 21 | this.jid = data.participant; 22 | if (data.quotedMessage && data.quotedMessage.imageMessage) { 23 | this.message = data.quotedMessage.imageMessage.caption === null ? data.message.imageMessage.caption : ''; 24 | this.caption = data.quotedMessage.imageMessage.caption === null ? data.message.imageMessage.caption : ''; 25 | this.url = data.quotedMessage.imageMessage.url; 26 | this.mimetype = data.quotedMessage.imageMessage.mimetype; 27 | this.height = data.quotedMessage.imageMessage.height; 28 | this.width = data.quotedMessage.imageMessage.width; 29 | this.mediaKey = data.quotedMessage.imageMessage.mediaKey; 30 | this.image = true; 31 | this.video = false; 32 | } else if (data.quotedMessage && data.quotedMessage.videoMessage) { 33 | this.message = data.quotedMessage.videoMessage.caption === null ? data.message.videoMessage.caption : ''; 34 | this.caption = data.quotedMessage.videoMessage.caption === null ? data.message.videoMessage.caption : ''; 35 | this.url = data.quotedMessage.videoMessage.url; 36 | this.mimetype = data.quotedMessage.videoMessage.mimetype; 37 | this.height = data.quotedMessage.videoMessage.height; 38 | this.width = data.quotedMessage.videoMessage.width; 39 | this.mediaKey = data.quotedMessage.videoMessage.mediaKey; 40 | this.video = true; 41 | } else if (data.quotedMessage && data.quotedMessage.conversation) { 42 | this.message = data.quotedMessage.conversation; 43 | this.text = data.quotedMessage.conversation; 44 | this.image = false; 45 | this.video = false; 46 | } 47 | 48 | this.data = data; 49 | 50 | return super._patch(data); 51 | } 52 | 53 | async delete() { 54 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}); 55 | } 56 | 57 | async reply(text) { 58 | var message = await this.client.sendMessage(this.jid, text, MessageType.text, {quoted: this.data}); 59 | return new Message(this.client, message) 60 | } 61 | 62 | async sendMessage(content, type, options) { 63 | return await this.client.sendMessage(this.jid, content, type, options); 64 | } 65 | 66 | async sendTyping() { 67 | return await this.client.updatePresence(this.jid, Presence.composing); 68 | } 69 | 70 | async download(location = this.id) { 71 | if (this.image) { 72 | await this.client.downloadAndSaveMediaMessage(this.data.quotedMessage.imageMessage, location); 73 | return this.id + '.' + this.mimetype.split('/')[1]; 74 | } else { 75 | return false; 76 | } 77 | } 78 | }; 79 | 80 | module.exports = ReplyMessage; -------------------------------------------------------------------------------- /whatsasena/ReplyMessage.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | const {MessageType, Presence, MessageOptions} = require('@adiwajshing/baileys'); 10 | const Base = require('./Base'); 11 | const Image = require('./Image'); 12 | 13 | class ReplyMessage extends Base { 14 | constructor(client, data) { 15 | super(client); 16 | if (data) this._patch(data); 17 | } 18 | 19 | _patch(data) { 20 | this.id = data.stanzaId; 21 | this.jid = data.participant; 22 | if (data.quotedMessage && data.quotedMessage.imageMessage) { 23 | this.message = data.quotedMessage.imageMessage.caption === null ? data.message.imageMessage.caption : ''; 24 | this.caption = data.quotedMessage.imageMessage.caption === null ? data.message.imageMessage.caption : ''; 25 | this.url = data.quotedMessage.imageMessage.url; 26 | this.mimetype = data.quotedMessage.imageMessage.mimetype; 27 | this.height = data.quotedMessage.imageMessage.height; 28 | this.width = data.quotedMessage.imageMessage.width; 29 | this.mediaKey = data.quotedMessage.imageMessage.mediaKey; 30 | this.image = true; 31 | this.video = false; 32 | } else if (data.quotedMessage && data.quotedMessage.videoMessage) { 33 | this.message = data.quotedMessage.videoMessage.caption === null ? data.message.videoMessage.caption : ''; 34 | this.caption = data.quotedMessage.videoMessage.caption === null ? data.message.videoMessage.caption : ''; 35 | this.url = data.quotedMessage.videoMessage.url; 36 | this.mimetype = data.quotedMessage.videoMessage.mimetype; 37 | this.height = data.quotedMessage.videoMessage.height; 38 | this.width = data.quotedMessage.videoMessage.width; 39 | this.mediaKey = data.quotedMessage.videoMessage.mediaKey; 40 | this.video = true; 41 | } else if (data.quotedMessage && data.quotedMessage.conversation) { 42 | this.message = data.quotedMessage.conversation; 43 | this.text = data.quotedMessage.conversation; 44 | this.image = false; 45 | this.video = false; 46 | } 47 | 48 | this.data = data; 49 | 50 | return super._patch(data); 51 | } 52 | 53 | async delete() { 54 | return await this.client.deleteMessage(this.jid, {id: this.id, remoteJid: this.jid, fromMe: true}); 55 | } 56 | 57 | async reply(text) { 58 | var message = await this.client.sendMessage(this.jid, text, MessageType.text, {quoted: this.data}); 59 | return new Message(this.client, message) 60 | } 61 | 62 | async sendMessage(content, type, options) { 63 | return await this.client.sendMessage(this.jid, content, type, options); 64 | } 65 | 66 | async sendTyping() { 67 | return await this.client.updatePresence(this.jid, Presence.composing); 68 | } 69 | 70 | async download(location = this.id) { 71 | if (this.image) { 72 | await this.client.downloadAndSaveMediaMessage(this.data.quotedMessage.imageMessage, location); 73 | return this.id + '.' + this.mimetype.split('/')[1]; 74 | } else { 75 | return false; 76 | } 77 | } 78 | }; 79 | 80 | module.exports = ReplyMessage; -------------------------------------------------------------------------------- /plugins/memes.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | Coded by @KursadHD 8 | */ 9 | 10 | const Asena = require('../events'); 11 | const {MessageType, Mimetype} = require('@adiwajshing/baileys'); 12 | const memeMaker = require('meme-maker') 13 | const fs = require('fs') 14 | const Config = require('../config'); 15 | 16 | const Language = require('../language'); 17 | const Lang = Language.getString('memes'); 18 | 19 | if (Config.WORKTYPE == 'private') { 20 | 21 | Asena.addCommand({pattern: 'meme ?(.*)', fromMe: true, desc: Lang.MEMES_DESC}, (async (message, match) => { 22 | 23 | if (message.reply_message === false) return await message.client.sendMessage(message.jid,Lang.NEED_REPLY, MessageType.text); 24 | var topText, bottomText; 25 | if (match[1].includes(';')) { 26 | var split = match[1].split(';'); 27 | topText = split[1]; 28 | bottomText = split[0]; 29 | } 30 | else { 31 | topText = match[1]; 32 | bottomText = ''; 33 | } 34 | 35 | var info = await message.reply(Lang.DOWNLOADING); 36 | 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 | 45 | memeMaker({ 46 | image: location, 47 | outfile: 'asena-meme.png', 48 | topText: topText, 49 | bottomText: bottomText, 50 | }, async function(err) { 51 | if(err) throw new Error(err) 52 | await message.client.sendMessage(message.jid, fs.readFileSync('asena-meme.png'), MessageType.image, {filename: 'asena-meme.png', mimetype: Mimetype.png, caption: 'Made by WhatsAsena'}); 53 | await info.delete(); 54 | }); 55 | })); 56 | } 57 | else if (Config.WORKTYPE == 'public') { 58 | 59 | Asena.addCommand({pattern: 'meme ?(.*)', fromMe: false, desc: Lang.MEMES_DESC}, (async (message, match) => { 60 | 61 | if (message.reply_message === false) return await message.client.sendMessage(message.jid,Lang.NEED_REPLY, MessageType.text); 62 | var topText, bottomText; 63 | if (match[1].includes(';')) { 64 | var split = match[1].split(';'); 65 | topText = split[1]; 66 | bottomText = split[0]; 67 | } 68 | else { 69 | topText = match[1]; 70 | bottomText = ''; 71 | } 72 | 73 | var info = await message.reply(Lang.DOWNLOADING); 74 | 75 | var location = await message.client.downloadAndSaveMediaMessage({ 76 | key: { 77 | remoteJid: message.reply_message.jid, 78 | id: message.reply_message.id 79 | }, 80 | message: message.reply_message.data.quotedMessage 81 | }); 82 | 83 | memeMaker({ 84 | image: location, 85 | outfile: 'asena-meme.png', 86 | topText: topText, 87 | bottomText: bottomText, 88 | }, async function(err) { 89 | if(err) throw new Error(err) 90 | await message.client.sendMessage(message.jid, fs.readFileSync('asena-meme.png'), MessageType.image, {filename: 'asena-meme.png', mimetype: Mimetype.png, caption: 'Made by WhatsAsena'}); 91 | await info.delete(); 92 | }); 93 | })); 94 | } 95 | -------------------------------------------------------------------------------- /plugins/updater.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsJulie - Yusuf Usta 7 | */ 8 | 9 | const simpleGit = require('simple-git'); 10 | const git = simpleGit(); 11 | const Julie = require('../events'); 12 | const {MessageType} = require('@adiwajshing/baileys'); 13 | const Config = require('../config'); 14 | const exec = require('child_process').exec; 15 | const Heroku = require('heroku-client'); 16 | const { PassThrough } = require('stream'); 17 | const heroku = new Heroku({ token: Config.HEROKU.API_KEY }) 18 | 19 | const Language = require('../language'); 20 | const Lang = Language.getString('updater'); 21 | 22 | 23 | Julie.addCommand({pattern: 'update$', fromMe: true, desc: Lang.UPDATER_DESC}, (async (message, match) => { 24 | await git.fetch(); 25 | var commits = await git.log([Config.BRANCH + '..origin/' + Config.BRANCH]); 26 | if (commits.total === 0) { 27 | await message.client.sendMessage( 28 | message.jid, 29 | Lang.UPDATE, MessageType.text 30 | ); 31 | } else { 32 | var degisiklikler = Lang.NEW_UPDATE; 33 | commits['all'].map( 34 | (commit) => { 35 | degisiklikler += '🔹 [' + commit.date.substring(0, 10) + ']: ' + commit.message + ' <' + commit.author_name + '>\n'; 36 | } 37 | ); 38 | 39 | await message.client.sendMessage( 40 | message.jid, 41 | degisiklikler + '```', MessageType.text 42 | ); 43 | } 44 | })); 45 | 46 | Julie.addCommand({pattern: 'update now$', fromMe: true, desc: Lang.UPDATE_NOW_DESC}, (async (message, match) => { 47 | await git.fetch(); 48 | var commits = await git.log([Config.BRANCH + '..origin/' + Config.BRANCH]); 49 | if (commits.total === 0) { 50 | return await message.client.sendMessage( 51 | message.jid, 52 | Lang.UPDATE, MessageType.text 53 | ); 54 | } else { 55 | var guncelleme = await message.reply(Lang.UPDATING); 56 | if (Config.HEROKU.HEROKU) { 57 | try { 58 | var app = await heroku.get('/apps/' + Config.HEROKU.APP_NAME) 59 | } catch { 60 | await message.client.sendMessage( 61 | message.jid,Lang.INVALID_HEROKU, MessageType.text); 62 | await new Promise(r => setTimeout(r, 1000)); 63 | return await message.client.sendMessage( 64 | message.jid,Lang.IN_AF, MessageType.text); 65 | } 66 | 67 | git.fetch('upstream', Config.BRANCH); 68 | git.reset('hard', ['FETCH_HEAD']); 69 | 70 | var git_url = app.git_url.replace( 71 | "https://", "https://api:" + Config.HEROKU.API_KEY + "@" 72 | ) 73 | 74 | try { 75 | await git.addRemote('heroku', git_url); 76 | } catch { console.log('heroku remote ekli'); } 77 | await git.push('heroku', Config.BRANCH); 78 | 79 | await message.client.sendMessage( 80 | message.jid,Lang.UPDATED, MessageType.text); 81 | 82 | await message.sendMessage(Lang.AFTER_UPDATE); 83 | 84 | } else { 85 | git.pull((async (err, update) => { 86 | if(update && update.summary.changes) { 87 | await message.client.sendMessage( 88 | message.jid,Lang.UPDATED_LOCAL, MessageType.text); 89 | exec('npm install').stderr.pipe(process.stderr); 90 | } else if (err) { 91 | await message.client.sendMessage( 92 | message.jid,'*❌ Güncelleme başarısız oldu!*\n*Hata:* ```' + err + '```', MessageType.text); 93 | } 94 | })); 95 | await guncelleme.delete(); 96 | } 97 | } 98 | })); 99 | -------------------------------------------------------------------------------- /plugins/weather.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsJulie - Yusuf Usta 7 | */ 8 | 9 | const Julie = require('../events'); 10 | const {MessageType} = require('@adiwajshing/baileys'); 11 | const got = require('got'); 12 | const Config = require('../config'); 13 | 14 | 15 | const Language = require('../language'); 16 | const Lang = Language.getString('weather'); 17 | 18 | if (Config.WORKTYPE == 'private') { 19 | 20 | Julie.addCommand({pattern: 'weather ?(.*)', desc: Lang.WEATHER_DESC, fromMe: true}, async (message, match) => { 21 | 22 | if (match[1] === '') return await message.reply(Lang.NEED_LOCATION); 23 | const url = `http://api.openweathermap.org/data/2.5/weather?q=${match[1]}&units=metric&appid=060a6bcfa19809c2cd4d97a212b19273&language=tr`; 24 | try { 25 | const response = await got(url); 26 | const json = JSON.parse(response.body); 27 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📍 ' + Lang.LOCATION +':* ```' + match[1] + '```\n\n' + 28 | '*☀ ' + Lang.TEMP +':* ```' + json.main.temp_max + '°```\n' + 29 | '*ℹ ' + Lang.DESC +':* ```' + json.weather[0].description + '```\n' + 30 | '*☀ ' + Lang.HUMI +':* ```%' + json.main.humidity + '```\n' + 31 | '*💨 ' + Lang.WIND +':* ```' + json.wind.speed + 'm/s```\n' + 32 | '*☁ ' + Lang.CLOUD +':* ```%' + json.clouds.all + '```\n', MessageType.text); 33 | } catch { 34 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUND, MessageType.text); 35 | } 36 | }); 37 | } 38 | if (Config.WORKTYPE == 'public') { 39 | 40 | Julie.addCommand({pattern: 'weather ?(.*)', desc: Lang.WEATHER_DESC, fromMe: false}, async (message, match) => { 41 | 42 | if (match[1] === '') return await message.reply(Lang.NEED_LOCATION); 43 | const url = `http://api.openweathermap.org/data/2.5/weather?q=${match[1]}&units=metric&appid=060a6bcfa19809c2cd4d97a212b19273&language=tr`; 44 | try { 45 | const response = await got(url); 46 | const json = JSON.parse(response.body); 47 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📍 ' + Lang.LOCATION +':* ```' + match[1] + '```\n\n' + 48 | '*☀ ' + Lang.TEMP +':* ```' + json.main.temp_max + '°```\n' + 49 | '*ℹ ' + Lang.DESC +':* ```' + json.weather[0].description + '```\n' + 50 | '*☀ ' + Lang.HUMI +':* ```%' + json.main.humidity + '```\n' + 51 | '*💨 ' + Lang.WIND +':* ```' + json.wind.speed + 'm/s```\n' + 52 | '*☁ ' + Lang.CLOUD +':* ```%' + json.clouds.all + '```\n', MessageType.text); 53 | } catch { 54 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUND, MessageType.text); 55 | } 56 | }); 57 | Julie.addCommand({pattern: 'weather ?(.*)', desc: Lang.WEATHER_DESC, fromMe: true, dontAddCommandList: true}, async (message, match) => { 58 | 59 | if (match[1] === '') return await message.reply(Lang.NEED_LOCATION); 60 | const url = `http://api.openweathermap.org/data/2.5/weather?q=${match[1]}&units=metric&appid=060a6bcfa19809c2cd4d97a212b19273&language=tr`; 61 | try { 62 | const response = await got(url); 63 | const json = JSON.parse(response.body); 64 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📍 ' + Lang.LOCATION +':* ```' + match[1] + '```\n\n' + 65 | '*☀ ' + Lang.TEMP +':* ```' + json.main.temp_max + '°```\n' + 66 | '*ℹ ' + Lang.DESC +':* ```' + json.weather[0].description + '```\n' + 67 | '*☀ ' + Lang.HUMI +':* ```%' + json.main.humidity + '```\n' + 68 | '*💨 ' + Lang.WIND +':* ```' + json.wind.speed + 'm/s```\n' + 69 | '*☁ ' + Lang.CLOUD +':* ```%' + json.clouds.all + '```\n', MessageType.text); 70 | } catch { 71 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUND, MessageType.text); 72 | } 73 | }); 74 | } 75 | -------------------------------------------------------------------------------- /plugins/removebg.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsJulie - Yusuf Usta 7 | */ 8 | 9 | const Julie = require('../events'); 10 | const {MessageType, Mimetype} = require('@adiwajshing/baileys'); 11 | const Config = require('../config'); 12 | const fs = require('fs'); 13 | const got = require('got'); 14 | const FormData = require('form-data'); 15 | const stream = require('stream'); 16 | const {promisify} = require('util'); 17 | 18 | const pipeline = promisify(stream.pipeline); 19 | 20 | const Language = require('../language'); 21 | const Lang = Language.getString('removebg'); 22 | 23 | if (Config.WORKTYPE == 'private') { 24 | 25 | Julie.addCommand({pattern: 'removebg ?(.*)', fromMe: true, desc: Lang.REMOVEBG_DESC}, (async (message, match) => { 26 | 27 | if (message.reply_message === false || message.reply_message.image === false) return await message.client.sendMessage(message.jid,Lang.NEED_PHOTO,MessageType.text); 28 | if (Config.RBG_API_KEY === false) return await message.client.sendMessage(message.jid,Lang.NO_API_KEY.replace('remove.bg', 'https://github.com/phaticusthiccy/WhatsJulieDuplicated/wiki/Remove-BG-API-Key'),MessageType.text); 29 | 30 | var load = await message.reply(Lang.RBGING); 31 | var location = await message.client.downloadAndSaveMediaMessage({ 32 | key: { 33 | remoteJid: message.reply_message.jid, 34 | id: message.reply_message.id 35 | }, 36 | message: message.reply_message.data.quotedMessage 37 | }); 38 | 39 | var form = new FormData(); 40 | form.append('image_file', fs.createReadStream(location)); 41 | form.append('size', 'auto'); 42 | 43 | var rbg = await got.stream.post('https://api.remove.bg/v1.0/removebg', { 44 | body: form, 45 | headers: { 46 | 'X-Api-Key': Config.RBG_API_KEY 47 | } 48 | }); 49 | 50 | await pipeline( 51 | rbg, 52 | fs.createWriteStream('rbg.png') 53 | ); 54 | 55 | await message.client.sendMessage(message.jid,fs.readFileSync('rbg.png'), MessageType.document, {filename: 'WhatsJulie.png', mimetype: Mimetype.png}); 56 | await load.delete(); 57 | })); 58 | } 59 | else if (Config.WORKTYPE == 'public') { 60 | 61 | Julie.addCommand({pattern: 'removebg ?(.*)', fromMe: false, desc: Lang.REMOVEBG_DESC}, (async (message, match) => { 62 | 63 | if (message.reply_message === false || message.reply_message.image === false) return await message.client.sendMessage(message.jid,Lang.NEED_PHOTO,MessageType.text); 64 | if (Config.RBG_API_KEY === false) return await message.client.sendMessage(message.jid,Lang.NO_API_KEY.replace('remove.bg', 'https://github.com/phaticusthiccy/WhatsJulieDuplicated/wiki/Remove-BG-API-Key'),MessageType.text); 65 | 66 | var load = await message.reply(Lang.RBGING); 67 | var location = await message.client.downloadAndSaveMediaMessage({ 68 | key: { 69 | remoteJid: message.reply_message.jid, 70 | id: message.reply_message.id 71 | }, 72 | message: message.reply_message.data.quotedMessage 73 | }); 74 | 75 | var form = new FormData(); 76 | form.append('image_file', fs.createReadStream(location)); 77 | form.append('size', 'auto'); 78 | 79 | var rbg = await got.stream.post('https://api.remove.bg/v1.0/removebg', { 80 | body: form, 81 | headers: { 82 | 'X-Api-Key': Config.RBG_API_KEY 83 | } 84 | }); 85 | 86 | await pipeline( 87 | rbg, 88 | fs.createWriteStream('rbg.png') 89 | ); 90 | 91 | await message.client.sendMessage(message.jid,fs.readFileSync('rbg.png'), MessageType.document, {filename: 'WhatsJulie.png', mimetype: Mimetype.png}); 92 | await load.delete(); 93 | })); 94 | 95 | } 96 | 97 | -------------------------------------------------------------------------------- /plugins/voicy.js: -------------------------------------------------------------------------------- 1 | const Asena = 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 | .audioCodec('pcm_s16le') 33 | .format('wav') 34 | .save('output.wav') 35 | } 36 | 37 | 38 | if (conf.WORKTYPE == 'private') { 39 | 40 | Asena.addCommand({ pattern: 'voicy', desc: Lang.USAGE, fromMe: true }, (async (message, match) => { 41 | 42 | try { 43 | if (message.reply_message) { 44 | if (!message.reply_message.text && !message.reply_message.video && !message.reply_message.image) { 45 | const file = await message.client.downloadAndSaveMediaMessage({ 46 | key: { 47 | remoteJid: message.reply_message.jid, 48 | id: message.reply_message.id 49 | }, 50 | message: message.reply_message.data.quotedMessage 51 | }) 52 | 53 | 54 | convertToWav(file).on('end', async () => { 55 | const recognizedText = await recognizeAudio() 56 | 57 | await message.client.sendMessage(message.jid, Lang.TEXT + '```' + recognizedText + '```', MessageType.text) 58 | }); 59 | 60 | 61 | } else { 62 | await message.client.sendMessage(message.jid, Lang.ONLY_AUDIO, MessageType.text) 63 | 64 | } 65 | } else { 66 | await message.client.sendMessage(message.jid, Lang.NEED_REPLY, MessageType.text) 67 | 68 | } 69 | 70 | } catch (err) { 71 | console.log(err) 72 | } 73 | 74 | 75 | })); 76 | } 77 | if (conf.WORKTYPE == 'public') { 78 | 79 | Asena.addCommand({ pattern: 'voicy', desc: Lang.USAGE, fromMe: false }, (async (message, match) => { 80 | 81 | try { 82 | if (message.reply_message) { 83 | if (!message.reply_message.text && !message.reply_message.video && !message.reply_message.image) { 84 | const file = await message.client.downloadAndSaveMediaMessage({ 85 | key: { 86 | remoteJid: message.reply_message.jid, 87 | id: message.reply_message.id 88 | }, 89 | message: message.reply_message.data.quotedMessage 90 | }) 91 | 92 | 93 | convertToWav(file).on('end', async () => { 94 | const recognizedText = await recognizeAudio() 95 | 96 | await message.client.sendMessage(message.jid, Lang.TEXT + '```' + recognizedText + '```', MessageType.text) 97 | }); 98 | 99 | 100 | } else { 101 | await message.client.sendMessage(message.jid, Lang.ONLY_AUDIO, MessageType.text) 102 | 103 | } 104 | } else { 105 | await message.client.sendMessage(message.jid, Lang.NEED_REPLY, MessageType.text) 106 | 107 | } 108 | 109 | } catch (err) { 110 | console.log(err) 111 | } 112 | 113 | 114 | })); 115 | } 116 | -------------------------------------------------------------------------------- /plugins/ipsta.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License. 4 | WhatsJulie - Yusuf Usta 5 | */ 6 | 7 | const Julie = require('../events'); 8 | const config = require('../config'); 9 | const Heroku = require('heroku-client'); 10 | const heroku = new Heroku({ 11 | token: config.HEROKU.API_KEY 12 | }); 13 | let baseURI = '/apps/' + config.HEROKU.APP_NAME; 14 | 15 | var l_dsc = '' 16 | var alr_on = '' 17 | var alr_off = '' 18 | var succ_on = '' 19 | var succ_off = '' 20 | if (config.LANG == 'TR') { 21 | l_dsc = 'Antilink aracını etkinleştirir.' 22 | alr_on = 'Antilink halihazırda açık!' 23 | alr_off = 'Antilink halihazırda kapalı!' 24 | succ_on = 'Antilink Başarıyla Açıldı!' 25 | succ_off = 'Antilink Başarıyla Kapatıldı!' 26 | } 27 | if (config.LANG == 'EN') { 28 | l_dsc = 'Activates the Antilink tool.' 29 | alr_on = 'Antilink is already open!' 30 | alr_off = 'Antilink is currently closed!' 31 | succ_on = 'Antilink Opened Successfully!' 32 | succ_off = 'Antilink Closed Successfully!' 33 | } 34 | if (config.LANG == 'AZ') { 35 | l_dsc = 'Antilink alətini aktivləşdirir.' 36 | alr_on = 'Antilink hazırda açıqdır!' 37 | alr_off = 'Antilink hazırda bağlıdır!' 38 | succ_on = '*Antilink Uğurla Açıldı!*' 39 | succ_off = '*Antilink Uğurla Bağlandı!*' 40 | } 41 | if (config.LANG == 'HI') { 42 | l_dsc = 'एंटीलिंक टूल को सक्रिय करता है।' 43 | alr_on = 'एंटीलिंक पहले से ही खुला है!' 44 | alr_off = 'एंटीलिंक वर्तमान में बंद है!' 45 | succ_on = 'एंटीलिंक सफलतापूर्वक खोला गया!' 46 | succ_off = 'एंटीलिंक सफलतापूर्वक बंद!' 47 | } 48 | if (config.LANG == 'ML') { 49 | l_dsc = 'ആന്റിലിങ്ക് ഉപകരണം സജീവമാക്കുന്നു.' 50 | alr_on = 'ആന്റിലിങ്ക് ഇതിനകം തുറന്നു!' 51 | alr_off = 'ആന്റിലിങ്ക് നിലവിൽ അടച്ചിരിക്കുന്നു!' 52 | succ_on = 'ആന്റിലിങ്ക് വിജയകരമായി തുറന്നു!' 53 | succ_off = 'ആന്റിലിങ്ക് വിജയകരമായി അടച്ചു!' 54 | } 55 | if (config.LANG == 'PT') { 56 | l_dsc = 'Ativa a ferramenta Antilink.' 57 | alr_on = 'O Antilink já está aberto!' 58 | alr_off = 'Antilink está fechado no momento!' 59 | succ_on = 'Antilink aberto com sucesso!' 60 | succ_off = 'Antilink fechado com sucesso!' 61 | } 62 | if (config.LANG == 'RU') { 63 | l_dsc = 'Активирует инструмент Antilink.' 64 | alr_on = 'Антилинк уже открыт!' 65 | alr_off = 'Антилинк сейчас закрыт!' 66 | succ_on = 'Антилинк успешно открыт!' 67 | succ_off = 'Антилинк успешно закрыт!' 68 | } 69 | if (config.LANG == 'ES') { 70 | l_dsc = 'Activa la herramienta Antilink.' 71 | alr_on = '¡Antilink ya está abierto!' 72 | alr_off = '¡Antilink está cerrado actualmente!' 73 | succ_on = '¡Antilink se abrió con éxito!' 74 | succ_off = 'Antilink cerrado correctamente!' 75 | } 76 | if (config.LANG == 'ID') { 77 | l_dsc = 'Mengaktifkan alat Antilink.' 78 | alr_on = 'Antilink sudah terbuka!' 79 | alr_off = 'Antilink saat ini ditutup!' 80 | succ_on = 'Antilink Berhasil Dibuka!' 81 | succ_off = 'Antilink Berhasil Ditutup!' 82 | } 83 | Julie.addCommand({pattern: 'antilink ?(.*)', fromMe: true, desc: l_dsc, usage: '.antilink on / off' }, (async (message, match) => { 84 | if (match[1] == 'off') { 85 | await heroku.patch(baseURI + '/config-vars', { 86 | body: { 87 | ['ANTİ_LİNK']: 'false' 88 | } 89 | }); 90 | await message.sendMessage(succ_off) 91 | } else if (match[1] == 'on') { 92 | await heroku.patch(baseURI + '/config-vars', { 93 | body: { 94 | ['ANTİ_LİNK']: 'true' 95 | } 96 | }); 97 | await message.sendMessage(succ_on) 98 | } 99 | })); 100 | 101 | -------------------------------------------------------------------------------- /plugins/news.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2021 Vai838. 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License. 4 | WhatsAsenaDuplicated 5 | */ 6 | 7 | const Asena = require('../events'); 8 | const {MessageType} = require('@adiwajshing/baileys'); 9 | const got = require('got'); 10 | 11 | const Language = require('../language'); 12 | const Lang = Language.getString('weather'); 13 | 14 | Asena.addCommand({pattern: 'news ?(.*)', fromMe: false, desc: Lang.NEWS_DESC}, async (message, match) => { 15 | if (match[1] === '') return await message.reply(Lang.NEED_CATEGORY); 16 | const url = `https://inshortsapi.vercel.app/news?category=${match[1]}`; 17 | try { 18 | const response = await got(url); 19 | const json = JSON.parse(response.body); 20 | if (response.statusCode === 200) return await message.client.sendMessage(message.jid, '*📁 ' + Lang.CATEGORY +':* ```' + match[1] + '```\n\n\n' + 21 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[0].title + '```\n' + 22 | '*📰 ' + Lang.NEWS +':* ```' + json.data[0].content + '```\n' + 23 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[0].readMoreUrl + '```\n\n' + 24 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[1].title + '```\n' + 25 | '*📰 ' + Lang.NEWS +':* ```' + json.data[1].content + '```\n' + 26 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[1].readMoreUrl + '```\n\n' + 27 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[2].title + '```\n' + 28 | '*📰 ' + Lang.NEWS +':* ```' + json.data[2].content + '```\n' + 29 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[2].readMoreUrl + '```\n\n' + 30 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[3].title + '```\n' + 31 | '*📰 ' + Lang.NEWS +':* ```' + json.data[3].content + '```\n' + 32 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[3].readMoreUrl + '```\n\n' + 33 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[4].title + '```\n' + 34 | '*📰 ' + Lang.NEWS +':* ```' + json.data[4].content + '```\n' + 35 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[4].readMoreUrl + '```\n\n'+ 36 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[5].title + '```\n' + 37 | '*📰 ' + Lang.NEWS +':* ```' + json.data[5].content + '```\n' + 38 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[5].readMoreUrl + '```\n\n'+ 39 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[6].title + '```\n' + 40 | '*📰 ' + Lang.NEWS +':* ```' + json.data[6].content + '```\n' + 41 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[6].readMoreUrl + '```\n\n'+ 42 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[7].title + '```\n' + 43 | '*📰 ' + Lang.NEWS +':* ```' + json.data[7].content + '```\n' + 44 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[7].readMoreUrl + '```\n\n'+ 45 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[8].title + '```\n' + 46 | '*📰 ' + Lang.NEWS +':* ```' + json.data[8].content + '```\n' + 47 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[8].readMoreUrl + '```\n\n'+ 48 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[9].title + '```\n' + 49 | '*📰 ' + Lang.NEWS +':* ```' + json.data[9].content + '```\n' + 50 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[9].readMoreUrl + '```\n\n'+ 51 | '*◼️ ' + Lang.NEWST +':* ```' + json.data[10].title + '```\n' + 52 | '*📰 ' + Lang.NEWS +':* ```' + json.data[10].content + '```\n' + 53 | '*👉 ' + Lang.RMLINK +':* ```' + json.data[10].readMoreUrl + '```\n\n', MessageType.text); 54 | } catch { 55 | return await message.client.sendMessage(message.jid, Lang.NOT_FOUNDC, MessageType.text); 56 | } 57 | }); 58 | -------------------------------------------------------------------------------- /plugins/notes.js: -------------------------------------------------------------------------------- 1 | /* 2 | # Copyright (C) 2020 MuhammedKpln. 3 | # 4 | # WhatsJulie is free software: you can redistribute it and/or modify 5 | # it under the terms of the GNU General Public License as published by 6 | # the Free Software Foundation, either version 3 of the License, or 7 | # (at your option) any later version. 8 | # 9 | # WhatsJulie is distributed in the hope that it will be useful, 10 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | # GNU General Public License for more details. 13 | # 14 | # You should have received a copy of the GNU General Public License 15 | # along with this program. If not, see . 16 | # 17 | */ 18 | 19 | const fs = require('fs/promises') 20 | const path = require('path') 21 | const { MessageType } = require('@adiwajshing/baileys') 22 | const Julie = require('../events'); 23 | const { successfullMessage, errorMessage, infoMessage } = require('../helpers'); 24 | const NotesDB = require('./sql/notes'); 25 | const Language = require('../language') 26 | const Lang = Language.getString('notes') 27 | 28 | Julie.addCommand({ pattern: 'notes', fromMe: true, desc: Lang.NOTES_USAGE }, async (message, match) => { 29 | 30 | 31 | const _notes = await NotesDB.getNotes() 32 | const notes = [] 33 | _notes.map(note => { 34 | if (!note.note.includes('IMG;;;')) { 35 | notes.push('📜' + note.note) 36 | } 37 | }) 38 | 39 | if (notes.length < 1) { 40 | return await message.sendMessage(infoMessage(Lang.NO_SAVED)) 41 | } 42 | 43 | await message.sendMessage(infoMessage(Lang.SAVED)) 44 | 45 | await message.sendMessage(notes.join('\n\n')) 46 | _notes.filter(note => note.note.includes('IMG;;;')).forEach(async (note) => { 47 | const imageName = note.note.replace('IMG;;;', '') 48 | const image = await fs.readFile(path.resolve('media', imageName)) 49 | await message.sendMessage(image, MessageType.image) 50 | }) 51 | 52 | 53 | }) 54 | 55 | 56 | 57 | Julie.addCommand({ pattern: 'save ?(.*)', fromMe: true, desc: Lang.SAVE_USAGE }, async (message, match) => { 58 | 59 | const userNote = match[1] 60 | 61 | if (!userNote && !message.reply_message) { 62 | await message.sendMessage(errorMessage(Lang.REPLY)) 63 | 64 | return 65 | } 66 | 67 | if (userNote) { 68 | await NotesDB.saveNote(userNote) 69 | await message.sendMessage(successfullMessage(Lang.SUCCESSFULLY_ADDED), MessageType.text) 70 | 71 | return 72 | 73 | } else if (!userNote && message.reply_message) { 74 | if (!message.reply_message.video) { 75 | 76 | if (message.reply_message.image) { 77 | const savedFileName = await message.client.downloadAndSaveMediaMessage({ 78 | key: { 79 | remoteJid: message.reply_message.jid, 80 | id: message.reply_message.id 81 | }, 82 | message: message.reply_message.data.quotedMessage 83 | }) 84 | 85 | const randomFileName = savedFileName.split('.')[0] + Math.floor(Math.random() * 50) + path.extname(savedFileName) 86 | await fs.copyFile(savedFileName, path.resolve('media', randomFileName)) 87 | await NotesDB.saveNote("IMG;;;" + randomFileName) 88 | await message.sendMessage(successfullMessage(Lang.SUCCESSFULLY_ADDED), MessageType.text) 89 | 90 | 91 | } 92 | 93 | await NotesDB.saveNote(message.reply_message.text) 94 | await message.sendMessage(successfullMessage(Lang.SUCCESSFULLY_ADDED), MessageType.text) 95 | 96 | return 97 | } 98 | } else { 99 | await message.sendMessage(errorMessage(Lang.UNSUCCESSFUL)) 100 | 101 | return 102 | } 103 | }) 104 | 105 | Julie.addCommand({ pattern: 'deleteNotes', fromMe: true, desc: Lang.DELETE_USAGE }, async (message, match) => { 106 | 107 | await NotesDB.deleteAllNotes() 108 | 109 | const mediaFolder = await fs.readdir(path.resolve('media')) 110 | 111 | mediaFolder.forEach(async (file) => { 112 | await fs.unlink(path.resolve('media', file)) 113 | }) 114 | 115 | return await message.sendMessage(successfullMessage(Lang.SUCCESSFULLY_DELETED)) 116 | }) 117 | 118 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |

5 | 6 |

7 |

8 | 9 |

10 |
11 |

12 | Project created by Farhan-dqz to make it public 13 |
14 | | © | 15 | Reserved | 16 |
17 |

18 | 19 | ![Profile Views](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https://github.com/farhan-dqz/JulieMwol&title=Profile%20Views) 20 | 21 | ## Setup 22 |
23 | 24 | ### Simple Method 25 | 26 | [![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://heroku.com/deploy?template=https://github.com/farhan-dqz/Julie-Mwol) 27 | 28 | [![Run on Repl.it](https://repl.it/badge/github/quiec/whatsAlfa)](https://replit.com/@Farhandqz/JulieMwol) 29 | 30 | ### The Hard Method 31 | ```js 32 | GET QR 33 | $ apt install git 34 | $ apt install nodejs --fix-missing 35 | $ git clone https://github.com/farhan-dqz/Julie-Mwol 36 | $ cd Julie-Mwol 37 | $ npm install @adiwajshing/baileys 38 | $ npm install chalk 39 | $ node julie.js 40 | ``` 41 | 42 | ```js 43 | SETUP 44 | $ git clone https://github.com/farhan-dqz/JulieMwol 45 | $ cd Julie-Mwol 46 | $ npm i 47 | $ node julie.js 48 | ``` 49 | 50 | ---- 51 | 52 |

53 | 54 | 55 | 56 | 57 |

58 | 60 | 61 | 62 | 63 |

64 | 65 | ## 📢 Guide 66 | Click WA logo to Join Support Group 👇 67 |
68 |
69 | [![join](https://github.com/Alien-alfa/PublicBot/blob/main/wlogo.svg.png)](https://chat.whatsapp.com/BT0nNPBthyFI1ejoSr0i7W) 70 |
71 | 72 | [![Readme Card](https://github-readme-stats.vercel.app/api/pin/?username=farhan-dqz&repo=Julie-Mwol&theme=nightowl)](https://github.com/farhan-dqz/Julie-Mwol) 73 |
74 | 75 | ### ⚠️ Warning! 76 | ``` 77 | Due to Userbot; Your WhatsApp account may be banned. 78 | This is an open source project, you are responsible for everything you do. 79 | Absolutely, Asena executives do not accept responsibility. 80 | By establishing the Asena, you are deemed to have accepted these responsibilities. 81 | ``` 82 | 83 | ## Developers 84 |
85 | 86 | [![Farhan-Dqz](https://github.com/farhan-dqz.png?size=100)](https://github.com/farhan-dqz) | [![TOXIC-DEVIL](https://github.com/TOXIC-DEVIL.png?size=100)](https://github.com/TOXIC-DEVIL) | [![TOXIC4L!3N](https://github.com/Alien-alfa.png?size=100)](https://github.com/AI-VIKI) | [![afnanplk](https://github.com/afnanplk.png?size=100)](https://github.com/afnanplk) 87 | ----|----|----|---- 88 | [farhan-dqz](https://github.com/farhan-dqz) | [TOXIC-DEVIL](https://github.com/TOXIC-DEVIL) | [TOXIC4L!3N](https://github.com/AI-VIKI) | [afnanplk](https://github.com/afnanplk) 89 | Developer, Base, Bug Fixes, Modules| Re-Developer, Bug Fixes, Modules, Commits |  Modifiying as public | Bug Fixes, Modules 90 |
91 | 92 | 93 | 94 | ## License 95 | This project is protected by `GNU General Public Licence v3.0` license. 96 | 97 | ### Disclaimer 98 | `WhatsApp` name, its variations and the logo are registered trademarks of Facebook. We have nothing to do with the registered trademark 99 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Farhan-dqz 2 | 3 | When contributing to this repository, please first discuss the change you wish to make via issue, 4 | email, or any other method with the owners of this repository before making a change. 5 | 6 | Please note we have a code of conduct, please follow it in all your interactions with the project. 7 | 8 | ## Pull Request Process 9 | 10 | 1. Ensure any install or build dependencies are removed before the end of the layer when doing a 11 | build. 12 | 2. Update the README.md with details of changes to the interface, this includes new environment 13 | variables, exposed ports, useful file locations and container parameters. 14 | 3. Increase the version numbers in any examples files and the README.md to the new version that this 15 | Pull Request would represent. The versioning scheme we use is [ReadMe](https://github.com/farhan-dqz/Julie-Mwol/blob/master/README.md). 16 | 4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you 17 | do not have permission to do that, you may request the second reviewer to merge it for you. 18 | 19 | ## Code of Conduct 20 | 21 | ### Our Pledge 22 | 23 | In the interest of fostering an open and welcoming environment, we as 24 | contributors and maintainers pledge to making participation in our project and 25 | our community a harassment-free experience for everyone, regardless of age, body 26 | size, disability, ethnicity, gender identity and expression, level of experience, 27 | nationality, personal appearance, race, religion, or sexual identity and 28 | orientation. 29 | 30 | ### Our Standards 31 | 32 | Examples of behavior that contributes to creating a positive environment 33 | include: 34 | 35 | * Using welcoming and inclusive language 36 | * Being respectful of differing viewpoints and experiences 37 | * Gracefully accepting constructive criticism 38 | * Focusing on what is best for the community 39 | * Showing empathy towards other community members 40 | 41 | Examples of unacceptable behavior by participants include: 42 | 43 | * The use of sexualized language or imagery and unwelcome sexual attention or 44 | advances 45 | * Trolling, insulting/derogatory comments, and personal or political attacks 46 | * Public or private harassment 47 | * Publishing others' private information, such as a physical or electronic 48 | address, without explicit permission 49 | * Other conduct which could reasonably be considered inappropriate in a 50 | professional setting 51 | 52 | ### Our Responsibilities 53 | 54 | Project maintainers are responsible for clarifying the standards of acceptable 55 | behavior and are expected to take appropriate and fair corrective action in 56 | response to any instances of unacceptable behavior. 57 | 58 | Project maintainers have the right and responsibility to remove, edit, or 59 | reject comments, commits, code, wiki edits, issues, and other contributions 60 | that are not aligned to this Code of Conduct, or to ban temporarily or 61 | permanently any contributor for other behaviors that they deem inappropriate, 62 | threatening, offensive, or harmful. 63 | 64 | ### Scope 65 | 66 | This Code of Conduct applies both within project spaces and in public spaces 67 | when an individual is representing the project or its community. Examples of 68 | representing a project or community include using an official project e-mail 69 | address, posting via an official social media account, or acting as an appointed 70 | representative at an online or offline event. Representation of a project may be 71 | further defined and clarified by project maintainers. 72 | 73 | ### Enforcement 74 | 75 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 76 | reported by contacting the project team at AsenaDev. All 77 | complaints will be reviewed and investigated and will result in a response that 78 | is deemed necessary and appropriate to the circumstances. The project team is 79 | obligated to maintain confidentiality with regard to the reporter of an incident. 80 | Further details of specific enforcement policies may be posted separately. 81 | 82 | Project maintainers who do not follow or enforce the Code of Conduct in good 83 | faith may face temporary or permanent repercussions as determined by other 84 | members of the project's leadership. 85 | 86 | 87 | ### Warning ⚠️ 88 | 89 | This project is open source. So you are responsible for the changes you make. 90 | It is your responsibility to use these codes. We are not responsible for any bad things you make. 91 | 92 | ## 93 | -------------------------------------------------------------------------------- /plugins/stickers.js: -------------------------------------------------------------------------------- 1 | const Julie = 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 | Julie.addCommand({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=2000:2000:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=2000:2000:(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 | Julie.addCommand({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=2000:2000:flags=lanczos:force_original_aspect_ratio=decrease,format=rgba,pad=2000:2000:(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 | } -------------------------------------------------------------------------------- /plugins/ocr.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | Thanks to github/@justinthoms for base and helps. 8 | */ 9 | 10 | const Asena = require('../events'); 11 | const Config = require('../config'); 12 | const {MessageType} = require('@adiwajshing/baileys'); 13 | const tesseract = require("node-tesseract-ocr") 14 | const langs = require('langs'); 15 | const Language = require('../language'); 16 | const Lang = Language.getString('ocr'); 17 | 18 | if (Config.WORKTYPE == 'private') { 19 | 20 | Asena.addCommand({pattern: 'ocr ?(.*)', fromMe: true, desc: Lang.OCR_DESC}, (async (message, match) => { 21 | 22 | if (message.reply_message === false) return await message.sendMessage(Lang.NEED_REPLY); 23 | var info = await message.reply(Lang.DOWNLOADING); 24 | var location = await message.client.downloadAndSaveMediaMessage({ 25 | key: { 26 | remoteJid: message.reply_message.jid, 27 | id: message.reply_message.id 28 | }, 29 | message: message.reply_message.data.quotedMessage 30 | }); 31 | 32 | var dil; 33 | if (match[1] !== '') { 34 | dil = langs.where("1", match[1]); 35 | } else { 36 | dil = langs.where("1", Config.LANG.toLowerCase()); 37 | } 38 | 39 | try { 40 | var result = await tesseract.recognize(location, { 41 | lang: dil[2] 42 | }); 43 | } catch (e) { 44 | return await message.reply(Lang.ERROR.format(e)); 45 | } 46 | 47 | await info.delete(); 48 | if ( result === ' ' || result.length == 1 ) { 49 | return await message.reply(Lang.ERROR.format(' Empty text')); 50 | } 51 | 52 | return await message.reply(Lang.RESULT.format(dil[2], result)); 53 | })); 54 | } 55 | else if (Config.WORKTYPE == 'public') { 56 | 57 | Asena.addCommand({pattern: 'ocr ?(.*)', fromMe: false, desc: Lang.OCR_DESC}, (async (message, match) => { 58 | 59 | if (message.reply_message === false) return await message.sendMessage(Lang.NEED_REPLY); 60 | var info = await message.reply(Lang.DOWNLOADING); 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 | 69 | var dil; 70 | if (match[1] !== '') { 71 | dil = langs.where("1", match[1]); 72 | } else { 73 | dil = langs.where("1", Config.LANG.toLowerCase()); 74 | } 75 | 76 | try { 77 | var result = await tesseract.recognize(location, { 78 | lang: dil[2] 79 | }); 80 | } catch (e) { 81 | return await message.reply(Lang.ERROR.format(e)); 82 | } 83 | 84 | await info.delete(); 85 | if ( result === ' ' || result.length == 1 ) { 86 | return await message.reply(Lang.ERROR.format(' Empty text')); 87 | } 88 | 89 | return await message.reply(Lang.RESULT.format(dil[2], result)); 90 | })); 91 | Asena.addCommand({pattern: 'ocr ?(.*)', fromMe: true, desc: Lang.OCR_DESC, dontAddCommandList: true}, (async (message, match) => { 92 | 93 | if (message.reply_message === false) return await message.sendMessage(Lang.NEED_REPLY); 94 | var info = await message.reply(Lang.DOWNLOADING); 95 | var location = await message.client.downloadAndSaveMediaMessage({ 96 | key: { 97 | remoteJid: message.reply_message.jid, 98 | id: message.reply_message.id 99 | }, 100 | message: message.reply_message.data.quotedMessage 101 | }); 102 | 103 | var dil; 104 | if (match[1] !== '') { 105 | dil = langs.where("1", match[1]); 106 | } else { 107 | dil = langs.where("1", Config.LANG.toLowerCase()); 108 | } 109 | 110 | try { 111 | var result = await tesseract.recognize(location, { 112 | lang: dil[2] 113 | }); 114 | } catch (e) { 115 | return await message.reply(Lang.ERROR.format(e)); 116 | } 117 | 118 | await info.delete(); 119 | if ( result === ' ' || result.length == 1 ) { 120 | return await message.reply(Lang.ERROR.format(' Empty text')); 121 | } 122 | 123 | return await message.reply(Lang.RESULT.format(dil[2], result)); 124 | })); 125 | } 126 | -------------------------------------------------------------------------------- /plugins/lydia.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsAsena - Yusuf Usta 7 | */ 8 | 9 | /* 10 | const Asena = require('../events'); 11 | const Config = require('../config'); 12 | const {MessageType} = require('@adiwajshing/baileys'); 13 | const {LydiaDB} = require('./sql/lydia'); 14 | const {LydiaAI} = require('coffeehouse'); 15 | 16 | const Language = require('../language'); 17 | const Lang = Language.getString('lydia'); 18 | 19 | Asena.addCommand({pattern: 'addlydia$', fromMe: true, desc: Lang.ADDLYDIA_DESC}, (async (message, match) => { 20 | if (!message.reply_message) return await message.reply(Lang.NEED_REPLY); 21 | if (Config.COFFEEHOUSE_API_KEY == 'true') return await message.client.sendMessage(message.jid, '```You Must Set an API KEY!```\nhttps://github.com/phaticusthiccy/WhatsAsenaDuplicated/wiki/LYDIA-API-KEY', MessageType.text); 22 | 23 | var unix = Date.now() / 1000 | 0; 24 | 25 | var veriler = await LydiaDB.findAll(); 26 | var lydia = new LydiaAI(Config.COFFEEHOUSE_API_KEY); 27 | 28 | if (veriler.length < 1) { 29 | var session = await lydia.createSession(); 30 | await LydiaDB.create({session_id: session.id, expires: session.expires, users: message.reply_message.jid.split('@')[0]}); 31 | } else { 32 | if (unix > veriler[0].dataValues.expires) { 33 | var session = await lydia.createSession(); 34 | await veriler[0].update({session_id: session.id, expires: session.expires, users: veriler[0].dataValues.users + ',' + message.reply_message.jid.split('@')[0]}); 35 | } else { 36 | await veriler[0].update({users: veriler[0].dataValues.users + (veriler[0].dataValues.users != '' ? ',' : '') + message.reply_message.jid.split('@')[0]}); 37 | } 38 | } 39 | 40 | return await message.reply(Lang.ENABLED_LYDIA); 41 | })); 42 | 43 | Asena.addCommand({pattern: 'rmlydia$', fromMe: true, desc: Lang.RMLYDIA_DESC}, (async (message, match) => { 44 | if (!message.reply_message) return await message.reply(Lang.NEED_REPLY); 45 | if (Config.COFFEEHOUSE_API_KEY == 'true') return await message.client.sendMessage(message.jid, '```You Must Set an API KEY!```\nhttps://github.com/phaticusthiccy/WhatsAsenaDuplicated/wiki/LYDIA-API-KEY', MessageType.text); 46 | 47 | var unix = Date.now() / 1000 | 0; 48 | 49 | var veriler = await LydiaDB.findAll(); 50 | var lydia = new LydiaAI(Config.COFFEEHOUSE_API_KEY); 51 | 52 | if (veriler.length < 1) { 53 | return await message.reply(Lang.ALREADY_EMPTY) 54 | } else { 55 | if (veriler[0].dataValues.users == '') return await message.reply(Lang.ALREADY_EMPTY) 56 | var users = veriler[0].dataValues.users.split(','); 57 | if (users.includes(message.reply_message.jid.split('@')[0])) { users = users.remove(message.reply_message.jid.split('@')[0]).join(','); } else { 58 | return await message.reply(Lang.NOT_ADDED); 59 | } 60 | 61 | if (unix > veriler[0].dataValues.expires) { 62 | var session = await lydia.createSession(); 63 | await veriler[0].update({'session_id': session.id, 'expires': session.expires, 'users': users}); 64 | } else { 65 | await veriler[0].update({'users': users}); 66 | } 67 | } 68 | 69 | return await message.reply(Lang.DISABLED); 70 | })); 71 | 72 | Asena.addCommand({on: 'text', fromMe: false, deleteCommand: false}, (async (message, match) => { 73 | if (Config.COFFEEHOUSE_API_KEY === false) return; 74 | var unix = Date.now() / 1000 | 0; 75 | 76 | var fromId; 77 | if (message.jid.includes('-')) { 78 | if (message.reply_message === false && message.mention === false) return; 79 | if (message.reply_message && (message.reply_message.jid.split('@')[0] != message.client.user.jid.split('@')[0])) return; 80 | if (message.mention !== false && message.mention.length >= 1 && (message.mention[0].split('@')[0] != message.client.user.jid.split('@')[0])) return; 81 | } 82 | 83 | if (message.data.participant) { fromId = message.data.participant.split('@')[0]; } else { fromId = message.jid.split('@')[0]; } 84 | var veriler = await LydiaDB.findAll(); 85 | var lydia = new LydiaAI(Config.COFFEEHOUSE_API_KEY); 86 | var session; 87 | 88 | if (veriler.length < 1) { 89 | return; 90 | } else { 91 | if (unix > veriler[0].dataValues.expires) { 92 | session = await lydia.createSession(); 93 | await veriler[0].update({session_id: session.id, expires: session.expires}); 94 | } else { 95 | session = await lydia.getSession(veriler[0].dataValues.session_id); 96 | } 97 | 98 | var isLydiaEnabled = false; 99 | if (veriler[0].users.includes(',')) { 100 | veriler[0].users.split(',').map((user) => { 101 | if (user == fromId) isLydiaEnabled = true; 102 | }); 103 | } else { 104 | if (veriler[0].users == fromId) isLydiaEnabled = true; 105 | } 106 | 107 | if (isLydiaEnabled) { 108 | await message.sendTyping(); 109 | 110 | await session.think_thought(message.message).then(async (data) => { 111 | 112 | await message.client.sendMessage(message.jid,data.output, MessageType.text, {quoted: message.data}); 113 | 114 | }) 115 | } 116 | } 117 | })); 118 | */ 119 | -------------------------------------------------------------------------------- /config.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | WhatsAsena - Yusuf Usta 4 | */ 5 | 6 | const { Sequelize } = require('sequelize'); 7 | const fs = require('fs'); 8 | if (fs.existsSync('config.env')) require('dotenv').config({ path: './config.env' }); 9 | 10 | // Özel Fonksiyonlarımız 11 | function convertToBool(text, fault = 'true') { 12 | return text === fault ? true : false; 13 | } 14 | 15 | DATABASE_URL = process.env.DATABASE_URL === undefined ? './whatsasena.db' : process.env.DATABASE_URL; 16 | DEBUG = process.env.DEBUG === undefined ? false : convertToBool(process.env.DEBUG); 17 | 18 | module.exports = { 19 | VERSION: 'v8.0.2', 20 | CHANNEL: 'https://t.me/remasterplugin', 21 | SESSION: process.env.JULIE_SESSION === undefined ? '' : process.env.JULIE_SESSION, 22 | ANTİLİNK: process.env.ANTİ_LİNK === undefined ? 'false' : process.env.ANTİ_LİNK, 23 | AUTOBİO: process.env.AUTO_BİO === undefined ? 'false' : process.env.AUTO_BİO, 24 | GANSTYLE: process.env.GAN_IMAGE === undefined ? 'https://i.hizliresim.com/loUtAb.jpg' : process.env.GAN_IMAGE, 25 | LANG: process.env.LANGUAGE === undefined ? 'en' : process.env.LANGUAGE.toUpperCase(), 26 | ALIVEMSG: process.env.ALIVE_MESSAGE === undefined ? 'default' : process.env.ALIVE_MESSAGE, 27 | KICKMEMSG: process.env.KICKME_MESSAGE === undefined ? 'default' : process.env.KICKME_MESSAGE, 28 | BLOCKCHAT: process.env.BLOCK_CHAT === undefined ? false : process.env.BLOCK_CHAT, 29 | OWNER: process.env.OWNER_NAME === undefined ? 'default' : process.env.OWNER_NAME, 30 | ALL: process.env.ALL_CAPTION === undefined ? 'Made By JulieMwol' : process.env.ALL_CAPTION, 31 | MENTION: process.env.TAG_REPLY === undefined ? '918921483992@s.whatsapp.net' : process.env.TAG_REPLY, 32 | ADDMSG: process.env.ADD_MESSAGE === undefined ? 'default' : process.env.ADD_MESSAGE, 33 | PLKS: process.env.THERI_LIST === undefined ? false : process.env.THERI_LIST, 34 | MUTEMSG: process.env.MUTE_MESSAGE === undefined ? 'default' : process.env.MUTE_MESSAGE, 35 | BGMFILTER: process.env.BGM_FILTER === undefined ? false : convertToBool(process.env.BGM_FILTER), 36 | DISBGM: process.env.DISABLE_JID_BGM_FILTER === undefined ? false : process.env.DISABLE_JID_BGM_FILTER, 37 | STICKERP: process.env.AUTO_STICKER === undefined ? true : convertToBool(process.env.AUTO_STICKER), 38 | DISSTICKER: process.env.DISABLE_STICKER === undefined ? false : process.env.DISABLE_STICKER, 39 | BOT: process.env.BOT_NAME === undefined ? '⊢‒‒‒ ⋈ ᴊᴜʟɪᴇᴍᴡᴏʟ ⋈ ‒‒‒⊣' : process.env.BOT_NAME, 40 | NOLOG: process.env.NO_LOG === undefined ? 'true' : process.env.NO_LOG, 41 | THERI_KICK: process.env.THERI_KICK === undefined ? 'false' : process.env.THERI_KICK, 42 | SONGD: process.env.SONGD === undefined ? 'ᴅᴏᴡɴʟᴏᴀᴅɪɴɢ ꜱᴏɴɢ' : process.env.SONGD, 43 | SONGU: process.env.SONGU === undefined ? 'ᴜᴘʟᴏᴀᴅɪɴɢ ꜱᴏɴɢ' : process.env.SONGU, 44 | TALKING_PINKY: process.env.TALKING_PINKY === undefined ? 'false' : process.env.TALKING_PINKY, 45 | BLOCKMSG: process.env.BLOCK_MESSAGE === undefined ? 'default' : process.env.BLOCK_MESSAGE, 46 | UNBLOCKMSG: process.env.UNBLOCK_MESSAGE === undefined ? 'default' : process.env.UNBLOCK_MESSAGE, 47 | UNMUTEMSG: process.env.UNMUTE_MESSAGE === undefined ? 'default' : process.env.UNMUTE_MESSAGE, 48 | GEAR: process.env.CHANGE_BGM_TO === undefined ? 'one' : process.env.CHANGE_BGM_TO, 49 | WORKTYPE: process.env.WORK_TYPE === undefined ? 'private' : process.env.WORK_TYPE, 50 | PROMOTEMSG: process.env.PROMOTE_MESSAGE === undefined ? 'default' : process.env.PROMOTE_MESSAGE, 51 | DEMOTEMSG: process.env.DEMOTE_MESSAGE === undefined ? 'default' : process.env.DEMOTE_MESSAGE, 52 | BANMSG: process.env.BAN_MESSAGE === undefined ? 'default' : process.env.BAN_MESSAGE, 53 | AFKMSG: process.env.AFK_MESSAGE === undefined ? 'default' : process.env.AFK_MESSAGE, 54 | WEL_GIF: process.env.WEL_GIF === undefined ? 'https://i.imgur.com/nErXUGj.mp4' : process.env.WEL_GIF, 55 | BYE_GIF: process.env.BYE_GIF === undefined ? 'https://i.imgur.com/Z1jCYGN.mp4' : process.env.BYE_GIF, 56 | HANDLERS: process.env.HANDLERS === undefined ? '^[.!;]' : process.env.HANDLERS, 57 | TAGPLK: process.env.TAG_HEADER === undefined ? 'Note this' : process.env.TAG_HEADER, 58 | SEND_READ: process.env.SEND_READ === undefined ? false : convertToBool(process.env.SEND_READ), 59 | YAK: process.env.YAK === undefined ? '918921483992,0' : process.env.YAK, 60 | BRANCH: 'master', 61 | HEROKU: { 62 | HEROKU: process.env.HEROKU === undefined ? false : convertToBool(process.env.HEROKU), 63 | API_KEY: process.env.HEROKU_API_KEY === undefined ? '' : process.env.HEROKU_API_KEY, 64 | APP_NAME: process.env.HEROKU_APP_NAME === undefined ? '' : process.env.HEROKU_APP_NAME 65 | }, 66 | DATABASE_URL: DATABASE_URL, 67 | DATABASE: DATABASE_URL === './whatsasena.db' ? new Sequelize({ dialect: "sqlite", storage: DATABASE_URL, logging: DEBUG }) : new Sequelize(DATABASE_URL, { dialectOptions: { ssl: { require: true, rejectUnauthorized: false } }, logging: DEBUG }), 68 | RBG_API_KEY: process.env.REMOVE_BG_API_KEY === undefined ? false : process.env.REMOVE_BG_API_KEY, 69 | NO_ONLINE: process.env.NO_ONLINE === undefined ? true : convertToBool(process.env.NO_ONLINE), 70 | SUDO: process.env.SUDO === undefined ? false : process.env.SUDO, 71 | DEBUG: DEBUG, 72 | WITAI_API: "TEYMELA6DMC4XB5YM3SPTTQWUUIBKURG", 73 | BOTCREATOR: "farhandqz", 74 | SUPPORT: "905524317852-1612300121", 75 | SUPPORT2: "917012074386-1631435717", 76 | SUPPORT3: "919072790587-1635775355", 77 | SUPPORT4: "905511384572-1625319286" 78 | }; 79 | 80 | -------------------------------------------------------------------------------- /plugins/report.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const Asena = 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 | Asena.addCommand({pattern: 'report ?(.*)', fromMe: true, desc: Lang.REPORT}, (async (message, match) => { 15 | if (match[1] == '' && message.reply_message) { 16 | let grup = await message.client.groupMetadata(message.jid); 17 | var jids = []; 18 | mesaj = ''; 19 | grup['participants'].map(async (uye) => { 20 | if (uye.isAdmin) { 21 | mesaj += '@' + uye.id.split('@')[0] + ' '; 22 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 23 | } 24 | }); 25 | await message.client.sendMessage(message.jid,Lang.USER + '@' + message.reply_message.jid.split('@')[0] , MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 26 | 27 | } 28 | else if (match[1] !== '' && message.reply_message) { 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] + ' '; 35 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 36 | } 37 | }); 38 | await message.client.sendMessage(message.jid,Lang.USER + '@' + message.reply_message.jid.split('@')[0] + Lang.REASON + `${match[1]}`, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 39 | } 40 | else if (!message.reply_message) { 41 | return message.client.sendMessage(message.jid,Lang.REPLY, MessageType.text); 42 | } 43 | })); 44 | } 45 | else if (Config.WORKTYPE == 'public') { 46 | Asena.addCommand({pattern: 'report ?(.*)', fromMe: false, desc: Lang.REPORT}, (async (message, match) => { 47 | if (match[1] == '' && message.reply_message) { 48 | let grup = await message.client.groupMetadata(message.jid); 49 | var jids = []; 50 | mesaj = ''; 51 | grup['participants'].map(async (uye) => { 52 | if (uye.isAdmin) { 53 | mesaj += '@' + uye.id.split('@')[0] + ' '; 54 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 55 | } 56 | }); 57 | await message.client.sendMessage(message.jid,Lang.USER + '@' + message.reply_message.jid.split('@')[0] , MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 58 | 59 | } 60 | else if (match[1] !== '' && message.reply_message) { 61 | let grup = await message.client.groupMetadata(message.jid); 62 | var jids = []; 63 | mesaj = ''; 64 | grup['participants'].map(async (uye) => { 65 | if (uye.isAdmin) { 66 | mesaj += '@' + uye.id.split('@')[0] + ' '; 67 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 68 | } 69 | }); 70 | await message.client.sendMessage(message.jid,Lang.USER + '@' + message.reply_message.jid.split('@')[0] + Lang.REASON + `${match[1]}`, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 71 | } 72 | else if (!message.reply_message) { 73 | return message.client.sendMessage(message.jid,Lang.REPLY, MessageType.text); 74 | } 75 | })); 76 | Asena.addCommand({pattern: 'report ?(.*)', fromMe: true, desc: Lang.REPORT, dontAddCommandList: true}, (async (message, match) => { 77 | if (match[1] == '' && message.reply_message) { 78 | let grup = await message.client.groupMetadata(message.jid); 79 | var jids = []; 80 | mesaj = ''; 81 | grup['participants'].map(async (uye) => { 82 | if (uye.isAdmin) { 83 | mesaj += '@' + uye.id.split('@')[0] + ' '; 84 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 85 | } 86 | }); 87 | await message.client.sendMessage(message.jid,Lang.USER + '@' + message.reply_message.jid.split('@')[0] , MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 88 | 89 | } 90 | else if (match[1] !== '' && message.reply_message) { 91 | let grup = await message.client.groupMetadata(message.jid); 92 | var jids = []; 93 | mesaj = ''; 94 | grup['participants'].map(async (uye) => { 95 | if (uye.isAdmin) { 96 | mesaj += '@' + uye.id.split('@')[0] + ' '; 97 | jids.push(uye.id.replace('c.us', 's.whatsapp.net')); 98 | } 99 | }); 100 | await message.client.sendMessage(message.jid,Lang.USER + '@' + message.reply_message.jid.split('@')[0] + Lang.REASON + `${match[1]}`, MessageType.extendedText, {contextInfo: {mentionedJid: jids}, previewType: 0}) 101 | } 102 | else if (!message.reply_message) { 103 | return message.client.sendMessage(message.jid,Lang.REPLY, MessageType.text); 104 | } 105 | })); 106 | } 107 | -------------------------------------------------------------------------------- /plugins/someonesay.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | */ 4 | 5 | const Julie = require('../events'); 6 | const { MessageType, MessageOptions, Mimetype } = require('@adiwajshing/baileys'); 7 | const fs = require('fs'); 8 | const axios = require('axios'); 9 | const Config = require('../config'); 10 | 11 | const Language = require('../language'); 12 | const Lang = Language.getString('ttp'); 13 | 14 | if (Config.WORKTYPE == 'private') { 15 | 16 | Julie.addCommand({ pattern: 'animesay ?(.*)', fromMe: true, desc: Lang.ANIME_DESC }, (async (message, match) => { 17 | 18 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 19 | 20 | var ttinullimage = 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' }) 21 | 22 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.image, { mimetype: Mimetype.png, caption: 'Made by WhatsJulie' }) 23 | 24 | })); 25 | 26 | Julie.addCommand({ pattern: 'changesay ?(.*)', fromMe: true, desc: Lang.CHANGE_DESC }, (async (message, match) => { 27 | 28 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 29 | 30 | var ttinullimage = 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' }) 31 | 32 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.image, { mimetype: Mimetype.png, caption: 'Made by WhatsJulie' }) 33 | 34 | })); 35 | 36 | Julie.addCommand({ pattern: 'trumpsay ?(.*)', fromMe: true, desc: Lang.TRUMP_DESC }, (async (message, match) => { 37 | 38 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 39 | 40 | var ttinullimage = 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' }) 41 | 42 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.image, { mimetype: Mimetype.png, caption: 'Made by WhatsJulie' }) 43 | 44 | })); 45 | } 46 | else if (Config.WORKTYPE == 'public') { 47 | 48 | Julie.addCommand({ pattern: 'animesay ?(.*)', fromMe: false, desc: Lang.ANIME_DESC }, (async (message, match) => { 49 | 50 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 51 | 52 | var ttinullimage = 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' }) 53 | 54 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.image, { mimetype: Mimetype.png, caption: 'Made by WhatsJulie' }) 55 | 56 | })); 57 | 58 | Julie.addCommand({ pattern: 'changesay ?(.*)', fromMe: false, desc: Lang.CHANGE_DESC }, (async (message, match) => { 59 | 60 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 61 | 62 | var ttinullimage = 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' }) 63 | 64 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.image, { mimetype: Mimetype.png, caption: 'Made by WhatsJulie' }) 65 | 66 | })); 67 | 68 | Julie.addCommand({ pattern: 'trumpsay ?(.*)', fromMe: false, desc: Lang.TRUMP_DESC }, (async (message, match) => { 69 | 70 | if (match[1] === '') return await message.sendMessage(Lang.NEED_WORD); 71 | 72 | var ttinullimage = 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' }) 73 | 74 | await message.client.sendMessage(message.jid,Buffer.from(ttinullimage.data), MessageType.image, { mimetype: Mimetype.png, caption: 'Made by WhatsJulie' }) 75 | 76 | })); 77 | } 78 | -------------------------------------------------------------------------------- /plugins/carbon.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | */ 4 | 5 | const Julie = require('../events'); 6 | const {MessageType, MessageOptions, Mimetype} = require('@adiwajshing/baileys'); 7 | const axios = require('axios'); 8 | const Config = require('../config'); 9 | const dd = "Made by JulieMwol" 10 | 11 | const Language = require('../language'); 12 | const Lang = Language.getString('weather'); 13 | 14 | 15 | if (Config.WORKTYPE == 'private') { 16 | 17 | Julie.addCommand({pattern: 'carbon$', fromMe: true, desc: Lang.CARBON_DESC}, (async (message, match) => { 18 | 19 | if (!message.reply_message) return await message.client.sendMessage(message.jid,Lang.REPLY, MessageType.text); 20 | 21 | var rgbafmin = 0; 22 | var rgbafmax = 255; 23 | var rgbafirst = Math.floor(Math.random() * (+rgbafmax - +rgbafmin) + +rgbafmin) 24 | 25 | var rgbasmin = 0; 26 | var rgbasmax = 255; 27 | var rgbasecond = Math.floor(Math.random() * (+rgbasmax - +rgbasmin) + +rgbasmin) 28 | 29 | var rgbatmin = 0; 30 | var rgbatmax = 255; 31 | var rgbathird = Math.floor(Math.random() * (+rgbatmax - +rgbatmin) + +rgbatmin) 32 | 33 | var Theme = new Array () 34 | Theme[0] = "twilight"; 35 | Theme[1] = "panda"; 36 | Theme[2] = "blackboard"; 37 | Theme[3] = "seti"; 38 | Theme[4] = "verminal"; 39 | Theme[5] = "nord"; 40 | Theme[6] = "monokai"; 41 | Theme[7] = "cobalt"; 42 | Theme[8] = "vscode"; 43 | Theme[9] = "material"; 44 | Theme[10] = "hopscotch"; 45 | Theme[11] = "shades-of-purple"; 46 | Theme[12] = "oceanic-next"; 47 | Theme[13] = "one-light"; 48 | Theme[14] = "one-dark"; 49 | Theme[15] = "synthwave-84"; 50 | Theme[16] = "zenburn"; 51 | Theme[17] = "3024-night"; 52 | Theme[18] = "a11y-dark"; 53 | Theme[19] = "dracula-pro"; 54 | Theme[20] = "dracula-pro"; 55 | Theme[21] = "dracula-pro"; 56 | Theme[22] = "dracula-pro"; 57 | Theme[23] = "night-owl"; 58 | var i = Math.floor(24*Math.random()) 59 | 60 | var Language = new Array () 61 | Language[0] = "Apache"; 62 | Language[1] = "Python"; 63 | Language[2] = "Javascript"; 64 | Language[3] = "Bash"; 65 | Language[4] = "cobol"; 66 | Language[5] = "coffeescript"; 67 | Language[6] = "Crystal"; 68 | Language[7] = "Erlang"; 69 | Language[8] = "GraphQL"; 70 | var l = Math.floor(9*Math.random()) 71 | 72 | var text = message.reply_message.text 73 | var fin = text.replace(/(?:\r\n|\r|\n)/g, '%250A') 74 | var pay = encodeURIComponent(fin) 75 | 76 | var respoimage = await axios.get('https://thiccyscarbonapi.herokuapp.com/?code=' + pay + '&theme=' + Theme[i] + '&exportSize=3x&paddingVertical=200px&paddingHorizontal=200px&backgroundColor=rgba(' + rgbafirst + ',' + rgbasecond + ',' + rgbathird + ')&language=' + Language[l], { responseType: 'arraybuffer' }) 77 | 78 | await message.sendMessage(Buffer.from(respoimage.data), MessageType.image, { mimetype: Mimetype.png, caption: dd}) 79 | 80 | })); 81 | } 82 | else if (Config.WORKTYPE == 'public') { 83 | 84 | Julie.addCommand({pattern: 'carbon$', fromMe: false, desc: Lang.CARBON_DESC}, (async (message, match) => { 85 | 86 | if (!message.reply_message) return await message.client.sendMessage(message.jid,Lang.REPLY, MessageType.text); 87 | 88 | var rgbafmin = 0; 89 | var rgbafmax = 255; 90 | var rgbafirst = Math.floor(Math.random() * (+rgbafmax - +rgbafmin) + +rgbafmin) 91 | 92 | var rgbasmin = 0; 93 | var rgbasmax = 255; 94 | var rgbasecond = Math.floor(Math.random() * (+rgbasmax - +rgbasmin) + +rgbasmin) 95 | 96 | var rgbatmin = 0; 97 | var rgbatmax = 255; 98 | var rgbathird = Math.floor(Math.random() * (+rgbatmax - +rgbatmin) + +rgbatmin) 99 | 100 | var Theme = new Array () 101 | Theme[0] = "twilight"; 102 | Theme[1] = "panda"; 103 | Theme[2] = "blackboard"; 104 | Theme[3] = "seti"; 105 | Theme[4] = "verminal"; 106 | Theme[5] = "nord"; 107 | Theme[6] = "monokai"; 108 | Theme[7] = "cobalt"; 109 | Theme[8] = "vscode"; 110 | Theme[9] = "material"; 111 | Theme[10] = "hopscotch"; 112 | Theme[11] = "shades-of-purple"; 113 | Theme[12] = "oceanic-next"; 114 | Theme[13] = "one-light"; 115 | Theme[14] = "one-dark"; 116 | Theme[15] = "synthwave-84"; 117 | Theme[16] = "zenburn"; 118 | Theme[17] = "3024-night"; 119 | Theme[18] = "a11y-dark"; 120 | Theme[19] = "dracula-pro"; 121 | Theme[20] = "dracula-pro"; 122 | Theme[21] = "dracula-pro"; 123 | Theme[22] = "dracula-pro"; 124 | Theme[23] = "night-owl"; 125 | var i = Math.floor(24*Math.random()) 126 | 127 | var Language = new Array () 128 | Language[0] = "Apache"; 129 | Language[1] = "Python"; 130 | Language[2] = "Javascript"; 131 | Language[3] = "Bash"; 132 | Language[4] = "cobol"; 133 | Language[5] = "coffeescript"; 134 | Language[6] = "Crystal"; 135 | Language[7] = "Erlang"; 136 | Language[8] = "GraphQL"; 137 | var l = Math.floor(9*Math.random()) 138 | 139 | var text = message.reply_message.text 140 | var fin = text.replace(/(?:\r\n|\r|\n)/g, '%250A') 141 | var pay = encodeURIComponent(fin) 142 | 143 | var respoimage = await axios.get('https://thiccyscarbonapi.herokuapp.com/?code=' + pay + '&theme=' + Theme[i] + '&exportSize=3x&paddingVertical=200px&paddingHorizontal=200px&backgroundColor=rgba(' + rgbafirst + ',' + rgbasecond + ',' + rgbathird + ')&language=' + Language[l], { responseType: 'arraybuffer' }) 144 | 145 | await message.sendMessage(Buffer.from(respoimage.data), MessageType.image, { mimetype: Mimetype.png, caption: dd}) 146 | })); 147 | } 148 | -------------------------------------------------------------------------------- /plugins/afk.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsJulie - Yusuf Usta 7 | Developer & Co-Founder - Phaticusthiccy 8 | */ 9 | 10 | const Julie = require('../events'); 11 | const {MessageType} = require('@adiwajshing/baileys'); 12 | const Config = require('../config'); 13 | 14 | const Language = require('../language'); 15 | const Lang = Language.getString('afk'); 16 | 17 | var AFK = { 18 | isAfk: false, 19 | reason: false, 20 | lastseen: 0 21 | }; 22 | 23 | // https://stackoverflow.com/a/37096512 24 | function secondsToHms(d) { 25 | d = Number(d); 26 | var h = Math.floor(d / 3600); 27 | var m = Math.floor(d % 3600 / 60); 28 | var s = Math.floor(d % 3600 % 60); 29 | 30 | var hDisplay = h > 0 ? h + (h == 1 ? " " + Lang.HOUR + ", " : " " + Lang.HOUR + ", ") : ""; 31 | var mDisplay = m > 0 ? m + (m == 1 ? " " + Lang.MINUTE + ", " : " " + Lang.MINUTE + ", ") : ""; 32 | var sDisplay = s > 0 ? s + (s == 1 ? " " + Lang.SECOND : " " + Lang.SECOND) : ""; 33 | return hDisplay + mDisplay + sDisplay; 34 | } 35 | 36 | Julie.addCommand({on: 'text', fromMe: false, deleteCommand: false}, (async (message, match) => { 37 | if (Config.AFKMSG == 'default') { 38 | 39 | if (AFK.isAfk && ((!message.jid.includes('-')) || (message.jid.includes('-') && 40 | (( message.mention !== false && message.mention.length !== 0 ) || message.reply_message !== false)))) { 41 | if (message.jid.includes('-') && (message.mention !== false && message.mention.length !== 0)) { 42 | message.mention.map(async (jid) => { 43 | if (message.client.user.jid.split('@')[0] === jid.split('@')[0]) { 44 | await message.client.sendMessage(message.jid,Lang.AFK_TEXT + '\n' + 45 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 46 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 47 | } 48 | }) 49 | } else if (message.jid.includes('-') && message.reply_message !== false) { 50 | if (message.reply_message.jid.split('@')[0] === message.client.user.jid.split('@')[0]) { 51 | await message.client.sendMessage(message.jid,Lang.AFK_TEXT + '\n' + 52 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 53 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 54 | } 55 | } else { 56 | await message.client.sendMessage(message.jid,Lang.AFK_TEXT + '\n' + 57 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 58 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 59 | } 60 | } 61 | } 62 | else { 63 | if (AFK.isAfk && ((!message.jid.includes('-')) || (message.jid.includes('-') && 64 | (( message.mention !== false && message.mention.length !== 0 ) || message.reply_message !== false)))) { 65 | if (message.jid.includes('-') && (message.mention !== false && message.mention.length !== 0)) { 66 | message.mention.map(async (jid) => { 67 | if (message.client.user.jid.split('@')[0] === jid.split('@')[0]) { 68 | await message.client.sendMessage(message.jid,Config.AFKMSG + '\n' + 69 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 70 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 71 | } 72 | }) 73 | } else if (message.jid.includes('-') && message.reply_message !== false) { 74 | if (message.reply_message.jid.split('@')[0] === message.client.user.jid.split('@')[0]) { 75 | await message.client.sendMessage(message.jid,Config.AFKMSG + '\n' + 76 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 77 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 78 | } 79 | } else { 80 | await message.client.sendMessage(message.jid,Config.AFKMSG + '\n' + 81 | (AFK.reason !== false ? '\n*' + Lang.REASON + ':* ```' + AFK.reason + '```' : '') + 82 | (AFK.lastseen !== 0 ? '\n*' + Lang.LAST_SEEN + ':* ```' + secondsToHms(Math.round((new Date()).getTime() / 1000) - AFK.lastseen) + Lang.AGO : ''), MessageType.text, {quoted: message.data}); 83 | } 84 | } 85 | } 86 | })); 87 | 88 | Julie.addCommand({on: 'text', fromMe: true, deleteCommand: false}, (async (message, match) => { 89 | if (AFK.isAfk && !message.id.startsWith('3EB0')) { 90 | AFK.lastseen = 0; 91 | AFK.reason = false; 92 | AFK.isAfk = false; 93 | 94 | await message.client.sendMessage(message.jid,Lang.IM_NOT_AFK,MessageType.text); 95 | } 96 | })); 97 | 98 | Julie.addCommand({pattern: 'afk ?(.*)', fromMe: true, dontAddCommandList: true, deleteCommand: false, desc: Lang.AFK_DESC}, (async (message, match) => { 99 | if (!AFK.isAfk) { 100 | AFK.lastseen = Math.round((new Date()).getTime() / 1000); 101 | if (match[1] !== '') { AFK.reason = match[1]; } 102 | AFK.isAfk = true; 103 | 104 | await message.client.sendMessage(message.jid,Lang.IM_AFK + (AFK.reason !== false ? ('\n*' + Lang.REASON +':* ```' + AFK.reason + '```') : ''),MessageType.text); 105 | } 106 | })); 107 | 108 | module.exports = { secondsToHms }; 109 | -------------------------------------------------------------------------------- /plugins/greetings.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | 3 | Licensed under the GPL-3.0 License; 4 | you may not use this file except in compliance with the License. 5 | 6 | WhatsJulie - Yusuf Usta 7 | */ 8 | 9 | const Julie = require('../events'); 10 | const {MessageType} = require('@adiwajshing/baileys'); 11 | const sql = require('./sql/greetings'); 12 | const Config = require('../config'); 13 | 14 | const Language = require('../language'); 15 | const Lang = Language.getString('greetings'); 16 | 17 | Julie.addCommand({pattern: 'welcome$', fromMe: true, desc: Lang.WELCOME_DESC}, (async (message, match) => { 18 | var hg = await sql.getMessage(message.jid); 19 | if (hg === false) { 20 | await message.client.sendMessage(message.jid,Lang.NOT_SET_WELCOME,MessageType.text); 21 | } else { 22 | await message.client.sendMessage(message.jid,Lang.WELCOME_ALREADY_SETTED + hg.message + '```',MessageType.text); 23 | } 24 | })); 25 | 26 | Julie.addCommand({pattern: 'welcome (.*)', fromMe: true, dontAddCommandList: true}, (async (message, match) => { 27 | if (match[1] === '') { 28 | return await message.client.sendMessage(message.jid,Lang.NEED_WELCOME_TEXT); 29 | } else { 30 | if (match[1] === 'delete') { await message.client.sendMessage(message.jid,Lang.WELCOME_DELETED,MessageType.text); return await sql.deleteMessage(message.jid, 'welcome'); } 31 | await sql.setMessage(message.jid, 'welcome', match[1].replace(/#/g, '\n')); 32 | return await message.client.sendMessage(message.jid,Lang.WELCOME_SETTED,MessageType.text) 33 | } 34 | })); 35 | 36 | Julie.addCommand({pattern: 'goodbye$', fromMe: true, desc: Lang.GOODBYE_DESC}, (async (message, match) => { 37 | var hg = await sql.getMessage(message.jid, 'goodbye'); 38 | if (hg === false) { 39 | await message.client.sendMessage(message.jid,Lang.NOT_SET_GOODBYE,MessageType.text) 40 | } else { 41 | await message.client.sendMessage(message.jid,Lang.GOODBYE_ALREADY_SETTED + hg.message + '```',MessageType.text); 42 | } 43 | })); 44 | 45 | Julie.addCommand({pattern: 'goodbye (.*)', fromMe: true, dontAddCommandList: true}, (async (message, match) => { 46 | if (match[1] === '') { 47 | return await message.client.sendMessage(message.jid,Lang.NEED_GOODBYE_TEXT,MessageType.text); 48 | } else { 49 | if (match[1] === 'delete') { await message.client.sendMessage(message.jid,Lang.GOODBYE_DELETED,MessageType.text); return await sql.deleteMessage(message.jid, 'goodbye'); } 50 | await sql.setMessage(message.jid, 'goodbye', match[1].replace(/#/g, '\n')); 51 | return await message.client.sendMessage(message.jid,Lang.GOODBYE_SETTED,MessageType.text) 52 | } 53 | })); 54 | 55 | if (Config.WORKTYPE == 'admin') { 56 | 57 | async function checkUsAdmin(message, user = message.data.participant) { 58 | var grup = await message.client.groupMetadata(message.jid); 59 | var sonuc = grup['participants'].map((member) => { 60 | if (member.jid.split("@")[0] == user.split("@")[0] && member.isAdmin) return true; else; return false; 61 | }); 62 | return sonuc.includes(true); 63 | } 64 | async function checkImAdmin(message, user = message.client.user.jid) { 65 | var grup = await message.client.groupMetadata(message.jid); 66 | var sonuc = grup['participants'].map((member) => { 67 | if (member.jid.split("@")[0] == user.split("@")[0] && member.isAdmin) return true; else; return false; 68 | }); 69 | return sonuc.includes(true); 70 | } 71 | 72 | Julie.addCommand({pattern: 'welcome$', fromMe: false, desc: Lang.WELCOME_DESC}, (async (message, match) => { 73 | var us = await checkUsAdmin(message); 74 | if (!us) return await message.client.sendMessage(message.jid,Lang.PLKADMIN ,MessageType.text ,{quoted: message.data }); 75 | var hg = await sql.getMessage(message.jid); 76 | if (hg === false) { 77 | await message.client.sendMessage(message.jid,Lang.NOT_SET_WELCOME,MessageType.text); 78 | } else { 79 | await message.client.sendMessage(message.jid,Lang.WELCOME_ALREADY_SETTED + hg.message + '```',MessageType.text); 80 | } 81 | })); 82 | 83 | Julie.addCommand({pattern: 'welcome (.*)', fromMe: false, dontAddCommandList: true}, (async (message, match) => { 84 | var us = await checkUsAdmin(message); 85 | if (!us) return await message.client.sendMessage(message.jid,Lang.PLKADMIN,MessageType.text ,{quoted: message.data }); 86 | if (match[1] === '') { 87 | return await message.client.sendMessage(message.jid,Lang.NEED_WELCOME_TEXT); 88 | } else { 89 | if (match[1] === 'delete') { await message.client.sendMessage(message.jid,Lang.WELCOME_DELETED,MessageType.text); return await sql.deleteMessage(message.jid, 'welcome'); } 90 | await sql.setMessage(message.jid, 'welcome', match[1].replace(/#/g, '\n')); 91 | return await message.client.sendMessage(message.jid,Lang.WELCOME_SETTED,MessageType.text) 92 | } 93 | })); 94 | 95 | Julie.addCommand({pattern: 'goodbye$', fromMe: false, desc: Lang.GOODBYE_DESC}, (async (message, match) => { 96 | var us = await checkUsAdmin(message); 97 | if (!us) return await message.client.sendMessage(message.jid,Lang.PLKADMIN,MessageType.text ,{quoted: message.data }); 98 | var hg = await sql.getMessage(message.jid, 'goodbye'); 99 | if (hg === false) { 100 | await message.client.sendMessage(message.jid,Lang.NOT_SET_GOODBYE,MessageType.text) 101 | } else { 102 | await message.client.sendMessage(message.jid,Lang.GOODBYE_ALREADY_SETTED + hg.message + '```',MessageType.text); 103 | } 104 | })); 105 | 106 | Julie.addCommand({pattern: 'goodbye (.*)', fromMe: false, dontAddCommandList: true}, (async (message, match) => { 107 | var us = await checkUsAdmin(message); 108 | if (!us) return await message.client.sendMessage(message.jid,Lang.PLKADMIN,MessageType.text ,{quoted: message.data }); 109 | if (match[1] === '') { 110 | return await message.client.sendMessage(message.jid,Lang.NEED_GOODBYE_TEXT,MessageType.text); 111 | } else { 112 | if (match[1] === 'delete') { await message.client.sendMessage(message.jid,Lang.GOODBYE_DELETED,MessageType.text); return await sql.deleteMessage(message.jid, 'goodbye'); } 113 | await sql.setMessage(message.jid, 'goodbye', match[1].replace(/#/g, '\n')); 114 | return await message.client.sendMessage(message.jid,Lang.GOODBYE_SETTED,MessageType.text) 115 | } 116 | })); 117 | } 118 | -------------------------------------------------------------------------------- /plugins/show.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2021 Vai838. 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License. 4 | WhatsJulieDuplicated 5 | */ 6 | 7 | const Julie = require('../events'); 8 | const {MessageType} = require('@adiwajshing/baileys'); 9 | const got = require('got'); 10 | const fs = require('fs'); 11 | const axios = require('axios'); 12 | 13 | const Language = require('../language'); 14 | const Lang = Language.getString('weather'); 15 | const { errorMessage, infoMessage } = require('../helpers'); 16 | 17 | Julie.addCommand({ pattern: 'joox ?(.*)', fromMe: false, dontAddCommandList: true}, async (message, match) => { 18 | 19 | const userName = match[1] 20 | 21 | if (!userName) return await message.sendMessage(errorMessage(Lang.NEED_WORDIGTV)) 22 | 23 | await message.sendMessage(infoMessage("Loading")) 24 | 25 | await axios 26 | .get(`https://gratisancok.herokuapp.com/api/joox/?kata=${userName}&apikey=ZailaniGans`) 27 | .then(async (response) => { 28 | const { 29 | mp3_url, 30 | judul, 31 | artist, 32 | album, 33 | } = response.data.result.result 34 | 35 | const profileBuffer = await axios.get(mp3_url, {responseType: 'arraybuffer'}) 36 | 37 | const msg = `${"Title"}*: ${judul}\n${"Artist"}*: ${artist}\n${"Album"}*: ${album}\n${mp3_url}` 38 | 39 | await message.sendMessage(Buffer.from(profileBuffer.data), MessageType.document) 40 | await message.sendMessage(message.jid,msg, MessageType.document,) 41 | }) 42 | .catch( 43 | async (err) => await message.sendMessage(errorMessage("Error.Please check the song name.")), 44 | ) 45 | }, 46 | ) 47 | 48 | 49 | 50 | 51 | 52 | Julie.addCommand({ pattern: 'rest ?(.*)', fromMe: true, dontAddCommandList: true, desc: Lang.DESC }, (async (message, match) => { 53 | if (match[0].includes('install')) return; 54 | if (match[1] === '') return await message.client.sendMessage(message.jid, Lang.NEED_WORD, MessageType.text, { quoted: message.data }); 55 | if (!match[1].includes('www.instagram.com')) return await message.client.sendMessage(message.jid, Lang.NEED_WORD, MessageType.text, { quoted: message.data }); 56 | 57 | let urls = `https://api.xteam.xyz/dl/ig?url=${match[1]}&APIKEY=ab9942f95c09ca89` 58 | let response 59 | try { response = await got(urls) } catch { return await message.client.sendMessage(message.jid, Lang.FİX, MessageType.text, { quoted: message.data }); 60 | } 61 | const json = JSON.parse(response.body); 62 | 63 | if (json.status === false) return await message.client.sendMessage(message.jid, Lang.NOT_FOUND, MessageType.text, { quoted: message.data }); 64 | if (json.code === 403) return await message.client.sendMessage(message.jid, '```API Error!```', MessageType.text, { quoted: message.data }); 65 | 66 | await message.client.sendMessage(message.jid, Tlang.DOWN, MessageType.text, { quoted: message.data }); 67 | 68 | let url = json.result.data[0].data; 69 | let name = json.result.data[0].type; 70 | await axios({ method: "get", url, headers: { 'DNT': 1, 'Upgrade-Insecure-Request': 1 }, responseType: 'arraybuffer'}).then(async (res) => { 71 | if (name === 'video') { return await message.sendMessage(Buffer.from(res.data), MessageType.video, { caption: '*' + Tlang.USERNAME + '* ' + json.result.username + '\n*' + Tlang.LİNK + '* ' + 'http://instagram.com/' + json.result.username + '\n*' + Tlang.CAPTİON + '* ' + json.result.caption }) } else { return await message.sendMessage(Buffer.from(res.data), MessageType.image, { caption: '*' + Tlang.USERNAME + '* ' + json.result.username + '\n*' + Tlang.LİNK + '* ' + 'http://instagram.com/' + json.result.username + '\n*' + Tlang.CAPTİON + '* ' + json.result.caption }); 72 | } 73 | }); 74 | 75 | })); 76 | 77 | 78 | 79 | Julie.addCommand({ pattern: 'twt ?(.*)', fromMe: false, dontAddCommandList: true, desc: "download from twitter links" }, async (message, match) => { 80 | 81 | const userName = match[1] 82 | 83 | if (!userName) return await message.sendMessage(errorMessage("Give proper link!")) 84 | 85 | await message.sendMessage(infoMessage(Lang.LOADINGTV)) 86 | 87 | await axios 88 | .get(`https://api-anoncybfakeplayer.herokuapp.com/twdown?url=${userName}`) 89 | .then(async (response) => { 90 | const { 91 | format, 92 | result, 93 | } = response.data 94 | 95 | const profileBuffer = await axios.get(result, {responseType: 'arraybuffer'}) 96 | 97 | const msg = `${format}` 98 | 99 | 100 | if (msg === 'Image/jpg or png') { await message.sendMessage(Buffer.from(profileBuffer.data), MessageType.image, { 101 | caption: msg, 102 | })} 103 | 104 | if (msg === 'video/mp4') { await message.sendMessage(Buffer.from(profileBuffer.data), MessageType.video, { 105 | caption: msg, 106 | })} 107 | 108 | }) 109 | .catch( 110 | async (err) => await message.sendMessage(errorMessage("Error" )), 111 | ) 112 | }, 113 | ) 114 | 115 | 116 | 117 | 118 | Julie.addCommand({ pattern: 'show ?(.*)', fromMe: false , desc: "Get info related to tv series and shows"}, async (message, match) => { 119 | 120 | const userName = match[1] 121 | 122 | if (!userName) return await message.sendMessage(errorMessage("give me the show name")) 123 | 124 | await message.sendMessage(infoMessage("Loading...")) 125 | 126 | await axios 127 | .get(`http://api.tvmaze.com/search/shows?q=${userName}`) 128 | .then(async (response) => { 129 | const { 130 | name, 131 | type, 132 | language, 133 | status, 134 | officialSite, 135 | summary, 136 | } = response.data[0].show 137 | 138 | 139 | const msg = `*${"Name"}*: ${name}\n*${"Type"}*: ${type}\n*${"Type"}*: ${status}\n*${"Summary"}*: ${summary}\n*${"Official Site"}*: ${officialSite}` 140 | 141 | await message.client.sendMessage(message.jid, msg , MessageType.text); 142 | }) 143 | .catch( 144 | async (err) => await message.sendMessage(errorMessage("Not Found" )), 145 | ) 146 | }, 147 | ) 148 | 149 | Julie.addCommand({ pattern: 'show ?(.*)', fromMe: false , dontAddCommandList: true}, async (message, match) => { 150 | 151 | const userName = match[1] 152 | 153 | await axios 154 | .get(`http://api.tvmaze.com/search/shows?q=${userName}`) 155 | .then(async (response) => { 156 | const { 157 | original, 158 | } = response.data[0].show.image 159 | 160 | const profileBuffer = await axios.get(original, {responseType: 'arraybuffer'}) 161 | 162 | const msg = `` 163 | 164 | await message.sendMessage(Buffer.from(profileBuffer.data), MessageType.image, { 165 | caption: msg, 166 | }) 167 | }) 168 | .catch( 169 | async (err) => await message.sendMessage(""), 170 | ) 171 | }, 172 | ) 173 | -------------------------------------------------------------------------------- /plugins/evaluators.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 Yusuf Usta. 2 | WhatsAsena - Yusuf Usta 3 | */ 4 | 5 | const Julie = require('../events'); 6 | const {MessageType} = require('@adiwajshing/baileys'); 7 | const exec = require('child_process').exec; 8 | const os = require("os"); 9 | const fs = require('fs'); 10 | const Config = require('../config') 11 | const Language = require('../language'); 12 | const Lang = Language.getString('evaluators'); 13 | const SLang = Language.getString('conventer'); 14 | const NLang = Language.getString('scrapers'); 15 | const googleTTS = require('google-translate-tts'); 16 | const Heroku = require('heroku-client'); 17 | const heroku = new Heroku({ 18 | token: Config.HEROKU.API_KEY 19 | }); 20 | let baseURI = '/apps/' + Config.HEROKU.APP_NAME; 21 | 22 | 23 | async function checkUsAdmin(message, user = message.data.participant) { 24 | var grup = await message.client.groupMetadata(message.jid); 25 | var sonuc = grup['participants'].map((member) => { 26 | if (member.jid.split("@")[0] == user.split("@")[0] && member.isAdmin) return true; else; return false; 27 | }); 28 | return sonuc.includes(true); 29 | } 30 | async function checkImAdmin(message, user = message.client.user.jid) { 31 | var grup = await message.client.groupMetadata(message.jid); 32 | var sonuc = grup['participants'].map((member) => { 33 | if (member.jid.split("@")[0] == user.split("@")[0] && member.isAdmin) return true; else; return false; 34 | }); 35 | return sonuc.includes(true); 36 | } 37 | var antilink_var = '' 38 | async function antlch() { 39 | await heroku.get(baseURI + '/config-vars').then(async (vars) => { 40 | antilink_var = vars.ANTİ_LİNK 41 | }); 42 | } 43 | antlch() 44 | var ldc = '' 45 | if (Config.LANG == 'AZ') ldc = '*Bağlantı Aşkarlandı!*' 46 | if (Config.LANG == 'TR') ldc = '*‎Link Tespit Edildi!*' 47 | if (Config.LANG == 'EN') ldc = '*LINK NOT ALLOWED HERE!*' 48 | if (Config.LANG == 'ML') ldc = '*ലിങ്ക് കണ്ടെത്തി!*' 49 | if (Config.LANG == 'ID') ldc = '*Tautan Terdeteksi!*' 50 | if (Config.LANG == 'PT') ldc = '*Link Detectado!*' 51 | if (Config.LANG == 'RU') ldc = '*Ссылка обнаружена!*' 52 | if (Config.LANG == 'HI') ldc = '*लिंक का पता चला!*' 53 | if (Config.LANG == 'ES') ldc = '*Enlace Detectado!*' 54 | Julie.addCommand({on: 'text', fromMe: false, deleteCommand: false}, (async (message, match) => { 55 | if (antilink_var == 'true' && message.jid !== '905511384572-1616356915@g.us') { 56 | let regex1 = new RegExp('http://') 57 | let regex2 = new RegExp('https://chat') 58 | let regex3 = new RegExp('https://meet') 59 | let regex4 = new RegExp('https://t.co') 60 | let regex5 = new RegExp('https://t.me') 61 | if (regex1.test(message.message)) { 62 | var us = await checkUsAdmin(message) 63 | var im = await checkImAdmin(message) 64 | if (!im) return; 65 | if (us) return; 66 | await message.client.groupRemove(message.jid, [message.data.participant]); 67 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 68 | } 69 | else if (regex2.test(message.message)) { 70 | var us = await checkUsAdmin(message) 71 | var im = await checkImAdmin(message) 72 | if (!im) return; 73 | if (us) return; 74 | await message.client.groupRemove(message.jid, [message.data.participant]); 75 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 76 | } 77 | else if (regex3.test(message.message)) { 78 | var us = await checkUsAdmin(message) 79 | var im = await checkImAdmin(message) 80 | if (!im) return; 81 | if (us) return; 82 | await message.client.groupRemove(message.jid, [message.data.participant]); 83 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 84 | } 85 | else if (regex4.test(message.message)) { 86 | var us = await checkUsAdmin(message) 87 | var im = await checkImAdmin(message) 88 | if (!im) return; 89 | if (us) return; 90 | await message.client.groupRemove(message.jid, [message.data.participant]); 91 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 92 | } 93 | else if (regex5.test(message.message)) { 94 | var us = await checkUsAdmin(message) 95 | var im = await checkImAdmin(message) 96 | if (!im) return; 97 | if (us) return; 98 | await message.client.groupRemove(message.jid, [message.data.participant]); 99 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 100 | } 101 | else if (message.message.match(/((?:[.]py)\b)/i)) { 102 | var us = await checkUsAdmin(message) 103 | var im = await checkImAdmin(message) 104 | if (!im) return; 105 | if (us) return; 106 | await message.client.groupRemove(message.jid, [message.data.participant]); 107 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 108 | } 109 | else if (message.message.match(/((?:[.]html)\b)/i)) { 110 | var us = await checkUsAdmin(message) 111 | var im = await checkImAdmin(message) 112 | if (!im) return; 113 | if (us) return; 114 | await message.client.groupRemove(message.jid, [message.data.participant]); 115 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 116 | } 117 | else if (message.message.match(/((?:[.]org)\b)/i)) { 118 | var us = await checkUsAdmin(message) 119 | var im = await checkImAdmin(message) 120 | if (!im) return; 121 | if (us) return; 122 | await message.client.groupRemove(message.jid, [message.data.participant]); 123 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 124 | } 125 | else if (message.message.match(/((?:[.]in)\b)/i)) { 126 | var us = await checkUsAdmin(message) 127 | var im = await checkImAdmin(message) 128 | if (!im) return; 129 | if (us) return; 130 | await message.client.groupRemove(message.jid, [message.data.participant]); 131 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 132 | } 133 | else if (message.message.match(/((?:[.]me)\b)/i)) { 134 | var us = await checkUsAdmin(message) 135 | var im = await checkImAdmin(message) 136 | if (!im) return; 137 | if (us) return; 138 | await message.client.groupRemove(message.jid, [message.data.participant]); 139 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 140 | } 141 | } 142 | })); 143 | -------------------------------------------------------------------------------- /plugins/ffmpeg.js: -------------------------------------------------------------------------------- 1 | /* Codded by @phaticusthiccy 2 | Telegram: t.me/phaticusthiccy 3 | Instagram: www.instagram.com/kyrie.baran 4 | */ 5 | 6 | const Asena = 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('ffmpeg'); 16 | 17 | if (Config.WORKTYPE == 'private') { 18 | 19 | Asena.addCommand({pattern: 'ffmpeg ?(.*)', fromMe: true, desc: Lang.FF_DESC}, (async (message, match) => { 20 | 21 | if (match[1] === '') return await message.client.sendMessage(message.jid,'Need Media and Filter Name!\nℹ️ Ex: ```.ffmpeg fade=in:0:30```\nℹ️ Ex: ```.ffmpeg curves=vintage, fps=fps=25```', MessageType.text); 22 | if (message.reply_message.video) { 23 | 24 | var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text); 25 | var location = await message.client.downloadAndSaveMediaMessage({ 26 | key: { 27 | remoteJid: message.reply_message.jid, 28 | id: message.reply_message.id 29 | }, 30 | message: message.reply_message.data.quotedMessage 31 | }); 32 | 33 | ffmpeg(location) 34 | .videoFilters(`${match[1]}`) 35 | .format('mp4') 36 | .save('output.mp4') 37 | .on('end', async () => { 38 | await message.sendMessage(fs.readFileSync('output.mp4'), MessageType.video, {mimetype: Mimetype.mpeg, caption: 'Made by WhatsAsena'}); 39 | }); 40 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 41 | } 42 | else if (message.reply_message.video === false && message.reply_message.image) { 43 | 44 | var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text); 45 | var location = await message.client.downloadAndSaveMediaMessage({ 46 | key: { 47 | remoteJid: message.reply_message.jid, 48 | id: message.reply_message.id 49 | }, 50 | message: message.reply_message.data.quotedMessage 51 | }); 52 | 53 | ffmpeg(location) 54 | .videoFilters(`${match[1]}`) 55 | .save('output.jpg') 56 | .on('end', async () => { 57 | await message.sendMessage(fs.readFileSync('output.jpg'), MessageType.image, {mimetype: Mimetype.jpg, caption: 'Made by WhatsAsena'}); 58 | }); 59 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 60 | } 61 | else { 62 | var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text); 63 | var location = await message.client.downloadAndSaveMediaMessage({ 64 | key: { 65 | remoteJid: message.reply_message.jid, 66 | id: message.reply_message.id 67 | }, 68 | message: message.reply_message.data.quotedMessage 69 | }); 70 | 71 | ffmpeg(location) 72 | .audioFilters(`${match[1]}`) 73 | .save('output.mp3') 74 | .on('end', async () => { 75 | await message.sendMessage(fs.readFileSync('output.mp3'), MessageType.audio, {mimetype: Mimetype.mp4Audio}); 76 | }); 77 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 78 | } 79 | })); 80 | } 81 | else if (Config.WORKTYPE == 'public') { 82 | 83 | Asena.addCommand({pattern: 'ffmpeg ?(.*)', fromMe: false, desc: Lang.FF_DESC}, (async (message, match) => { 84 | 85 | if (match[1] === '') return await message.client.sendMessage(message.jid,'Need Media and Filter Name!\nℹ️ Ex: ```.ffmpeg fade=in:0:30```\nℹ️ Ex: ```.ffmpeg curves=vintage, fps=fps=25```', MessageType.text); 86 | if (message.reply_message.video) { 87 | 88 | var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text); 89 | var location = await message.client.downloadAndSaveMediaMessage({ 90 | key: { 91 | remoteJid: message.reply_message.jid, 92 | id: message.reply_message.id 93 | }, 94 | message: message.reply_message.data.quotedMessage 95 | }); 96 | 97 | ffmpeg(location) 98 | .videoFilters(`${match[1]}`) 99 | .format('mp4') 100 | .save('output.mp4') 101 | .on('end', async () => { 102 | await message.sendMessage(fs.readFileSync('output.mp4'), MessageType.video, {mimetype: Mimetype.mpeg, caption: 'Made by WhatsAsena'}); 103 | }); 104 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 105 | } 106 | else if (message.reply_message.video === false && message.reply_message.image) { 107 | 108 | var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text); 109 | var location = await message.client.downloadAndSaveMediaMessage({ 110 | key: { 111 | remoteJid: message.reply_message.jid, 112 | id: message.reply_message.id 113 | }, 114 | message: message.reply_message.data.quotedMessage 115 | }); 116 | 117 | ffmpeg(location) 118 | .videoFilters(`${match[1]}`) 119 | .save('output.jpg') 120 | .on('end', async () => { 121 | await message.sendMessage(fs.readFileSync('output.jpg'), MessageType.image, {mimetype: Mimetype.jpg, caption: 'Made by WhatsAsena'}); 122 | }); 123 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 124 | } 125 | else { 126 | var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text); 127 | var location = await message.client.downloadAndSaveMediaMessage({ 128 | key: { 129 | remoteJid: message.reply_message.jid, 130 | id: message.reply_message.id 131 | }, 132 | message: message.reply_message.data.quotedMessage 133 | }); 134 | 135 | ffmpeg(location) 136 | .audioFilters(`${match[1]}`) 137 | .save('output.mp3') 138 | .on('end', async () => { 139 | await message.sendMessage(fs.readFileSync('output.mp3'), MessageType.audio, {mimetype: Mimetype.mp4Audio}); 140 | }); 141 | return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true}) 142 | } 143 | })); 144 | 145 | } 146 | -------------------------------------------------------------------------------- /plugins/theri.js: -------------------------------------------------------------------------------- 1 | /* Copyright (C) 2020 afnanplk. 2 | Licensed under the GPL-3.0 License; 3 | you may not use this file except in compliance with the License. 4 | WhatsAsena - Yusuf Usta 5 | */ 6 | 7 | const Asena = require('../events'); 8 | const {MessageType} = require('@adiwajshing/baileys'); 9 | const exec = require('child_process').exec; 10 | const os = require("os"); 11 | const fs = require('fs'); 12 | const Config = require('../config') 13 | const Language = require('../language'); 14 | const Lang = Language.getString('evaluators'); 15 | const SLang = Language.getString('conventer'); 16 | const NLang = Language.getString('scrapers'); 17 | const googleTTS = require('google-translate-tts'); 18 | const Heroku = require('heroku-client'); 19 | const heroku = new Heroku({ 20 | token: Config.HEROKU.API_KEY 21 | }); 22 | let baseURI = '/apps/' + Config.HEROKU.APP_NAME; 23 | 24 | 25 | async function checkUsAdmin(message, user = message.data.participant) { 26 | var grup = await message.client.groupMetadata(message.jid); 27 | var sonuc = grup['participants'].map((member) => { 28 | if (member.jid.split("@")[0] == user.split("@")[0] && member.isAdmin) return true; else; return false; 29 | }); 30 | return sonuc.includes(true); 31 | } 32 | async function checkImAdmin(message, user = message.client.user.jid) { 33 | var grup = await message.client.groupMetadata(message.jid); 34 | var sonuc = grup['participants'].map((member) => { 35 | if (member.jid.split("@")[0] == user.split("@")[0] && member.isAdmin) return true; else; return false; 36 | }); 37 | return sonuc.includes(true); 38 | } 39 | var therikick_var = '' 40 | async function notheri() { 41 | await heroku.get(baseURI + '/config-vars').then(async (vars) => { 42 | therikick_var = vars.THERI_KICK 43 | }); 44 | } 45 | notheri() 46 | var ldc = '' 47 | if (Config.LANG == 'AZ') ldc = '*Bağlantı Aşkarlandı!*' 48 | if (Config.LANG == 'TR') ldc = '*‎Link Tespit Edildi!*' 49 | if (Config.LANG == 'EN') ldc = '*ith njanum vilikkilla neeyum villikilla* \n 😅 *arod parayan aar kelkaan* \n *edth purath aakiyathin shesham aan parayunne* 😅😅' 50 | if (Config.LANG == 'ML') ldc = '*ലിങ്ക് കണ്ടെത്തി!*' 51 | if (Config.LANG == 'ID') ldc = '*Tautan Terdeteksi!*' 52 | if (Config.LANG == 'PT') ldc = '*Link Detectado!*' 53 | if (Config.LANG == 'RU') ldc = '*Ссылка обнаружена!*' 54 | if (Config.LANG == 'HI') ldc = '*लिंक का पता चला!*' 55 | if (Config.LANG == 'ES') ldc = '*Enlace Detectado!*' 56 | Asena.addCommand({on: 'text', fromMe: false, deleteCommand: false}, (async (message, match) => { 57 | if (therikick_var == 'true' && message.jid !== '905511384572-1616356915@g.us') { 58 | let regex1 = new RegExp('thayoli') 59 | let regex2 = new RegExp('thaayoli') 60 | let regex3 = new RegExp('thayolli') 61 | let regex4 = new RegExp('thaayolli') 62 | let regex5 = new RegExp('thayyoli') 63 | let regex6 = new RegExp('Thayoli') 64 | let regex7 = new RegExp('Thaayoli') 65 | let regex8 = new RegExp('Thayolli') 66 | let regex9 = new RegExp('Thaayolli') 67 | let regex10 = new RegExp('Thayyoli') 68 | if (regex1.test(message.message)) { 69 | var us = await checkUsAdmin(message) 70 | var im = await checkImAdmin(message) 71 | if (!im) return; 72 | if (us) return; 73 | await message.client.groupRemove(message.jid, [message.data.participant]); 74 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 75 | } 76 | else if (regex2.test(message.message)) { 77 | var us = await checkUsAdmin(message) 78 | var im = await checkImAdmin(message) 79 | if (!im) return; 80 | if (us) return; 81 | await message.client.groupRemove(message.jid, [message.data.participant]); 82 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 83 | } 84 | else if (regex3.test(message.message)) { 85 | var us = await checkUsAdmin(message) 86 | var im = await checkImAdmin(message) 87 | if (!im) return; 88 | if (us) return; 89 | await message.client.groupRemove(message.jid, [message.data.participant]); 90 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 91 | } 92 | else if (regex4.test(message.message)) { 93 | var us = await checkUsAdmin(message) 94 | var im = await checkImAdmin(message) 95 | if (!im) return; 96 | if (us) return; 97 | await message.client.groupRemove(message.jid, [message.data.participant]); 98 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 99 | } 100 | else if (regex5.test(message.message)) { 101 | var us = await checkUsAdmin(message) 102 | var im = await checkImAdmin(message) 103 | if (!im) return; 104 | if (us) return; 105 | await message.client.groupRemove(message.jid, [message.data.participant]); 106 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 107 | } 108 | else if (regex6.test(message.message)) { 109 | var us = await checkUsAdmin(message) 110 | var im = await checkImAdmin(message) 111 | if (!im) return; 112 | if (us) return; 113 | await message.client.groupRemove(message.jid, [message.data.participant]); 114 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 115 | } 116 | else if (regex7.test(message.message)) { 117 | var us = await checkUsAdmin(message) 118 | var im = await checkImAdmin(message) 119 | if (!im) return; 120 | if (us) return; 121 | await message.client.groupRemove(message.jid, [message.data.participant]); 122 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 123 | } 124 | else if (regex8.test(message.message)) { 125 | var us = await checkUsAdmin(message) 126 | var im = await checkImAdmin(message) 127 | if (!im) return; 128 | if (us) return; 129 | await message.client.groupRemove(message.jid, [message.data.participant]); 130 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 131 | } 132 | else if (regex9.test(message.message)) { 133 | var us = await checkUsAdmin(message) 134 | var im = await checkImAdmin(message) 135 | if (!im) return; 136 | if (us) return; 137 | await message.client.groupRemove(message.jid, [message.data.participant]); 138 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 139 | } 140 | else if (regex10.test(message.message)) { 141 | var us = await checkUsAdmin(message) 142 | var im = await checkImAdmin(message) 143 | if (!im) return; 144 | if (us) return; 145 | await message.client.groupRemove(message.jid, [message.data.participant]); 146 | await message.client.sendMessage(message.jid,ldc, MessageType.text, {quoted: message.data }) 147 | } 148 | } 149 | })); 150 | -------------------------------------------------------------------------------- /app.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Julie-Mwol", 3 | "description": "Julie Mwol is the Modified Version of WhatsAsena, Made By @farhan-dqz with Baileys.", 4 | "logo": "https://i.imgur.com/ADXSU8e.jpeg", 5 | "keywords": ["whatsapp", "userbot", "julie", "WhatsAsena", "mwol", "bot", "ai"], 6 | "repository": "https://github.com/farhan-dqz/Julie-Mwol", 7 | "website": "https://github.com/farhan-dqz/Julie-Mwol", 8 | "success_url": "https://github.com/farhan-dqz/Julie-Mwol", 9 | "stack": "container", 10 | "env": { 11 | "JULIE_SESSION": { 12 | "description": "Type here yours Asena Session.", 13 | "required": true 14 | }, 15 | "SUDO": { 16 | "description": "Leave blank if you don't know how to use it! Sudo mode; Your number must be an international number. So you should have your number after the country code. Example: 91xxxxxxxxx,0", 17 | "required": false 18 | }, 19 | "LANGUAGE": { 20 | "description": "Bot language.English => en", 21 | "required": true, 22 | "value": "en" 23 | }, 24 | "BGM_FILTER": { 25 | "description": "If you likes bgm you can write 'true'. Otherwise false", 26 | "required": false, 27 | "value": "true" 28 | }, 29 | "AUTO_STICKER": { 30 | "description": "If you likes bgm you can write 'true'. Otherwise false", 31 | "required": false, 32 | "value": "true" 33 | }, 34 | "TALKING_PINKY": { 35 | "description": " Turn your account into a chatbot!", 36 | "required": true, 37 | "value": "false" 38 | }, 39 | "WEL_GIF": { 40 | "description": "Fill here any gif link if you selected gif as WEELCOME", 41 | "required": false, 42 | "value": "false" 43 | }, 44 | "BYE_GIF": { 45 | "description": "Fill here any gif link if you selected gif as WEELCOME", 46 | "required": false, 47 | "value": "false" 48 | }, 49 | "ANTİ_LİNK": { 50 | "description": "Link Blocking System.", 51 | "required": true, 52 | "value": "false" 53 | }, 54 | "AUTO_BİO": { 55 | "description": " Set true for auto date, time in biography.", 56 | "required": true, 57 | "value": "false" 58 | }, 59 | "HANDLERS": { 60 | "description": "For commands.", 61 | "required": true, 62 | "value": "^[.!;]" 63 | }, 64 | "FULL_EVA": { 65 | "description": "Turn your account into a chatbot!", 66 | "required": true, 67 | "value": "false" 68 | }, 69 | "NO_LOG": { 70 | "description": " Set true if you don't want to see error log.", 71 | "required": true, 72 | "value": "false" 73 | }, 74 | "SEND_READ": { 75 | "description": "Write true if you want to throw seen.", 76 | "required": true, 77 | "value": "true" 78 | }, 79 | "ALL_CAPTION": { 80 | "description": "Caption for images and videos generated by pinky bot", 81 | "required": false, 82 | "value": "PUBLIC BOT" 83 | }, 84 | "HEROKU": { 85 | "description": "If it is running in Heroku, type true.", 86 | "required": true, 87 | "value": "true" 88 | }, 89 | "HEROKU_API_KEY": { 90 | "description": "Heroku API Key.", 91 | "required": true 92 | }, 93 | "MUTE_MESSAGE": { 94 | "description": "Customizable Mute Message! Use => default, to change back.", 95 | "required": false, 96 | "value": "default" 97 | }, 98 | "TAG_HEADER": { 99 | "description": "Heading when taging all", 100 | "required": false, 101 | "value": "hear me friends" 102 | }, 103 | "BLOCK_CHAT": { 104 | "description": "Choose in which chat the bot won't work there. Ex: 905xxxx && 905xxxx-1xxx or 905xxxx,905xxx...", 105 | "required": false, 106 | "value": "false" 107 | }, 108 | "UNMUTE_MESSAGE": { 109 | "description": "Customizable Unmute Message! Use => default, to change back.", 110 | "required": false, 111 | "value": "default" 112 | }, 113 | "BLOCK_MESSAGE": { 114 | "description": "Customizable Block Message! Use => default, to change back.", 115 | "required": false, 116 | "value": "default" 117 | }, 118 | "UNBLOCK_MESSAGE": { 119 | "description": "Customizable Unblock Message! Use => default, to change back.", 120 | "required": false, 121 | "value": "default" 122 | }, 123 | "BOT_NAME": { 124 | "description": "heading for .list command reply", 125 | "required": false, 126 | "value": "•━━━━╼⤏JulieMWol⤎╾━━━•" 127 | }, 128 | "WORK_TYPE": { 129 | "description": "JulieMwol Working Type. If you use “public”, everyone can use the bot. Else if you use “private”, only you can use your bot.", 130 | "required": true, 131 | "value": "public" 132 | }, 133 | "HEROKU_APP_NAME": { 134 | "description": "Heroku APP Name.", 135 | "required": true 136 | }, 137 | "DEBUG": { 138 | "description": "Debugging", 139 | "required": true, 140 | "value": "false" 141 | }, 142 | "REMOVE_BG_API_KEY": { 143 | "description": "https://remove.bg", 144 | "required": false 145 | }, 146 | "ALIVE_MESSAGE": { 147 | "description": "Customizable Alive Message! Use => default, to change back.", 148 | "required": false, 149 | "value": "\n ```I Am Alive !!!```\n\n```Type``` *.help* ```for commands```" 150 | }, 151 | "BAN_MESSAGE": { 152 | "description": "Customizable Ban Message! Use => default, to change back.", 153 | "required": false, 154 | "value": "default" 155 | }, 156 | "SONGD": { 157 | "description": "Customizable song DOWNLOADING message instead of 'Dowloading your song'", 158 | "required": true, 159 | "value": "*Downloading your song*" 160 | }, 161 | "SONGU": { 162 | "description": "Customizable song UPLOADING message instead of 'Uploading your song'", 163 | "required": true, 164 | "value": "*Feel the song*" 165 | }, 166 | "ADD_MESSAGE": { 167 | "description": "Customizable Add Message! Use => default, to change back.", 168 | "required": false, 169 | "value": "default" 170 | }, 171 | "KICKME_MESSAGE": { 172 | "description": "Customizable Kickme Message! Use => default, to change back.", 173 | "required": false, 174 | "value": "default" 175 | }, 176 | "PROMOTE_MESSAGE": { 177 | "description": "Customizable Promote Message! Use => default, to change back.", 178 | "required": false, 179 | "value": "default" 180 | }, 181 | "DEMOTE_MESSAGE": { 182 | "description": "Customizable Demote Message! Use => default, to change back.", 183 | "required": false, 184 | "value": "default" 185 | }, 186 | "AFK_MESSAGE": { 187 | "description": "Customizable AFK Message! Use => default, to change back.", 188 | "required": false, 189 | "value": "default" 190 | }, 191 | "NO_ONLINE": { 192 | "description": "Çevrimiçi görünmek istemiyorsanız true yazın. Type true if you don't want to appear online.", 193 | "required": false, 194 | "value": "true" 195 | } 196 | }, 197 | "addons": [{ 198 | "plan": "heroku-postgresql" 199 | }], 200 | "buildpacks": [{ 201 | "url": "heroku-community/apt" 202 | }] 203 | } 204 | --------------------------------------------------------------------------------