Skip to content

Commit

Permalink
Add option to trim UUIDs in skip segments endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
ajayyy committed Jan 18, 2025
1 parent 06f83cd commit be9d97a
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 4 deletions.
4 changes: 2 additions & 2 deletions src/routes/getSkipSegments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ async function getSegmentsByVideoID(req: Request, videoID: VideoID, categories:
}

async function getSegmentsByHash(req: Request, hashedVideoIDPrefix: VideoIDHash, categories: Category[],
actionTypes: ActionType[], requiredSegments: SegmentUUID[], service: Service): Promise<SBRecord<VideoID, VideoData>> {
actionTypes: ActionType[], trimUUIDs: number, requiredSegments: SegmentUUID[], service: Service): Promise<SBRecord<VideoID, VideoData>> {
const cache: SegmentCache = { shadowHiddenSegmentIPs: {} };
const segments: SBRecord<VideoID, VideoData> = {};

Expand Down Expand Up @@ -188,7 +188,7 @@ async function getSegmentsByHash(req: Request, hashedVideoIDPrefix: VideoIDHash,
category: segment.category,
actionType: segment.actionType,
segment: segment.segment,
UUID: segment.UUID,
UUID: trimUUIDs ? segment.UUID.substring(0, trimUUIDs) as SegmentUUID : segment.UUID,
videoDuration: segment.videoDuration,
locked: segment.locked,
votes: segment.votes,
Expand Down
4 changes: 2 additions & 2 deletions src/routes/getSkipSegmentsByHash.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ export async function getSkipSegmentsByHash(req: Request, res: Response): Promis
if (parseResult.errors.length > 0) {
return res.status(400).send(parseResult.errors);
}
const { categories, actionTypes, requiredSegments, service } = parseResult;
const { categories, actionTypes, trimUUIDs, requiredSegments, service } = parseResult;

// Get all video id's that match hash prefix
const segments = await getSegmentsByHash(req, hashPrefix, categories, actionTypes, requiredSegments, service);
const segments = await getSegmentsByHash(req, hashPrefix, categories, actionTypes, trimUUIDs, requiredSegments, service);

try {
await getEtag("skipSegmentsHash", hashPrefix, service)
Expand Down
3 changes: 3 additions & 0 deletions src/utils/parseSkipSegments.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@ const errorMessage = (parameter: string) => `${parameter} parameter does not mat
export function parseSkipSegments(req: Request): {
categories: Category[];
actionTypes: ActionType[];
trimUUIDs: number | null;
requiredSegments: SegmentUUID[];
service: Service;
errors: string[];
} {
const categories: Category[] = parseCategories(req, [ "sponsor" as Category ]);
const actionTypes: ActionType[] = parseActionTypes(req, [ActionType.Skip]);
const trimUUIDs: number | null = req.query.trimUUIDs ? (parseInt(req.query.trimUUIDs as string) || null) : null;
const requiredSegments: SegmentUUID[] = parseRequiredSegments(req);
const service: Service = getService(req.query.service, req.body.services);
const errors: string[] = [];
Expand All @@ -27,6 +29,7 @@ export function parseSkipSegments(req: Request): {
return {
categories,
actionTypes,
trimUUIDs,
requiredSegments,
service,
errors
Expand Down

0 comments on commit be9d97a

Please sign in to comment.