From d0c3f29ca6ac46933623105e8d5fa9f32494559c Mon Sep 17 00:00:00 2001 From: synt-xerror <169557594+synt-xerror@users.noreply.github.com> Date: Thu, 26 Mar 2026 01:18:03 -0300 Subject: [PATCH] feat(ui): --systemd argument disables built-in timestamps --- src/logger/formatter.js | 12 ++++++++---- src/logger/logger.js | 14 +++++++------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/logger/formatter.js b/src/logger/formatter.js index 275441a..241762c 100644 --- a/src/logger/formatter.js +++ b/src/logger/formatter.js @@ -6,8 +6,12 @@ export const c = { blue: "\x1b[34m", magenta: "\x1b[35m", }; -export const now = () => - new Date().toLocaleString("pt-BR", { dateStyle: "short", timeStyle: "medium" }); +export const SEP = `${c.gray}${"─".repeat(52)}${c.reset}`; + +export const now = () => { + if (process.argv[2] === "--systemd") return ""; + return `[${new Date().toLocaleString("pt-BR", { dateStyle: "short", timeStyle: "medium" })}]`; +}; export const formatType = (type) => ({ sticker: `${c.magenta}sticker${c.reset}`, @@ -24,9 +28,9 @@ export const formatContext = (chatName, isGroup) => ? `${c.bold}${chatName}${c.reset} ${c.dim}(grupo)${c.reset}` : `${c.bold}${chatName}${c.reset} ${c.dim}(privado)${c.reset}`; -export const formatBody = (body) => +export const formatBody = (body, isCommand) => body?.trim() - ? `${c.green}"${body.length > 200 ? body.slice(0, 200) + "..." : body}"${c.reset}` + ? `${isCommand ? c.yellow : c.green}"${body.length > 200 ? body.slice(0, 200) + "..." : body}"${c.reset}` : `${c.dim}${c.reset}`; export const formatReply = (quotedName, quotedNumber, quotedPreview) => diff --git a/src/logger/logger.js b/src/logger/logger.js index 6827f39..f517a74 100644 --- a/src/logger/logger.js +++ b/src/logger/logger.js @@ -8,10 +8,10 @@ import { * Cada método lida apenas com saída — sem lógica de negócio ou I/O externo. */ export const logger = { - info: (...a) => console.log(`${c.gray}[${now()}]${c.reset} ${c.cyan}INFO ${c.reset}`, ...a), - success: (...a) => console.log(`${c.gray}[${now()}]${c.reset} ${c.green}OK ${c.reset}`, ...a), - warn: (...a) => console.log(`${c.gray}[${now()}]${c.reset} ${c.yellow}WARN ${c.reset}`, ...a), - error: (...a) => console.log(`${c.gray}[${now()}]${c.reset} ${c.red}ERROR ${c.reset}`, ...a), + info: (...a) => console.log(`${c.gray}${now()}${c.reset}${c.cyan}INFO ${c.reset}`, ...a), + success: (...a) => console.log(`${c.gray}${now()}${c.reset}${c.green}OK ${c.reset}`, ...a), + warn: (...a) => console.log(`${c.gray}${now()}${c.reset}${c.yellow}WARN ${c.reset}`, ...a), + error: (...a) => console.log(`${c.gray}${now()}${c.reset}${c.red}ERROR ${c.reset}`, ...a), /** * Loga uma mensagem recebida a partir de um contexto já resolvido. @@ -21,19 +21,19 @@ export const logger = { const { chatName, isGroup, senderName, senderNumber, type, body, quoted } = ctx; const context = isGroup ? `${chatName} (grupo)` : chatName; const reply = quoted ? ` → Responde ${quoted.name} +${quoted.number}: "${quoted.preview}"` : ""; - console.log(`\n${c.gray}[${now()}]${c.reset} ${c.cyan}MSG${c.reset} ${context} ${c.gray}— De:${c.reset} ${c.white}${senderName}${c.reset} ${c.dim}+${senderNumber}${c.reset} ${c.gray}— Tipo:${c.reset} ${type} — ${c.green}"${body}"${c.reset}${c.gray}${reply}${c.reset}`); + console.log(`\n${c.gray}${now()}${c.reset}${c.cyan}MSG${c.reset} ${context} ${c.gray}— De:${c.reset} ${c.white}${senderName}${c.reset} ${c.dim}+${senderNumber}${c.reset} ${c.gray}— Tipo:${c.reset} ${type} — ${c.green}"${body}"${c.reset}${c.gray}${reply}${c.reset}`); }, cmd: (cmd, extra = "") => console.log( - `${c.gray}[${now()}]${c.reset} ${c.yellow}CMD ${c.reset}` + + `${c.gray}${now()}${c.reset}${c.yellow}CMD ${c.reset}` + `${c.bold}${cmd}${c.reset}` + (extra ? ` ${c.dim}${extra}${c.reset}` : "") ), done: (cmd, detail = "") => console.log( - `${c.gray}[${now()}]${c.reset} ${c.green}DONE ${c.reset}` + + `${c.gray}${now()}${c.reset}${c.green}DONE ${c.reset}` + `${c.dim}${cmd}${c.reset}` + (detail ? ` — ${detail}` : "") ),