Add random string to messages to help with debug!
Some checks are pending
ptero-push / build (push) Waiting to run

This commit is contained in:
Christopher Cookman 2025-06-21 00:37:42 -06:00
parent 6c9465eb50
commit 5ab763cde8

View file

@ -15,7 +15,7 @@ const colors = require("colors");
const sqlite3 = require("sqlite3").verbose(); const sqlite3 = require("sqlite3").verbose();
const WebSocket = require('ws'); const WebSocket = require('ws');
const events = require("./data/events.json"); const events = require("./data/events.json");
const path = require("path");
satMessages = {}; satMessages = {};
// Setup Discord // Setup Discord
@ -357,7 +357,7 @@ Image and product text are optional, but if they exist, they will be in the data
var sent = {} var sent = {}
const handleDiscord = function (data) { const handleDiscord = function (data, randStr) {
const rawBody = data.data.body; const rawBody = data.data.body;
const text = data.data.productText; const text = data.data.productText;
const product_id_raw = data.data.raw const product_id_raw = data.data.raw
@ -374,7 +374,7 @@ const handleDiscord = function (data) {
color: parseInt(config.priorityColors[evt.priority].replace("#", ""), 16) || 0x000000, color: parseInt(config.priorityColors[evt.priority].replace("#", ""), 16) || 0x000000,
timestamp: product_id.timestamp, timestamp: product_id.timestamp,
footer: { footer: {
text: `Station: ${product_id.station} PID: ${product_id_raw} Channel: ${fromChannel}` text: `${randStr} Station: ${product_id.station} PID: ${product_id_raw} Channel: ${fromChannel}`
} }
} }
if (data.data.image) { if (data.data.image) {
@ -593,11 +593,22 @@ function connectWebSocket() {
}); });
ws.on('message', (rawData) => { ws.on('message', (rawData) => {
// Save copy of rawData for debugging to event-logs/year/month/dat/random6charstring-unixtimestamp.json
const timestamp = new Date().toISOString().replace(/:/g, '-');
const randomString = generateRandomString({ lower: true, upper: true, number: true }, 6);
const logDir = path.join(__dirname, "event-logs", timestamp.substring(0, 4), timestamp.substring(5, 7), timestamp.substring(8, 10));
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir, { recursive: true });
}
const logFile = path.join(logDir, `${randomString}-${Date.now()}.json`);
fs.writeFileSync(logFile, rawData);
try { try {
const data = JSON.parse(rawData); const data = JSON.parse(rawData);
switch (data.type) { switch (data.type) {
case "iem-message": case "iem-message":
handleDiscord(data); handleDiscord(data, randomString);
break; break;
case "internal-response": case "internal-response":
@ -656,6 +667,7 @@ discord.on('ready', async () => {
// Do slash command stuff // Do slash command stuff
commands = require("./data/commands.json"); commands = require("./data/commands.json");
// Add dynamic commands (based on datas files) // Add dynamic commands (based on datas files)
satCommand = { satCommand = {
"name": "satellite", "name": "satellite",