const { BufferJSON, WA_DEFAULT_EPHEMERAL, generateWAMessageFromContent, proto, generateWAMessageContent, generateWAMessage, prepareWAMessageMedia, areJidsSameUser, getContentType } = require('@adiwajshing/baileys') const fs = require('fs') const util = require('util') const chalk = require('chalk') const { Configuration, OpenAIApi } = require("openai") let setting = require('./key.json') module.exports = sansekai = async (client, m, chatUpdate, store) => { try { var body = (m.mtype === 'conversation') ? m.message.conversation : (m.mtype == 'imageMessage') ? m.message.imageMessage.caption : (m.mtype == 'videoMessage') ? m.message.videoMessage.caption : (m.mtype == 'extendedTextMessage') ? m.message.extendedTextMessage.text : (m.mtype == 'buttonsResponseMessage') ? m.message.buttonsResponseMessage.selectedButtonId : (m.mtype == 'listResponseMessage') ? m.message.listResponseMessage.singleSelectReply.selectedRowId : (m.mtype == 'templateButtonReplyMessage') ? m.message.templateButtonReplyMessage.selectedId : (m.mtype === 'messageContextInfo') ? (m.message.buttonsResponseMessage?.selectedButtonId || m.message.listResponseMessage?.singleSelectReply.selectedRowId || m.text) : '' var budy = (typeof m.text == 'string' ? m.text : '') // var prefix = /^[\\/!#.]/gi.test(body) ? body.match(/^[\\/!#.]/gi) : "/" var prefix = /^[\\/!#.]/gi.test(body) ? body.match(/^[\\/!#.]/gi) : "/" const isCmd2 = body.startsWith(prefix) const command = body.replace(prefix, '').trim().split(/ +/).shift().toLowerCase() const args = body.trim().split(/ +/).slice(1) const pushname = m.pushName || "No Name" const botNumber = await client.decodeJid(client.user.id) const itsMe = m.sender == botNumber ? true : false let text = q = args.join(" ") const arg = budy.trim().substring(budy.indexOf(' ') + 1 ) const arg1 = arg.trim().substring(arg.indexOf(' ') + 1 ) const from = m.chat const reply = m.reply const sender = m.sender const mek = chatUpdate.messages[0] const color = (text, color) => { return !color ? chalk.green(text) : chalk.keyword(color)(text) } // Group const groupMetadata = m.isGroup ? await client.groupMetadata(m.chat).catch(e => {}) : '' const groupName = m.isGroup ? groupMetadata.subject : '' // Push Message To Console let argsLog = (budy.length > 30) ? `${q.substring(0, 30)}...` : budy if (setting.autoAI) { // Push Message To Console && Auto Read if (argsLog && !m.isGroup) { // client.sendReadReceipt(m.chat, m.sender, [m.key.id]) console.log(chalk.black(chalk.bgWhite('[ LOGS ]')), color(argsLog, 'turquoise'), chalk.magenta('From'), chalk.green(pushname), chalk.yellow(`[ ${m.sender.replace('@s.whatsapp.net', '')} ]`)) } else if (argsLog && m.isGroup) { // client.sendReadReceipt(m.chat, m.sender, [m.key.id]) console.log(chalk.black(chalk.bgWhite('[ LOGS ]')), color(argsLog, 'turquoise'), chalk.magenta('From'), chalk.green(pushname), chalk.yellow(`[ ${m.sender.replace('@s.whatsapp.net', '')} ]`), chalk.blueBright('IN'), chalk.green(groupName)) } } else if (!setting.autoAI) { if (isCmd2 && !m.isGroup) { console.log(chalk.black(chalk.bgWhite('[ LOGS ]')), color(argsLog, 'turquoise'), chalk.magenta('From'), chalk.green(pushname), chalk.yellow(`[ ${m.sender.replace('@s.whatsapp.net', '')} ]`)) } else if (isCmd2 && m.isGroup) { console.log(chalk.black(chalk.bgWhite('[ LOGS ]')), color(argsLog, 'turquoise'), chalk.magenta('From'), chalk.green(pushname), chalk.yellow(`[ ${m.sender.replace('@s.whatsapp.net', '')} ]`), chalk.blueBright('IN'), chalk.green(groupName)) } } if (setting.autoAI) { if (budy) { try { if (setting.keyopenai === 'ISI_APIKEY_OPENAI_DISINI') return reply('Apikey belum diisi\n\nSilahkan isi terlebih dahulu apikeynya di file key.json\n\nApikeynya bisa dibuat di website: https://beta.openai.com/account/api-keys') const configuration = new Configuration({ apiKey: setting.keyopenai, }); const openai = new OpenAIApi(configuration); const response = await openai.createCompletion({ model: "text-davinci-003", prompt: budy, temperature: 0.3, max_tokens: 3000, top_p: 1.0, frequency_penalty: 0.0, presence_penalty: 0.0, }); m.reply(`${response.data.choices[0].text}\n\n`) } catch(err) { console.log(err) m.reply('Maaf, sepertinya ada yang error') } } } if (!setting.autoAI) { if (isCmd2) { switch(command) { case 'ai': try { if (setting.keyopenai === 'ISI_APIKEY_OPENAI_DISINI') return reply('Api key has not been filled in\n\nPlease fill in the apikey first in the key.json file\n\nThe apikey can be created in website: https://beta.openai.com/account/api-keys') if (!text) return reply(`Chat dengan AI.\n\nContoh:\n${prefix}${command} Apa itu resesi`) const configuration = new Configuration({ apiKey: setting.keyopenai, }); const openai = new OpenAIApi(configuration); const response = await openai.createCompletion({ model: "text-davinci-003", prompt: text, temperature: 0.3, max_tokens: 3000, top_p: 1.0, frequency_penalty: 0.0, presence_penalty: 0.0, }); m.reply(`${response.data.choices[0].text}\n\n`) } catch (err) { console.log(err) m.reply('Maaf, sepertinya ada yang error') } break default:{ if (isCmd2 && budy.toLowerCase() != undefined) { if (m.chat.endsWith('broadcast')) return if (m.isBaileys) return if (!(budy.toLowerCase())) return if (argsLog || isCmd2 && !m.isGroup) { // client.sendReadReceipt(m.chat, m.sender, [m.key.id]) console.log(chalk.black(chalk.bgRed('[ ERROR ]')), color('command', 'turquoise'), color(argsLog, 'turquoise'), color('tidak tersedia', 'turquoise')) } else if (argsLog || isCmd2 && m.isGroup) { // client.sendReadReceipt(m.chat, m.sender, [m.key.id]) console.log(chalk.black(chalk.bgRed('[ ERROR ]')), color('command', 'turquoise'), color(argsLog, 'turquoise'), color('tidak tersedia', 'turquoise')) } } } } } } } catch (err) { m.reply(util.format(err)) } } let file = require.resolve(__filename) fs.watchFile(file, () => { fs.unwatchFile(file) console.log(chalk.redBright(`Update ${__filename}`)) delete require.cache[file] require(file) })