MCPcopy Create free account
hub / github.com/Useful-Scripts-Extension/useful-script / getData

Function getData

scripts/web_timer_main.js:321–440  ·  view source on GitHub ↗
({
  fromDate = new Date(),
  endDate,
  dateType = DATE_TYPE.DAY,
  displayType = DISPLAY_TYPE.TOTAL,
})

Source from the content-addressed store, hash-verified

319}
320
321function getData({
322 fromDate = new Date(),
323 endDate,
324 dateType = DATE_TYPE.DAY,
325 displayType = DISPLAY_TYPE.TOTAL,
326}) {
327 let allData = [],
328 chartData = [],
329 totalDays = 1;
330
331 // single day
332 if (dateType === DATE_TYPE.DAY) {
333 let date = fromDate;
334 let dateKey = formatDate(date);
335 if (web_timer[dateKey]) {
336 allData = Object.entries(web_timer[dateKey]);
337 totalDays = 1;
338 guide.innerText = t({
339 vi: `Dữ liệu ngày ${dateKey} (${allData.length} websites)`,
340 en: `Data for ${dateKey} (${allData.length} websites)`,
341 });
342 }
343 }
344
345 // range of days / all days
346 if (dateType === DATE_TYPE.RANGE || dateType === DATE_TYPE.ALL) {
347 totalDays = 0;
348 let web = {},
349 _fromDate =
350 dateType === DATE_TYPE.ALL ? getOldestDate() : formatDate(fromDate),
351 _endDate = formatDate(endDate);
352
353 for (let date in web_timer) {
354 if (
355 dateType === DATE_TYPE.ALL ||
356 (date >= _fromDate && date <= _endDate)
357 ) {
358 totalDays++;
359 for (let website in web_timer[date]) {
360 if (!web[website]) web[website] = 0;
361 if (web_timer[date][website]) {
362 web[website] += web_timer[date][website];
363 }
364 }
365 }
366 }
367 allData = Object.entries(web);
368 guide.innerText = t({
369 vi: `Dữ liệu từ ${_fromDate} → ${_endDate} (${totalDays} ngày, ${allData.length} websites)`,
370 en: `Data from ${_fromDate} → ${_endDate} (${totalDays} days, ${allData.length} websites)`,
371 });
372 }
373
374 // calc average
375 if (displayType === DISPLAY_TYPE.AVERAGE) {
376 for (let d of allData) {
377 d[1] /= totalDays;
378 }

Callers 1

showDataFunction · 0.85

Calls 5

tFunction · 0.90
getOldestDateFunction · 0.85
getHSLFunction · 0.85
sortMethod · 0.80
formatDateFunction · 0.70

Tested by

no test coverage detected