mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-19 05:58:32 +03:00
Fix same ip being fetched multiple times from postgres
This commit is contained in:
@@ -43,20 +43,20 @@ async function prepareCategorySegments(req: Request, videoID: VideoID, service:
|
|||||||
try {
|
try {
|
||||||
if (db.highLoad() || privateDB.highLoad()) throw new Error("High load, not handling shadowhide");
|
if (db.highLoad() || privateDB.highLoad()) throw new Error("High load, not handling shadowhide");
|
||||||
|
|
||||||
cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted] = await promiseOrTimeout(QueryCacher.get(fetchData, shadowHiddenIPKey(videoID, segment.timeSubmitted, service)), 150);
|
cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted] = promiseOrTimeout(QueryCacher.get(fetchData, shadowHiddenIPKey(videoID, segment.timeSubmitted, service)), 150);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
// give up on shadowhide for now
|
// give up on shadowhide for now
|
||||||
cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted] = null;
|
cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted] = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const ipList = cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted];
|
const ipList = await cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted];
|
||||||
|
|
||||||
if (ipList?.length > 0 && cache.userHashedIP === undefined) {
|
if (ipList?.length > 0 && cache.userHashedIP === undefined) {
|
||||||
cache.userHashedIP = await cache.userHashedIPPromise;
|
cache.userHashedIP = await cache.userHashedIPPromise;
|
||||||
}
|
}
|
||||||
//if this isn't their ip, don't send it to them
|
//if this isn't their ip, don't send it to them
|
||||||
const shouldShadowHide = cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted]?.some(
|
const shouldShadowHide = ipList?.some(
|
||||||
(shadowHiddenSegment) => shadowHiddenSegment.hashedIP === cache.userHashedIP) ?? false;
|
(shadowHiddenSegment) => shadowHiddenSegment.hashedIP === cache.userHashedIP) ?? false;
|
||||||
|
|
||||||
if (shouldShadowHide) useCache = false;
|
if (shouldShadowHide) useCache = false;
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ export interface VideoData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface SegmentCache {
|
export interface SegmentCache {
|
||||||
shadowHiddenSegmentIPs: SBRecord<VideoID, SBRecord<string, {hashedIP: HashedIP}[]>>,
|
shadowHiddenSegmentIPs: SBRecord<VideoID, SBRecord<string, Promise<{hashedIP: HashedIP}[] | null>>>,
|
||||||
userHashedIP?: HashedIP
|
userHashedIP?: HashedIP
|
||||||
userHashedIPPromise?: Promise<HashedIP>;
|
userHashedIPPromise?: Promise<HashedIP>;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user