From 1cbd162a22127eab0a2a04300a8f3627a2bf7654 Mon Sep 17 00:00:00 2001 From: Ajay Ramachandran Date: Tue, 10 Aug 2021 23:12:20 -0400 Subject: [PATCH] Support commas in timestamps --- src/routes/postSkipSegments.ts | 2 ++ test/cases/postSkipSegments.ts | 28 ++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/routes/postSkipSegments.ts b/src/routes/postSkipSegments.ts index 6cad4a8..768411a 100644 --- a/src/routes/postSkipSegments.ts +++ b/src/routes/postSkipSegments.ts @@ -548,6 +548,8 @@ function preprocessInput(req: Request) { if (!Object.values(ActionType).some((val) => val === segment.actionType)){ segment.actionType = ActionType.Skip; } + + segment.segment = segment.segment.map((time) => typeof segment.segment[0] === "string" ? time?.replace(",", ".") : time); }); const userAgent = req.query.userAgent ?? req.body.userAgent ?? parseUserAgent(req.get("user-agent")) ?? ""; diff --git a/test/cases/postSkipSegments.ts b/test/cases/postSkipSegments.ts index 6faa921..d7643af 100644 --- a/test/cases/postSkipSegments.ts +++ b/test/cases/postSkipSegments.ts @@ -959,4 +959,32 @@ describe("postSkipSegments", () => { }) .catch(err => done(err)); }); + + it("Should be able to submit with commas in timestamps", (done: Done) => { + fetch(`${getbaseURL()}/api/postVideoSponsorTimes`, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + userID: "testtesttesttesttesttesttesttesttest", + videoID: "commas-1", + segments: [{ + segment: ["0,2", "10,392"], + category: "sponsor", + }] + }), + }) + .then(async res => { + assert.strictEqual(res.status, 200); + const row = await db.prepare("get", `SELECT "startTime", "endTime", "locked", "category" FROM "sponsorTimes" WHERE "videoID" = ?`, ["commas-1"]); + const expected = { + startTime: 0.2, + endTime: 10.392 + }; + assert.ok(partialDeepEquals(row, expected)); + done(); + }) + .catch(err => done(err)); + }); });