Skip to content

Commit

Permalink
Merge pull request #585 from mini-bomba/unrelated_chapter_suggestions
Browse files Browse the repository at this point in the history
Don't show completely unrelated chapter suggestions
  • Loading branch information
ajayyy authored Aug 3, 2024
2 parents 9427bf4 + 3f02640 commit 195cc14
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 9 deletions.
3 changes: 2 additions & 1 deletion src/routes/getChapterNames.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,11 @@ export async function getChapterNames(req: Request, res: Response): Promise<Resp
FROM "videoInfo"
WHERE "channelID" = ?
) AND "description" != ''
AND similarity("description", ?) >= 0.1
GROUP BY "description"
ORDER BY SUM("votes"), similarity("description", ?) DESC
LIMIT 5;`
, [channelID, description]) as { description: string }[];
, [channelID, description, description]) as { description: string }[];

if (descriptions?.length > 0) {
return res.status(200).json(descriptions.map(d => ({
Expand Down
19 changes: 11 additions & 8 deletions test/cases/getChapterNames.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,18 @@ describe("getChapterNames", function () {
"Weird name",
"A different one",
"Something else",
"Weirder name",
];

const nameSearch = (query: string, expected: string): Promise<void> => {
const nameSearch = (query: string, expected: string | null, expectedResults: number): Promise<void> => {
const expectedData = [{
description: expected
}];
return client.get(`${endpoint}?description=${query}&channelID=${chapterChannelID}`)
.then(res => {
assert.strictEqual(res.status, 200);
assert.strictEqual(res.data.length, chapterNames.length);
assert.ok(partialDeepEquals(res.data, expectedData));
assert.strictEqual(res.status, expectedResults == 0 ? 404 : 200);
assert.strictEqual(res.data.length, expectedResults);
if (expected != null) assert.ok(partialDeepEquals(res.data, expectedData));
});
};

Expand All @@ -35,11 +36,13 @@ describe("getChapterNames", function () {
await insertChapter(db, chapterNames[0], { videoID: chapterNamesVid1, startTime: 60, endTime: 80 });
await insertChapter(db, chapterNames[1], { videoID: chapterNamesVid1, startTime: 70, endTime: 75 });
await insertChapter(db, chapterNames[2], { videoID: chapterNamesVid1, startTime: 71, endTime: 76 });
await insertChapter(db, chapterNames[3], { videoID: chapterNamesVid1, startTime: 72, endTime: 77 });

await insertVideoInfo(db, chapterNamesVid1, chapterChannelID);
});

it("Search for 'weird'", () => nameSearch("weird", chapterNames[0]));
it("Search for 'different'", () => nameSearch("different", chapterNames[1]));
it("Search for 'something'", () => nameSearch("something", chapterNames[2]));
});
it("Search for 'weird' (2 results)", () => nameSearch("weird", chapterNames[0], 2));
it("Search for 'different' (1 result)", () => nameSearch("different", chapterNames[1], 1));
it("Search for 'something' (1 result)", () => nameSearch("something", chapterNames[2], 1));
it("Search for 'unrelated' (0 result)", () => nameSearch("unrelated", null, 0));
});

0 comments on commit 195cc14

Please sign in to comment.