diff --git a/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMovieTranslations.cs b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMovieTranslations.cs new file mode 100644 index 0000000000..3e9d6ff913 --- /dev/null +++ b/src/NzbDrone.Core/Housekeeping/Housekeepers/CleanupDuplicateMovieTranslations.cs @@ -0,0 +1,27 @@ +using Dapper; +using NzbDrone.Core.Datastore; + +namespace NzbDrone.Core.Housekeeping.Housekeepers +{ + public class CleanupDuplicateMovieTranslations : IHousekeepingTask + { + private readonly IMainDatabase _database; + + public CleanupDuplicateMovieTranslations(IMainDatabase database) + { + _database = database; + } + + public void Clean() + { + using var mapper = _database.OpenConnection(); + + mapper.Execute(@"DELETE FROM ""MovieTranslations"" + WHERE ""Id"" IN ( + SELECT MAX(""Id"") FROM ""MovieTranslations"" + GROUP BY ""MovieMetadataId"", ""Language"" + HAVING COUNT(""Id"") > 1 + )"); + } + } +}