Compare commits

..

2 commits

Author SHA1 Message Date
Christopher Cookman ddbff495b3 asdf 2025-06-23 17:41:31 -06:00
Christopher Cookman b8fecd731c Working branch go brr 2025-06-23 17:36:33 -06:00
2 changed files with 43 additions and 48 deletions

View file

@ -16,9 +16,7 @@ ws.on('message', (data) => {
try {
const msg = JSON.parse(data);
// Assuming the message has 'channel' and 'product_id' fields
if (msg.channel && msg.product_data) {
console.log(`Channel: ${msg.channel}, Product ID: ${msg.product_data}`);
}
console.log(`Channel: ${msg.data.fromChannel}, Product ID: ${msg.product_data}`);
} catch (err) {
console.error('Error parsing message:', err);
}

View file

@ -457,31 +457,30 @@ xmpp.on("stanza", (stanza) => {
const bodyData = getFirstURL(body);
// get product id from "x" tag
var evt = events[product_id.pil.substring(0, 3)];
if (process.env.LOG_EVENTS === "true") {
// Log the full event object to a file named "productid-timestamp-channelname.json"
const nowDate = new Date();
const year = nowDate.getFullYear();
const month = String(nowDate.getMonth() + 1).padStart(2, '0');
const day = String(nowDate.getDate()).padStart(2, '0');
const logDir = path.join(__dirname, "event-logs", year.toString(), month, day);
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir, { recursive: true });
}
const logFilename = `${product_id_raw}-${product_id.timestamp.toISOString()}-${fromChannel}.json`.replace(/[:]/g, "_");
const logPath = path.join(logDir, logFilename);
const getCircularReplacer = () => {
const seen = new WeakSet();
return (key, value) => {
if (typeof value === "object" && value !== null) {
if (seen.has(value)) {
return "WARN: CIRC";
}
seen.add(value);
}
return value;
};
};
// Log the full event object to a file named "productid-timestamp-channelname.json"
const nowDate = new Date();
const year = nowDate.getFullYear();
const month = String(nowDate.getMonth() + 1).padStart(2, '0');
const day = String(nowDate.getDate()).padStart(2, '0');
const logDir = path.join(__dirname, "event-logs", year.toString(), month, day);
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir, { recursive: true });
}
const logFilename = `${product_id_raw}-${product_id.timestamp.toISOString()}-${fromChannel}.json`.replace(/[:]/g, "_");
const logPath = path.join(logDir, logFilename);
const getCircularReplacer = () => {
const seen = new WeakSet();
return (key, value) => {
if (typeof value === "object" && value !== null) {
if (seen.has(value)) {
return "WARN: CIRC";
}
seen.add(value);
}
return value;
};
};
if (!evt) {
evt = { name: "Unknown", priority: 3 }
@ -504,7 +503,7 @@ xmpp.on("stanza", (stanza) => {
const diff = (now - product_id.timestamp) / 1000 / 60;
if (diff > 3) return;
// if (config.debug >= 1) console.log(`${colors.magenta("[DEBUG]")} New message from ${fromChannel}`);
console.log(`${colors.cyan("[INFO]")} ${fromChannel} ${getWFOByRoom(fromChannel).location} - ${product_id_raw} - ${evt.text} - ${product_id.timestamp}`);
console.log(`${colors.cyan("[INFO]")} ${getWFOByRoom(fromChannel).location} - ${product_id_raw} - ${evt.text} - ${product_id.timestamp}`);
messages++;
textTries = 0;
tryGetText = () => {
@ -570,27 +569,25 @@ xmpp.on("stanza", (stanza) => {
}
})
});
if (process.env.LOG_EVENTS === "true") {
fs.writeFileSync(logPath, JSON.stringify({
evt, stanza, product_id, product_id_raw, bodyData, body, sentData: {
"type": "iem-message",
"data": {
"channel": getWFOByRoom(fromChannel),
"fromChannel": fromChannel,
"event": evt,
"body": bodyData,
"timestamp": product_id.timestamp,
"wmo": product_id.wmo,
"pil": product_id.pil,
"station": product_id.station,
"product_data": product_id,
"raw": product_id_raw,
"rawBody": body,
"image": stanza.getChild("x").attrs.twitter_media || null
}
fs.writeFileSync(logPath, JSON.stringify({
evt, stanza, product_id, product_id_raw, bodyData, body, sentData: {
"type": "iem-message",
"data": {
"channel": getWFOByRoom(fromChannel),
"fromChannel": fromChannel,
"event": evt,
"body": bodyData,
"timestamp": product_id.timestamp,
"wmo": product_id.wmo,
"pil": product_id.pil,
"station": product_id.station,
"product_data": product_id,
"raw": product_id_raw,
"rawBody": body,
"image": stanza.getChild("x").attrs.twitter_media || null
}
}, getCircularReplacer(), 2), 'utf8');
}
}
}, getCircularReplacer(), 2), 'utf8');
}
tryGetText();
}