xwa-api
Version:
GARFIELD 6.0 BY NOIZE.
88 lines (78 loc) • 4.34 kB
JavaScript
/*COPYRIGHT (C) 2022 CODED BY NOIZE */
const Garfield = require('../events');
const {MessageType} = require('@adiwajshing/baileys');
const FilterDb = require('./sql/filters');
const Config = require('../config')
const Language = require('../language');
const Lang = Language.getString('filters');
var f_rep = ''
if (Config.LANG == 'TR') f_rep = '*Filtre Ayarlandı 🐼*'
if (Config.LANG == 'EN') f_rep = '*Filter Setted 🐼*'
if (Config.LANG == 'AZ') f_rep = '*Filtr Düzəldildi 🐼*'
if (Config.LANG == 'ES') f_rep = '*Filtro Ajustado 🐼*'
if (Config.LANG == 'HI') f_rep = '*फ़िल्टर सेट 🐼*'
if (Config.LANG == 'RU') f_rep = '*Фильтр настроен 🐼*'
if (Config.LANG == 'ML') f_rep = '*ഫിൽട്ടർ സെറ്റ് 🐼*'
if (Config.LANG == 'ID') f_rep = '*Filter Set 🐼*'
if (Config.LANG == 'PT') f_rep = '*Filtro Ajustado 🐼*'
Garfield.addXnodes({pattern: 'filter ?(.*)', fromMe: true, desc: Lang.FILTER_DESC}, (async (message, match) => {
Mat = match[1].match(/[\'\"\“](.*?)[\'\"\“]/gsm);
if (Mat === null) {
filtreler = await FilterDb.getFilter(message.jid);
if (filtreler === false) {
await message.client.sendMessage(message.jid,Lang.NO_FILTER,MessageType.text)
} else {
var mesaj = Lang.FILTERS + '\n';
filtreler.map((filter) => mesaj += '```' + filter.dataValues.pattern + '```\n');
await message.client.sendMessage(message.jid,mesaj,MessageType.text);
}
} else if (message.reply_message && match[1] !== '') {
await FilterDb.setFilter(message.jid, match[1].replace(/['"“]+/g, ''), message.reply_message.text);
return await message.client.sendMessage(message.jid,f_rep,MessageType.text);
} else {
if (Mat.length < 2) {
return await message.client.sendMessage(message.jid,Lang.NEED_REPLY + ' ```.filter "test" "test two"',MessageType.text);
}
await FilterDb.setFilter(message.jid, Mat[0].replace(/['"“]+/g, ''), Mat[1].replace(/['"“]+/g, '').replace(/[#]+/g, '\n'), Mat[0][0] === "'" ? true : false);
await message.client.sendMessage(message.jid,Lang.FILTERED.format(Mat[0].replace(/['"]+/g, '')),MessageType.text);
}
}));
Garfield.addXnodes({pattern: 'stop ?(.*)', fromMe: true, desc: Lang.STOP_DESC}, (async (message, match) => {
match = match[1].match(/[\'\"\“](.*?)[\'\"\“]/gsm);
if (match === null) {
return await message.client.sendMessage(message.jid,Lang.NEED_REPLY + '\n*Example:* ```.stop "hello"```',MessageType.text)
}
del = await FilterDb.deleteFilter(message.jid, match[0].replace(/['"“]+/g, ''));
if (!del) {
await message.client.sendMessage(message.jid,Lang.ALREADY_NO_FILTER, MessageType.text)
} else {
await message.client.sendMessage(message.jid,Lang.DELETED, MessageType.text)
}
}));
Garfield.addXnodes({on: 'text', fromMe: false}, (async (message, match) => {
var filtreler = await FilterDb.getFilter(message.jid);
if (!filtreler) return;
return filtreler.map(
async (filter) => {
pattern = new RegExp(filter.dataValues.regex ? filter.dataValues.pattern : ('\\b(' + filter.dataValues.pattern + ')\\b'), 'gm');
if (message.message == filter.dataValues.pattern) {
await new Promise(r => setTimeout(r, 900));
return await message.client.sendMessage(message.jid,filter.dataValues.text, MessageType.text, {quoted: message.data});
}
}
);
}));
Garfield.addXnodes({on: 'text', fromMe: true, deleteCommand: false, dontAddCommandList: true}, (async (message, match) => {
var filtreler = await FilterDb.getFilter(message.jid);
if (!filtreler) return;
return filtreler.map(
async (filter) => {
pattern = new RegExp(filter.dataValues.regex ? filter.dataValues.pattern : ('\\b(' + filter.dataValues.pattern + ')\\b'), 'gm');
var fo = message.message.replace('$', '')
if (fo == filter.dataValues.pattern && message.message.startsWith('$')) {
await new Promise(r => setTimeout(r, 100));
return await message.client.sendMessage(message.jid,filter.dataValues.text, MessageType.text, {quoted: message.data});
}
}
);
}));