xwa-api
Version:
GARFIELD 6.0 BY NOIZE.
143 lines (124 loc) • 7 kB
JavaScript
/*COPYRIGHT (C) 2022 CODED BY NOIZE */
const Garfield = require('../events');
const {MessageType,Mimetype} = require('@adiwajshing/baileys');
const fs = require('fs');
const ffmpeg = require('fluent-ffmpeg');
const {execFile} = require('child_process');
const cwebp = require('cwebp-bin');
const Config = require('../config');
const Language = require('../language');
const Lang = Language.getString('ffmpeg');
if (Config.WORKTYPE == 'private') {
Garfield.addXnodes({pattern: 'ffmpeg ?(.*)', fromMe: true, desc: Lang.FF_DESC}, (async (message, match) => {
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);
if (message.reply_message.video) {
var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text);
var location = await message.client.downloadAndSaveMediaMessage({
key: {
remoteJid: message.reply_message.jid,
id: message.reply_message.id
},
message: message.reply_message.data.quotedMessage
});
ffmpeg(location)
.videoFilters(`${match[1]}`)
.format('mp4')
.save('output.mp4')
.on('end', async () => {
await message.sendMessage(fs.readFileSync('output.mp4'), MessageType.video, {mimetype: Mimetype.mpeg, caption: ' ```Follow Us Facebook - https://www.facebook.com/garfieldbots/``` '});
});
return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true})
}
else if (message.reply_message.video === false && message.reply_message.image) {
var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text);
var location = await message.client.downloadAndSaveMediaMessage({
key: {
remoteJid: message.reply_message.jid,
id: message.reply_message.id
},
message: message.reply_message.data.quotedMessage
});
ffmpeg(location)
.videoFilters(`${match[1]}`)
.save('output.jpg')
.on('end', async () => {
await message.sendMessage(fs.readFileSync('output.jpg'), MessageType.image, {mimetype: Mimetype.jpg, caption: ' ```Follow Us Facebook - https://www.facebook.com/garfieldbots/``` '});
});
return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true})
}
else {
var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text);
var location = await message.client.downloadAndSaveMediaMessage({
key: {
remoteJid: message.reply_message.jid,
id: message.reply_message.id
},
message: message.reply_message.data.quotedMessage
});
ffmpeg(location)
.audioFilters(`${match[1]}`)
.save('output.mp3')
.on('end', async () => {
await message.sendMessage(fs.readFileSync('output.mp3'), MessageType.audio, {mimetype: Mimetype.mp4Audio});
});
return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true})
}
}));
}
else if (Config.WORKTYPE == 'public') {
Garfield.addXnodes({pattern: 'ffmpeg ?(.*)', fromMe: false, desc: Lang.FF_DESC}, (async (message, match) => {
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);
if (message.reply_message.video) {
var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text);
var location = await message.client.downloadAndSaveMediaMessage({
key: {
remoteJid: message.reply_message.jid,
id: message.reply_message.id
},
message: message.reply_message.data.quotedMessage
});
ffmpeg(location)
.videoFilters(`${match[1]}`)
.format('mp4')
.save('output.mp4')
.on('end', async () => {
await message.sendMessage(fs.readFileSync('output.mp4'), MessageType.video, {mimetype: Mimetype.mpeg, caption: ' ```Follow Us Facebook - https://www.facebook.com/garfieldbots/``` '});
});
return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true})
}
else if (message.reply_message.video === false && message.reply_message.image) {
var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text);
var location = await message.client.downloadAndSaveMediaMessage({
key: {
remoteJid: message.reply_message.jid,
id: message.reply_message.id
},
message: message.reply_message.data.quotedMessage
});
ffmpeg(location)
.videoFilters(`${match[1]}`)
.save('output.jpg')
.on('end', async () => {
await message.sendMessage(fs.readFileSync('output.jpg'), MessageType.image, {mimetype: Mimetype.jpg, caption: ' ```Follow Us Facebook - https://www.facebook.com/garfieldbots/``` '});
});
return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true})
}
else {
var downloading = await message.client.sendMessage(message.jid,Lang.FF_PROC,MessageType.text);
var location = await message.client.downloadAndSaveMediaMessage({
key: {
remoteJid: message.reply_message.jid,
id: message.reply_message.id
},
message: message.reply_message.data.quotedMessage
});
ffmpeg(location)
.audioFilters(`${match[1]}`)
.save('output.mp3')
.on('end', async () => {
await message.sendMessage(fs.readFileSync('output.mp3'), MessageType.audio, {mimetype: Mimetype.mp4Audio});
});
return await message.client.deleteMessage(message.jid, {id: downloading.key.id, remoteJid: message.jid, fromMe: true})
}
}));
}