From ffc9c72368f9193732f109cca9ad446a73f9a826 Mon Sep 17 00:00:00 2001 From: Kry9toN Date: Mon, 25 Jan 2021 18:44:25 +0700 Subject: [PATCH] add logging on web --- src/krypton.ts | 35 +++++++++++++++++++---------------- src/utils/web.ts | 17 ++++++++++++++--- views/css/style.css | 3 ++- views/index.ejs | 9 +++++---- views/js/main.js | 10 +++++++--- 5 files changed, 47 insertions(+), 27 deletions(-) diff --git a/src/krypton.ts b/src/krypton.ts index 0f3d51c..4df0088 100644 --- a/src/krypton.ts +++ b/src/krypton.ts @@ -10,9 +10,8 @@ const { color } = require('./utils/color') const fs = require('fs') const moment = require('moment-timezone') const { welcome, goodbye } = require('./utils/greeting') -const time = moment.tz('Asia/Jakarta').format('DD/MM HH:mm:ss') const { databaseView, databaseInput } = require('./utils/db') -const { web } = require('./utils/web') +const { web, loging } = require('./utils/web') async function krypton () { const client = new WAConnection() @@ -90,12 +89,12 @@ async function krypton () { const name = client.contacts[num] != undefined ? client.contacts[num].vname || client.contacts[num].notify : undefined const ppimg = await client.getProfilePicture(`${greeting.participants[0].split('@')[0]}@c.us`) if (greeting.action == 'add') { - console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', time, 'client', color(greeting.participants[0].split('@')[0]), 'Masuk ke group', color(mdata.subject)) + console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', client.time, 'client', color(greeting.participants[0].split('@')[0]), 'Masuk ke group', color(mdata.subject)) await welcome(name, mdata.subject, ppimg).then(async (hasil) => { await client.sendMessage(mdata.id, hasil, MessageType.image) }) } else if (greeting.action == 'remove') { - console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', time, 'client', color(greeting.participants[0].split('@')[0]), 'Keluar dari group', color(mdata.subject)) + console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', client.time, 'client', color(greeting.participants[0].split('@')[0]), 'Keluar dari group', color(mdata.subject)) await goodbye(name, mdata.subject, ppimg).then(async (hasil) => { await client.sendMessage(mdata.id, hasil, MessageType.image) }) @@ -106,6 +105,7 @@ async function krypton () { }) await client.on('chat-update', async (chat) => { + client.time = moment.tz('Asia/Jakarta').format('DD/MM HH:mm:ss') client.pingStart = chat.t client.apiKey = process.env.API_KEY if (!chat.hasNewMessage) return @@ -119,8 +119,8 @@ async function krypton () { const type = Object.keys(chat.message)[0] client.body = (type === 'conversation' && chat.message.conversation.startsWith(prefix)) ? chat.message.conversation : (type == 'imageMessage') && chat.message.imageMessage.caption.startsWith(prefix) ? chat.message.imageMessage.caption : (type == 'videoMessage') && chat.message.videoMessage.caption.startsWith(prefix) ? chat.message.videoMessage.caption : (type == 'extendedTextMessage') && chat.message.extendedTextMessage.text.startsWith(prefix) ? chat.message.extendedTextMessage.text : '' const args = client.body.trim().split(/ +/).slice(1) - const isCmd = client.body.startsWith(prefix) - const commandName = client.body.slice(1).trim().split(/ +/).shift().toLowerCase() + client.isCmd = client.body.startsWith(prefix) + client.commandName = client.body.slice(1).trim().split(/ +/).shift().toLowerCase() const content = JSON.stringify(chat.message) const botNumber = client.user.jid const ownerNumber = process.env.OWNER_PHONE // Isi di .env @@ -129,7 +129,7 @@ async function krypton () { client.isGroup = client.from.endsWith('@g.us') client.sender = client.isGroup ? chat.participant : chat.key.remoteJid const groupMetadata = client.isGroup ? await client.groupMetadata(client.from) : '' - const groupName = client.isGroup ? groupMetadata.subject : '' + client.groupName = client.isGroup ? groupMetadata.subject : '' client.groupMembers = client.isGroup ? groupMetadata.participants : '' const groupAdmins = client.isGroup ? getGroupAdmins(client.groupMembers) : '' client.groupId = client.isGroup ? groupMetadata.id : '' @@ -150,7 +150,7 @@ async function krypton () { (bolean == null || bolean == undefined || bolean == false) ? client.sendMessage(client.from, teks.trim(), MessageType.extendedText, { contextInfo: { mentionedJid: id } }) : client.sendMessage(client.from, teks.trim(), MessageType.extendedText, { quoted: chat, contextInfo: { mentionedJid: id } }) } client.log = (error: string) => { - client.sendMessage(logGroup, `[LOGGING] command: *${commandName}* ${error}`, MessageType.text) + client.sendMessage(logGroup, `[LOGGING] command: *${client.commandName}* ${error}`, MessageType.text) } client.isMedia = (type === 'imageMessage' || type === 'videoMessage') @@ -171,11 +171,14 @@ async function krypton () { const sList = JSON.stringify(sudo) client.isSudo = sList.includes(client.sender) + // Web api proses + loging(client) + // Logging Message - if (!client.isGroup && isCmd) console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', time, color(commandName), 'client.from', color(client.sender.split('@')[0]), 'args :', color(args.length)) - if (!client.isGroup && !isCmd) console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;31mRECV\x1b[1;37m]', time, color('Message'), 'client.from', color(client.sender.split('@')[0]), 'args :', color(args.length)) - if (isCmd && client.isGroup) console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', time, color(commandName), 'client.from', color(client.sender.split('@')[0]), 'in', color(groupName), 'args :', color(args.length)) - if (!isCmd && client.isGroup) console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;31mRECV\x1b[1;37m]', time, color('Message'), 'client.from', color(client.sender.split('@')[0]), 'in', color(groupName), 'args :', color(args.length)) + if (!client.isGroup && client.isCmd) console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', client.time, color(client.commandName), 'client.from', color(client.sender.split('@')[0]), 'args :', color(args.length)) + if (!client.isGroup && !client.isCmd) console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;31mRECV\x1b[1;37m]', client.time, color('Message'), 'client.from', color(client.sender.split('@')[0]), 'args :', color(args.length)) + if (client.isCmd && client.isGroup) console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;32mEXEC\x1b[1;37m]', client.time, color(client.commandName), 'client.from', color(client.sender.split('@')[0]), 'in', color(client.groupName), 'args :', color(args.length)) + if (!client.isCmd && client.isGroup) console.log('\x1b[1;31m~\x1b[1;37m>', '[\x1b[1;31mRECV\x1b[1;37m]', client.time, color('Message'), 'client.from', color(client.sender.split('@')[0]), 'in', color(client.groupName), 'args :', color(args.length)) const pesan = { tunggu: '⌛ Sedang di Prosess ⌛', @@ -189,7 +192,7 @@ async function krypton () { }, error: { group: '❌ Perintah ini hanya bisa di gunakan dalam group! ❌', - args: '❌ Perintah anda salah! ❌', + args: '❌ Perintah anda salah! ❌' } } @@ -202,11 +205,11 @@ async function krypton () { client.cmd.set(command.name, command) } - if (!isCmd) return + if (!client.isCmd) return const command = - client.cmd.get(commandName) || - client.cmd.find((cmd) => cmd.aliases && cmd.aliases.includes(commandName)) + client.cmd.get(client.commandName) || + client.cmd.find((cmd) => cmd.aliases && cmd.aliases.includes(client.commandName)) if (!command) return diff --git a/src/utils/web.ts b/src/utils/web.ts index 51f724f..e3b2298 100644 --- a/src/utils/web.ts +++ b/src/utils/web.ts @@ -29,7 +29,7 @@ const web = async (client) => { client.sendMessage(id, text, MessageType.text) .then(() => { res.json({ info: 'Berhasil mengirim', status: 200 }) - }).catch((err) => res.json({ info: 'Gagal mengirim', status: 502 })) + }).catch((err) => res.json({ info: err, status: 502 })) }) // CPU USAGE @@ -51,8 +51,9 @@ const web = async (client) => { // Uptime and Chat const chat = await client.chats.all().length const uptime = Math.round(process.uptime()).toFixed(0) + // CPU USAGE PERCENTAGE - cpu.usage().then(cpu => socket.emit('ram-usage', { ram, cpu, username, osInfo, chat, uptime })) + cpu.usage().then(cpu => socket.emit('ram-usage', { ram, cpu, username, osInfo, chat, uptime, loging })) }, 1000) }) @@ -63,6 +64,16 @@ const web = async (client) => { }) } +const loging = (client) => { + let loging + if (!client.isGroup && client.isCmd) loging = `=> ${client.time} ${client.commandName} from ${client.sender.split('@')[0]}` + if (!client.isGroup && !client.isCmd) loging = `=> ${client.time} Message from ${client.sender.split('@')[0]}` + if (client.isCmd && client.isGroup) loging = `=> ${client.time} ${client.commandName} from ${client.sender.split('@')[0]} in ${client.groupName}` + if (!client.isCmd && client.isGroup) loging = `=> ${client.time} Message from ${client.sender.split('@')[0]} in ${client.groupName}` + io.emit('log', { loging }) +} + module.exports = { - web + web, + loging } diff --git a/views/css/style.css b/views/css/style.css index 2a94ae6..74892a0 100644 --- a/views/css/style.css +++ b/views/css/style.css @@ -25,7 +25,8 @@ h1 { height: 100%; } -.uptime-label, +.log-label, +.uptime, .bot, .server, .chat, diff --git a/views/index.ejs b/views/index.ejs index 778e6b6..4336249 100644 --- a/views/index.ejs +++ b/views/index.ejs @@ -13,7 +13,7 @@

KryPtoN Bot Resources

Hello
- +
OS Type
@@ -25,12 +25,13 @@
- +
Total CHAT
- -
+
Uptime:
+ +
diff --git a/views/js/main.js b/views/js/main.js index a3cf31f..f9fbd61 100644 --- a/views/js/main.js +++ b/views/js/main.js @@ -7,13 +7,14 @@ const user = document.querySelector('.user'); const os = document.querySelector('.os'); const chatTotal = document.querySelector('.chat'); const onTime = document.querySelector('.uptime'); +const log = document.querySelector('.log'); // ON CONNECT EVENT socket.on('connect', () => { console.log('Connected'); }); // ON RAM USAGE EVENT -socket.on('ram-usage', ({ ram, cpu, username, osInfo, chat, uptime }) => { +socket.on('ram-usage', ({ ram, cpu, username, osInfo, chat, uptime, loging }) => { // SHOW OS USER INFO user.innerHTML = `Hello ${username}`; os.innerHTML = `OS type: ${osInfo === 'Windows_NT' ? 'Microsoft Windows' : osInfo}` @@ -40,13 +41,16 @@ function botUpTime(seconds){ var seconds = Math.floor(seconds % 60); //return pad(hours) + ':' + pad(minutes) + ':' + pad(seconds) - return onTime.innerHTML = `${pad(hours)}Jam ${pad(minutes)}Menit ${pad(seconds)}Detik` + return onTime.innerHTML = `Uptime: ${pad(hours)}Jam ${pad(minutes)}Menit ${pad(seconds)}Detik` } - botUpTime(uptime) }); +socket.on('log', ({ loging }) => { + log.innerHTML = `${loging}`; +}) + // NOTIFICATION FUNCTION let notify = (info) => { // If granted