"
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 | 
20 |
21 | ## Setup
22 |
23 |
24 | ### Simple Method
25 |
26 | [](https://heroku.com/deploy?template=https://github.com/farhan-dqz/Julie-Mwol)
27 |
28 | [](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 | [](https://chat.whatsapp.com/BT0nNPBthyFI1ejoSr0i7W)
70 |
71 |
72 | [](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 | [](https://github.com/farhan-dqz) | [](https://github.com/TOXIC-DEVIL) | [](https://github.com/AI-VIKI) | [](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 |
--------------------------------------------------------------------------------