functions are good

main
Bel LaPointe 2024-04-15 09:14:59 -06:00
parent d38352f050
commit 2f3739b24f
1 changed files with 26 additions and 18 deletions

View File

@ -113,40 +113,48 @@
} }
function drawEventVolume(messages) { function drawEventVolume(messages) {
drawEventVolumeWith(
messages,
"eventVolume",
(ts) => new Date(1000 * ts).
toLocaleDateString('en-US', {month: 'numeric', day: 'numeric', weekday: 'short'}),
(m) => m.EventName,
);
}
function drawEventVolumeWith(messages, documentId, kify, nameify) {
const points = []; const points = [];
messages.forEach((m) => { messages.forEach((m) => {
points.push({x: m.TS, name: m.EventName}); points.push({x: m.TS, name: nameify(m)});
}); });
var xs = points.map((point) => point.x); var xs = points.map((point) => point.x);
xs.sort(); if (xs && !isNaN(parseFloat(kify(xs[0])))) {
const k = (x) => new Date(1000 * x).toLocaleDateString('en-US', {month: 'numeric', day: 'numeric', weekday: 'short'}); xs = xs.map(kify);
xs = xs.map(k); xs.sort((a, b) => parseFloat(a) - parseFloat(b));
} else {
xs.sort();
xs = xs.map(kify);
}
xs = [...new Set(xs)]; xs = [...new Set(xs)];
const names = [...new Set(points.map((p) => p.name))]; const names = [...new Set(points.map((p) => p.name))];
const nameAndData = names.map((name) => { const nameAndData = names.map((name) => {
return { return {
name: name, name: name,
data: xs.map((x) => points.filter((p) => { return p.name == name && k(p.x) == x }).length), data: xs.map((x) => points.filter((p) => { return p.name == name && kify(p.x) == x }).length),
} }
}); });
draw("eventVolume", xs, nameAndData); draw(documentId, xs, nameAndData);
} }
function drawEventVolumeByHour(messages) { function drawEventVolumeByHour(messages) {
var byHour = []; drawEventVolumeWith(
for(var i = 0; i < 24; i++) messages,
byHour.push(0); "eventVolumeByHour",
for(var m of messages) { (ts) => new Date(1000 * ts).getHours(),
var d = new Date(1000 * m.TS); (m) => m.EventName,
byHour[d.getHours()] += 1; );
}
byHour = byHour.map((cnt, idx) => {
return {x: idx, y: cnt};
});
draw("eventVolumeByHour", byHour);
} }
function drawEventVolumeByAsset(messages) {} function drawEventVolumeByAsset(messages) {}