MCPcopy Create free account
hub / github.com/Dispatcharr/Dispatcharr / fetchPrograms

Function fetchPrograms

frontend/src/pages/Stats.jsx:292–320  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

290 let timer = null;
291
292 const fetchPrograms = async () => {
293 const programs = await getCurrentPrograms(neededUUIDsRef.current);
294 setCurrentPrograms(programs);
295
296 // Schedule next fetch based on nearest program end time
297 if (programs && Object.keys(programs).length > 0) {
298 const now = new Date();
299 let nearestEndTime = null;
300
301 Object.values(programs).forEach((program) => {
302 if (program && program.end_time) {
303 const endTime = new Date(program.end_time);
304 if (
305 endTime > now &&
306 (!nearestEndTime || endTime < nearestEndTime)
307 ) {
308 nearestEndTime = endTime;
309 }
310 }
311 });
312
313 if (nearestEndTime) {
314 const timeUntilChange = nearestEndTime.getTime() - now.getTime();
315 const fetchDelay = Math.max(timeUntilChange + 5000, 0);
316
317 timer = setTimeout(fetchPrograms, fetchDelay);
318 }
319 }
320 };
321
322 // Initial fetch
323 fetchPrograms();

Callers 1

StatsPageFunction · 0.70

Calls 2

getCurrentProgramsFunction · 0.90
keysMethod · 0.80

Tested by

no test coverage detected