From 288f7d45e7bd0bae61d6fe79882da0980bff7b2b Mon Sep 17 00:00:00 2001 From: Ajay Date: Wed, 20 Jul 2022 00:23:02 -0400 Subject: [PATCH] Revert "Don't cache empty arrays" This reverts commit 9ab939456bb53344a67efb339f39e6322057dda2. --- src/routes/getSkipSegments.ts | 6 +++--- src/utils/queryCacher.ts | 6 ++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/routes/getSkipSegments.ts b/src/routes/getSkipSegments.ts index 78a367b..8d623e7 100644 --- a/src/routes/getSkipSegments.ts +++ b/src/routes/getSkipSegments.ts @@ -262,7 +262,7 @@ async function chooseSegments(videoID: VideoID, service: Service, segments: DBSe const fetchData = async () => await buildSegmentGroups(segments); const groups = useCache - ? await QueryCacher.get(fetchData, skipSegmentGroupsKey(videoID, service), false) + ? await QueryCacher.get(fetchData, skipSegmentGroupsKey(videoID, service)) : await fetchData(); // Filter for only 1 item for POI categories and Full video @@ -337,7 +337,7 @@ async function buildSegmentGroups(segments: DBSegment[]): Promise { const result: OverlappingSegmentGroup[] = []; - for (const segment of group.segments) { + group.segments.forEach((segment) => { const bestGroup = result.find((group) => { // At least one segment in the group must have high % overlap or the same action type // Since POI and Full video segments will always have <= 0 overlap, they will always be in their own groups @@ -360,7 +360,7 @@ function splitPercentOverlap(groups: OverlappingSegmentGroup[]): OverlappingSegm } else { result.push({ segments: [segment], votes: segment.votes, reputation: segment.reputation, locked: segment.locked, required: segment.required }); } - } + }); return result; }); diff --git a/src/utils/queryCacher.ts b/src/utils/queryCacher.ts index 43d54c9..d4f8647 100644 --- a/src/utils/queryCacher.ts +++ b/src/utils/queryCacher.ts @@ -4,7 +4,7 @@ import { skipSegmentsHashKey, skipSegmentsKey, reputationKey, ratingHashKey, ski import { Service, VideoID, VideoIDHash } from "../types/segments.model"; import { Feature, HashedUserID, UserID } from "../types/user.model"; -async function get(fetchFromDB: () => Promise, key: string, cacheEmpty = true): Promise { +async function get(fetchFromDB: () => Promise, key: string): Promise { try { const reply = await redis.get(key); if (reply) { @@ -16,9 +16,7 @@ async function get(fetchFromDB: () => Promise, key: string, cacheEmpty = t const data = await fetchFromDB(); - if (cacheEmpty || data) { - redis.set(key, JSON.stringify(data)).catch((err) => Logger.error(err)); - } + redis.set(key, JSON.stringify(data)).catch((err) => Logger.error(err)); return data; }