Browse Source

fix deleting jellyfin and emby movies (#447)

* fix deleting jellyfin and emby movies

* revert jf service change
pull/448/head
Jason Dove 5 years ago committed by GitHub
parent
commit
f4a63a1a1a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      CHANGELOG.md
  2. 16
      ErsatzTV.Infrastructure/Data/Repositories/EmbyTelevisionRepository.cs
  3. 16
      ErsatzTV.Infrastructure/Data/Repositories/JellyfinTelevisionRepository.cs
  4. 13
      ErsatzTV.Infrastructure/Data/Repositories/MovieRepository.cs
  5. 17
      ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs

1
CHANGELOG.md

@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased]
### Fixed
- Fix generated streams with mpeg2video
- Fix deleting movies that have been removed from Jellyfin and Emby
### Changed
- Change some debug log messages to info so they show by default again

16
ErsatzTV.Infrastructure/Data/Repositories/EmbyTelevisionRepository.cs

@ -564,12 +564,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -564,12 +564,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
new { LibraryId = library.Id, ShowIds = showIds }).Map(result => result.ToList());
await _dbConnection.ExecuteAsync(
@"DELETE FROM MediaItem WHERE Id IN
(SELECT m.Id FROM MediaItem m
INNER JOIN EmbyShow js ON js.Id = m.Id
INNER JOIN LibraryPath lp ON lp.Id = m.LibraryPathId
WHERE lp.LibraryId = @LibraryId AND js.ItemId IN @ShowIds)",
new { LibraryId = library.Id, ShowIds = showIds });
"DELETE FROM MediaItem WHERE Id IN @Ids",
new { Ids = ids });
return ids;
}
@ -593,12 +589,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -593,12 +589,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
new { LibraryId = library.Id, EpisodeIds = episodeIds }).Map(result => result.ToList());
await _dbConnection.ExecuteAsync(
@"DELETE FROM MediaItem WHERE Id IN
(SELECT m.Id FROM MediaItem m
INNER JOIN EmbyEpisode ee ON ee.Id = m.Id
INNER JOIN LibraryPath LP on m.LibraryPathId = LP.Id
WHERE LP.LibraryId = @LibraryId AND ee.ItemId IN @EpisodeIds)",
new { LibraryId = library.Id, EpisodeIds = episodeIds });
"DELETE FROM MediaItem WHERE Id IN @Ids",
new { Ids = ids });
return ids;
}

16
ErsatzTV.Infrastructure/Data/Repositories/JellyfinTelevisionRepository.cs

@ -565,12 +565,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -565,12 +565,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
new { LibraryId = library.Id, ShowIds = showIds }).Map(result => result.ToList());
await _dbConnection.ExecuteAsync(
@"DELETE FROM MediaItem WHERE Id IN
(SELECT m.Id FROM MediaItem m
INNER JOIN JellyfinShow js ON js.Id = m.Id
INNER JOIN LibraryPath lp ON lp.Id = m.LibraryPathId
WHERE lp.LibraryId = @LibraryId AND js.ItemId IN @ShowIds)",
new { LibraryId = library.Id, ShowIds = showIds });
"DELETE FROM MediaItem WHERE Id IN @Ids",
new { Ids = ids });
return ids;
}
@ -594,12 +590,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -594,12 +590,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
new { LibraryId = library.Id, EpisodeIds = episodeIds }).Map(result => result.ToList());
await _dbConnection.ExecuteAsync(
@"DELETE FROM MediaItem WHERE Id IN
(SELECT m.Id FROM MediaItem m
INNER JOIN JellyfinEpisode je ON je.Id = m.Id
INNER JOIN LibraryPath LP on m.LibraryPathId = LP.Id
WHERE LP.LibraryId = @LibraryId AND je.ItemId IN @EpisodeIds)",
new { LibraryId = library.Id, EpisodeIds = episodeIds });
"DELETE FROM MediaItem WHERE Id IN @Ids",
new { Ids = ids });
return ids;
}

13
ErsatzTV.Infrastructure/Data/Repositories/MovieRepository.cs

@ -10,6 +10,7 @@ using ErsatzTV.Core.Emby; @@ -10,6 +10,7 @@ using ErsatzTV.Core.Emby;
using ErsatzTV.Core.Interfaces.Repositories;
using ErsatzTV.Core.Jellyfin;
using ErsatzTV.Core.Metadata;
using ErsatzTV.Infrastructure.Extensions;
using LanguageExt;
using LanguageExt.UnsafeValueAccess;
using Microsoft.EntityFrameworkCore;
@ -237,12 +238,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -237,12 +238,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
new { LibraryId = library.Id, Keys = movieKeys }).Map(result => result.ToList());
await _dbConnection.ExecuteAsync(
@"DELETE FROM MediaItem WHERE Id IN
(SELECT m.Id FROM MediaItem m
INNER JOIN PlexMovie pm ON pm.Id = m.Id
INNER JOIN LibraryPath lp ON lp.Id = m.LibraryPathId
WHERE lp.LibraryId = @LibraryId AND pm.Key not in @Keys)",
new { LibraryId = library.Id, Keys = movieKeys });
"DELETE FROM MediaItem WHERE Id IN @Ids",
new { Ids = ids });
return ids;
}
@ -273,7 +270,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -273,7 +270,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
new { LibraryId = library.Id, ItemIds = movieIds }).Map(result => result.ToList());
await _dbConnection.ExecuteAsync(
"DELETE FROM JellyfinMovie WHERE Id IN @Ids",
"DELETE FROM MediaItem WHERE Id IN @Ids",
new { Ids = ids });
return ids;
@ -529,7 +526,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -529,7 +526,7 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
new { LibraryId = library.Id, ItemIds = movieIds }).Map(result => result.ToList());
await _dbConnection.ExecuteAsync(
"DELETE FROM EmbyMovie WHERE Id IN @Ids",
"DELETE FROM MediaItem WHERE Id IN @Ids",
new { Ids = ids });
return ids;

17
ErsatzTV.Infrastructure/Data/Repositories/TelevisionRepository.cs

@ -538,13 +538,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -538,13 +538,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
new { SeasonKey = seasonKey, Keys = episodeKeys }).Map(result => result.ToList());
await _dbConnection.ExecuteAsync(
@"DELETE FROM MediaItem WHERE Id IN
(SELECT m.Id FROM MediaItem m
INNER JOIN Episode e ON m.Id = e.Id
INNER JOIN PlexEpisode pe ON pe.Id = m.Id
INNER JOIN PlexSeason P on P.Id = e.SeasonId
WHERE P.Key = @SeasonKey AND pe.Key not in @Keys)",
new { SeasonKey = seasonKey, Keys = episodeKeys });
"DELETE FROM MediaItem WHERE Id IN @Ids",
new { Ids = ids });
return ids;
}
@ -683,12 +678,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -683,12 +678,8 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
new { LibraryId = library.Id, Keys = showKeys }).Map(result => result.ToList());
await _dbConnection.ExecuteAsync(
@"DELETE FROM MediaItem WHERE Id IN
(SELECT m.Id FROM MediaItem m
INNER JOIN PlexShow ps ON ps.Id = m.Id
INNER JOIN LibraryPath lp ON lp.Id = m.LibraryPathId
WHERE lp.LibraryId = @LibraryId AND ps.Key not in @Keys)",
new { LibraryId = library.Id, Keys = showKeys });
"DELETE FROM MediaItem WHERE Id IN @Ids",
new { Ids = ids });
return ids;
}

Loading…
Cancel
Save