X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fvideo.ts;h=6856dcd9f057baa5f7d0f7c895afee3d7df8e43f;hb=282e61e6c11f79e919c543871783fe1a00298d18;hp=6a95f6ef7e58d10bf51c2b27aac4f9b46cf57db3;hpb=d5c8932a601c1854db0a2e399ccaf26e17385f1a;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video.ts b/server/models/video/video.ts index 6a95f6ef7..6856dcd9f 100644 --- a/server/models/video/video.ts +++ b/server/models/video/video.ts @@ -468,13 +468,15 @@ export type AvailableForListIDsOptions = { // FIXME: issues with sequelize count when making a join on n:m relation, so we just make a IN() if (options.tagsAllOf || options.tagsOneOf) { if (options.tagsOneOf) { + const tagsOneOfLower = options.tagsOneOf.map(t => t.toLowerCase()) + whereAnd.push({ id: { [ Op.in ]: Sequelize.literal( '(' + 'SELECT "videoId" FROM "videoTag" ' + 'INNER JOIN "tag" ON "tag"."id" = "videoTag"."tagId" ' + - 'WHERE "tag"."name" IN (' + createSafeIn(VideoModel, options.tagsOneOf) + ')' + + 'WHERE lower("tag"."name") IN (' + createSafeIn(VideoModel, tagsOneOfLower) + ')' + ')' ) } @@ -482,14 +484,16 @@ export type AvailableForListIDsOptions = { } if (options.tagsAllOf) { + const tagsAllOfLower = options.tagsAllOf.map(t => t.toLowerCase()) + whereAnd.push({ id: { [ Op.in ]: Sequelize.literal( '(' + 'SELECT "videoId" FROM "videoTag" ' + 'INNER JOIN "tag" ON "tag"."id" = "videoTag"."tagId" ' + - 'WHERE "tag"."name" IN (' + createSafeIn(VideoModel, options.tagsAllOf) + ')' + - 'GROUP BY "videoTag"."videoId" HAVING COUNT(*) = ' + options.tagsAllOf.length + + 'WHERE lower("tag"."name") IN (' + createSafeIn(VideoModel, tagsAllOfLower) + ')' + + 'GROUP BY "videoTag"."videoId" HAVING COUNT(*) = ' + tagsAllOfLower.length + ')' ) }