Hopefully fix all issues with unlinked movie files.

Leonardo Galli 8 years ago
parent db6e91cd95
commit 0db27d9029

@ -2,11 +2,11 @@
namespace NzbDrone.Core.Housekeeping.Housekeepers namespace NzbDrone.Core.Housekeeping.Housekeepers
{ {
public class CleanupAdditionalUsers : IHousekeepingTask public class FixWronglyMatchedMovieFiles : IHousekeepingTask
{ {
private readonly IMainDatabase _database; private readonly IMainDatabase _database;
public CleanupAdditionalUsers(IMainDatabase database) public FixWronglyMatchedMovieFiles(IMainDatabase database)
{ {
_database = database; _database = database;
} }
@ -15,10 +15,11 @@ namespace NzbDrone.Core.Housekeeping.Housekeepers
{ {
var mapper = _database.GetDataMapper(); var mapper = _database.GetDataMapper();
mapper.ExecuteNonQuery(@"DELETE FROM Users mapper.ExecuteNonQuery(@"UPDATE Movies
WHERE ID NOT IN ( SET MovieFileId =
SELECT ID FROM Users (Select Id FROM MovieFiles WHERE Movies.Id == MovieFiles.MovieId)
LIMIT 1)"); WHERE MovieFileId !=
(SELECT Id FROM MovieFiles WHERE Movies.Id == MovieFiles.MovieId)");
} }
} }
} }

@ -0,0 +1,25 @@
using NzbDrone.Core.Datastore;
namespace NzbDrone.Core.Housekeeping.Housekeepers
{
public class FixWronglyMatchedMovieFiles : IHousekeepingTask
{
private readonly IMainDatabase _database;
public FixWronglyMatchedMovieFiles(IMainDatabase database)
{
_database = database;
}
public void Clean()
{
var mapper = _database.GetDataMapper();
mapper.ExecuteNonQuery(@"UPDATE Movies
SET MovieFileId =
(Select Id FROM MovieFiles WHERE Movies.Id == MovieFiles.MovieId)
WHERE MovieFileId !=
(SELECT Id FROM MovieFiles WHERE Movies.Id == MovieFiles.MovieId)");
}
}
}

@ -1259,6 +1259,7 @@
<Compile Include="Validation\RuleBuilderExtensions.cs" /> <Compile Include="Validation\RuleBuilderExtensions.cs" />
<Compile Include="Validation\UrlValidator.cs" /> <Compile Include="Validation\UrlValidator.cs" />
<Compile Include="Datastore\Migration\131_make_parsed_episode_info_nullable.cs" /> <Compile Include="Datastore\Migration\131_make_parsed_episode_info_nullable.cs" />
<Compile Include="Housekeeping\Housekeepers\FixWronglyMatchedMovieFiles.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client"> <BootstrapperPackage Include=".NETFramework,Version=v4.0,Profile=Client">

@ -331,13 +331,13 @@ namespace NzbDrone.Core.Tv
public void Handle(MovieFileAddedEvent message) public void Handle(MovieFileAddedEvent message)
{ {
_movieRepository.SetFileId(message.MovieFile.Id, message.MovieFile.Movie.Value.Id); _movieRepository.SetFileId(message.MovieFile.Id, message.MovieFile.Movie.Value.Id);
_logger.Debug("Linking [{0}] > [{1}]", message.MovieFile.RelativePath, message.MovieFile.Movie.Value); _logger.Info("Linking [{0}] > [{1}]", message.MovieFile.RelativePath, message.MovieFile.Movie.Value);
} }
public void SetFileId(Movie movie, MovieFile movieFile) public void SetFileId(Movie movie, MovieFile movieFile)
{ {
_movieRepository.SetFileId(movieFile.Id, movie.Id); _movieRepository.SetFileId(movieFile.Id, movie.Id);
_logger.Debug("Linking [{0}] > [{1}]", movieFile.RelativePath, movie); _logger.Info("Linking [{0}] > [{1}]", movieFile.RelativePath, movie);
} }
public void Handle(MovieFileDeletedEvent message) public void Handle(MovieFileDeletedEvent message)

Loading…
Cancel
Save