mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-06 19:47:00 +03:00
Add timeout to shadowhiddenn ip
This commit is contained in:
@@ -11,6 +11,7 @@ import { Logger } from "../utils/logger";
|
|||||||
import { QueryCacher } from "../utils/queryCacher";
|
import { QueryCacher } from "../utils/queryCacher";
|
||||||
import { getReputation } from "../utils/reputation";
|
import { getReputation } from "../utils/reputation";
|
||||||
import { getService } from "../utils/getService";
|
import { getService } from "../utils/getService";
|
||||||
|
import { promiseTimeout } from "../utils/promiseTimeout";
|
||||||
|
|
||||||
|
|
||||||
async function prepareCategorySegments(req: Request, videoID: VideoID, service: Service, segments: DBSegment[], cache: SegmentCache = { shadowHiddenSegmentIPs: {} }, useCache: boolean): Promise<Segment[]> {
|
async function prepareCategorySegments(req: Request, videoID: VideoID, service: Service, segments: DBSegment[], cache: SegmentCache = { shadowHiddenSegmentIPs: {} }, useCache: boolean): Promise<Segment[]> {
|
||||||
@@ -38,7 +39,12 @@ async function prepareCategorySegments(req: Request, videoID: VideoID, service:
|
|||||||
const service = getService(req?.query?.service as string);
|
const service = getService(req?.query?.service as string);
|
||||||
const fetchData = () => privateDB.prepare("all", 'SELECT "hashedIP" FROM "sponsorTimes" WHERE "videoID" = ? AND "timeSubmitted" = ? AND "service" = ?',
|
const fetchData = () => privateDB.prepare("all", 'SELECT "hashedIP" FROM "sponsorTimes" WHERE "videoID" = ? AND "timeSubmitted" = ? AND "service" = ?',
|
||||||
[videoID, segment.timeSubmitted, service], { useReplica: true }) as Promise<{ hashedIP: HashedIP }[]>;
|
[videoID, segment.timeSubmitted, service], { useReplica: true }) as Promise<{ hashedIP: HashedIP }[]>;
|
||||||
cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted] = await QueryCacher.get(fetchData, shadowHiddenIPKey(videoID, segment.timeSubmitted, service));
|
try {
|
||||||
|
cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted] = await promiseTimeout(QueryCacher.get(fetchData, shadowHiddenIPKey(videoID, segment.timeSubmitted, service)), 150);
|
||||||
|
} catch (e) {
|
||||||
|
// give up on shadowhide for now
|
||||||
|
cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted] = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const ipList = cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted];
|
const ipList = cache.shadowHiddenSegmentIPs[videoID][segment.timeSubmitted];
|
||||||
|
|||||||
Reference in New Issue
Block a user