35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
const fs = require("fs");
|
||
const path = require("path");
|
||
|
||
/**
|
||
* Функция для записи логов.
|
||
* @param {Object} ctx - Контекст Telegraf (содержит данные о пользователе и сообщении).
|
||
* @param {String} action - Описание действия, например, "Начало битвы", "Использована граната".
|
||
* @param {Object} [extraData] - Дополнительные данные для логов.
|
||
*/
|
||
function logAction(ctx, action, extraData = {}) {
|
||
const logEntry = {
|
||
timestamp: new Date().toISOString(),
|
||
user: {
|
||
id: ctx.from.id,
|
||
username: ctx.from.username || "unknown",
|
||
first_name: ctx.from.first_name || "unknown",
|
||
last_name: ctx.from.last_name || "",
|
||
},
|
||
chat: ctx.chat ? { id: ctx.chat.id, type: ctx.chat.type } : null,
|
||
action,
|
||
extraData,
|
||
};
|
||
|
||
const logString = JSON.stringify(logEntry, null, 2);
|
||
|
||
// Сохраняем лог в файл
|
||
fs.appendFile('./json/logs.json', logString + "\n", (err) => {
|
||
if (err) {
|
||
console.error("Ошибка при записи лога:", err);
|
||
}
|
||
});
|
||
}
|
||
|
||
module.exports = logAction;
|