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) {
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 = [];
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);
if (xs && !isNaN(parseFloat(kify(xs[0])))) {
xs = xs.map(kify);
xs.sort((a, b) => parseFloat(a) - parseFloat(b));
} else {
xs.sort();
const k = (x) => new Date(1000 * x).toLocaleDateString('en-US', {month: 'numeric', day: 'numeric', weekday: 'short'});
xs = xs.map(k);
xs = xs.map(kify);
}
xs = [...new Set(xs)];
const names = [...new Set(points.map((p) => p.name))];
const nameAndData = names.map((name) => {
return {
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) {
var byHour = [];
for(var i = 0; i < 24; i++)
byHour.push(0);
for(var m of messages) {
var d = new Date(1000 * m.TS);
byHour[d.getHours()] += 1;
}
byHour = byHour.map((cnt, idx) => {
return {x: idx, y: cnt};
});
draw("eventVolumeByHour", byHour);
drawEventVolumeWith(
messages,
"eventVolumeByHour",
(ts) => new Date(1000 * ts).getHours(),
(m) => m.EventName,
);
}
function drawEventVolumeByAsset(messages) {}