mirror of
https://github.com/ajayyy/SponsorBlockServer.git
synced 2025-12-08 12:37:00 +03:00
Merge pull request #585 from mini-bomba/unrelated_chapter_suggestions
Don't show completely unrelated chapter suggestions
This commit is contained in:
@@ -27,10 +27,11 @@ export async function getChapterNames(req: Request, res: Response): Promise<Resp
|
|||||||
FROM "videoInfo"
|
FROM "videoInfo"
|
||||||
WHERE "channelID" = ?
|
WHERE "channelID" = ?
|
||||||
) AND "description" != ''
|
) AND "description" != ''
|
||||||
|
AND similarity("description", ?) >= 0.1
|
||||||
GROUP BY "description"
|
GROUP BY "description"
|
||||||
ORDER BY SUM("votes"), similarity("description", ?) DESC
|
ORDER BY SUM("votes"), similarity("description", ?) DESC
|
||||||
LIMIT 5;`
|
LIMIT 5;`
|
||||||
, [channelID, description]) as { description: string }[];
|
, [channelID, description, description]) as { description: string }[];
|
||||||
|
|
||||||
if (descriptions?.length > 0) {
|
if (descriptions?.length > 0) {
|
||||||
return res.status(200).json(descriptions.map(d => ({
|
return res.status(200).json(descriptions.map(d => ({
|
||||||
|
|||||||
@@ -16,17 +16,18 @@ describe("getChapterNames", function () {
|
|||||||
"Weird name",
|
"Weird name",
|
||||||
"A different one",
|
"A different one",
|
||||||
"Something else",
|
"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 = [{
|
const expectedData = [{
|
||||||
description: expected
|
description: expected
|
||||||
}];
|
}];
|
||||||
return client.get(`${endpoint}?description=${query}&channelID=${chapterChannelID}`)
|
return client.get(`${endpoint}?description=${query}&channelID=${chapterChannelID}`)
|
||||||
.then(res => {
|
.then(res => {
|
||||||
assert.strictEqual(res.status, 200);
|
assert.strictEqual(res.status, expectedResults == 0 ? 404 : 200);
|
||||||
assert.strictEqual(res.data.length, chapterNames.length);
|
assert.strictEqual(res.data.length, expectedResults);
|
||||||
assert.ok(partialDeepEquals(res.data, expectedData));
|
if (expected != null) assert.ok(partialDeepEquals(res.data, expectedData));
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -35,11 +36,13 @@ describe("getChapterNames", function () {
|
|||||||
await insertChapter(db, chapterNames[0], { videoID: chapterNamesVid1, startTime: 60, endTime: 80 });
|
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[1], { videoID: chapterNamesVid1, startTime: 70, endTime: 75 });
|
||||||
await insertChapter(db, chapterNames[2], { videoID: chapterNamesVid1, startTime: 71, endTime: 76 });
|
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);
|
await insertVideoInfo(db, chapterNamesVid1, chapterChannelID);
|
||||||
});
|
});
|
||||||
|
|
||||||
it("Search for 'weird'", () => nameSearch("weird", chapterNames[0]));
|
it("Search for 'weird' (2 results)", () => nameSearch("weird", chapterNames[0], 2));
|
||||||
it("Search for 'different'", () => nameSearch("different", chapterNames[1]));
|
it("Search for 'different' (1 result)", () => nameSearch("different", chapterNames[1], 1));
|
||||||
it("Search for 'something'", () => nameSearch("something", chapterNames[2]));
|
it("Search for 'something' (1 result)", () => nameSearch("something", chapterNames[2], 1));
|
||||||
});
|
it("Search for 'unrelated' (0 result)", () => nameSearch("unrelated", null, 0));
|
||||||
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user