MCPcopy Create free account
hub / github.com/MathMan05/Fermi / calcStats

Function calcStats

src/stats.ts:152–189  ·  view source on GitHub ↗
(instance: Instance)

Source from the content-addressed store, hash-verified

150}
151
152function calcStats(instance: Instance): void {
153 const obj = uptimeObject.get(instance.name);
154 if (!obj) return;
155
156 const now = Date.now();
157 const day = now - 1000 * 60 * 60 * 24;
158 const week = now - 1000 * 60 * 60 * 24 * 7;
159
160 let totalTimePassed = 0;
161 let alltime = 0;
162 let daytime = 0;
163 let weektime = 0;
164 let online = false;
165
166 for (let i = 0; i < obj.length; i++) {
167 const entry = obj[i];
168 online = entry.online;
169 const stamp = entry.time;
170 const nextStamp = obj[i + 1]?.time || now;
171 const timePassed = nextStamp - stamp;
172
173 totalTimePassed += timePassed;
174 alltime += Number(online) * timePassed;
175
176 if (stamp + timePassed > week) {
177 const weekTimePassed = Math.min(timePassed, nextStamp - week);
178 weektime += Number(online) * weekTimePassed;
179
180 if (stamp + timePassed > day) {
181 const dayTimePassed = Math.min(weekTimePassed, nextStamp - day);
182 daytime += Number(online) * dayTimePassed;
183 }
184 }
185 }
186
187 instance.online = online;
188 instance.uptime = calculateUptimeStats(totalTimePassed, alltime, daytime, weektime, online);
189}
190
191function calculateUptimeStats(
192 totalTimePassed: number,

Callers 2

resolveInstanceFunction · 0.85
setStatusFunction · 0.85

Calls 1

calculateUptimeStatsFunction · 0.85

Tested by

no test coverage detected