Browse Source

properly store plex timestamps on update (#98)

pull/99/head
Jason Dove 5 years ago committed by GitHub
parent
commit
489f8d92ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      ErsatzTV.Core/Interfaces/Repositories/IMetadataRepository.cs
  2. 3
      ErsatzTV.Core/Plex/PlexMovieLibraryScanner.cs
  3. 4
      ErsatzTV.Core/Plex/PlexTelevisionLibraryScanner.cs
  4. 18
      ErsatzTV.Infrastructure/Data/Repositories/MetadataRepository.cs

6
ErsatzTV.Core/Interfaces/Repositories/IMetadataRepository.cs

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
using System.Threading.Tasks;
using System;
using System.Threading.Tasks;
using ErsatzTV.Core.Domain;
using LanguageExt;
@ -16,5 +17,8 @@ namespace ErsatzTV.Core.Interfaces.Repositories @@ -16,5 +17,8 @@ namespace ErsatzTV.Core.Interfaces.Repositories
Task<Unit> UpdateArtworkPath(Artwork artwork);
Task<Unit> AddArtwork(Domain.Metadata metadata, Artwork artwork);
Task<Unit> RemoveArtwork(Domain.Metadata metadata, ArtworkKind artworkKind);
Task<Unit> MarkAsUpdated(ShowMetadata metadata, DateTime dateUpdated);
Task<Unit> MarkAsUpdated(SeasonMetadata metadata, DateTime dateUpdated);
Task<Unit> MarkAsUpdated(MovieMetadata metadata, DateTime dateUpdated);
}
}

3
ErsatzTV.Core/Plex/PlexMovieLibraryScanner.cs

@ -189,6 +189,8 @@ namespace ErsatzTV.Core.Plex @@ -189,6 +189,8 @@ namespace ErsatzTV.Core.Plex
}
}
await _metadataRepository.MarkAsUpdated(existingMetadata, incomingMetadata.DateUpdated);
// TODO: update other metadata?
}
@ -207,6 +209,7 @@ namespace ErsatzTV.Core.Plex @@ -207,6 +209,7 @@ namespace ErsatzTV.Core.Plex
{
await UpdateArtworkIfNeeded(existingMetadata, incomingMetadata, ArtworkKind.Poster);
await UpdateArtworkIfNeeded(existingMetadata, incomingMetadata, ArtworkKind.FanArt);
await _metadataRepository.MarkAsUpdated(existingMetadata, incomingMetadata.DateUpdated);
}
return result;

4
ErsatzTV.Core/Plex/PlexTelevisionLibraryScanner.cs

@ -153,6 +153,8 @@ namespace ErsatzTV.Core.Plex @@ -153,6 +153,8 @@ namespace ErsatzTV.Core.Plex
result.IsUpdated = true;
}
}
await _metadataRepository.MarkAsUpdated(existingMetadata, incomingMetadata.DateUpdated);
}
return result;
@ -170,6 +172,7 @@ namespace ErsatzTV.Core.Plex @@ -170,6 +172,7 @@ namespace ErsatzTV.Core.Plex
{
await UpdateArtworkIfNeeded(existingMetadata, incomingMetadata, ArtworkKind.Poster);
await UpdateArtworkIfNeeded(existingMetadata, incomingMetadata, ArtworkKind.FanArt);
await _metadataRepository.MarkAsUpdated(existingMetadata, incomingMetadata.DateUpdated);
}
return result;
@ -235,6 +238,7 @@ namespace ErsatzTV.Core.Plex @@ -235,6 +238,7 @@ namespace ErsatzTV.Core.Plex
if (incomingMetadata.DateUpdated > existingMetadata.DateUpdated)
{
await UpdateArtworkIfNeeded(existingMetadata, incomingMetadata, ArtworkKind.Poster);
await _metadataRepository.MarkAsUpdated(existingMetadata, incomingMetadata.DateUpdated);
}
return existing;

18
ErsatzTV.Infrastructure/Data/Repositories/MetadataRepository.cs

@ -1,4 +1,5 @@ @@ -1,4 +1,5 @@
using System.Data;
using System;
using System.Data;
using System.Threading.Tasks;
using Dapper;
using ErsatzTV.Core.Domain;
@ -109,6 +110,21 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -109,6 +110,21 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
OR ShowMetadataId = @Id OR SeasonMetadataId = @Id OR EpisodeMetadataId = @Id)",
new { ArtworkKind = artworkKind, metadata.Id }).ToUnit();
public Task<Unit> MarkAsUpdated(ShowMetadata metadata, DateTime dateUpdated) =>
_dbConnection.ExecuteAsync(
@"UPDATE ShowMetadata SET DateUpdated = @DateUpdated WHERE Id = @Id",
new { DateUpdated = dateUpdated, metadata.Id }).ToUnit();
public Task<Unit> MarkAsUpdated(SeasonMetadata metadata, DateTime dateUpdated) =>
_dbConnection.ExecuteAsync(
@"UPDATE SeasonMetadata SET DateUpdated = @DateUpdated WHERE Id = @Id",
new { DateUpdated = dateUpdated, metadata.Id }).ToUnit();
public Task<Unit> MarkAsUpdated(MovieMetadata metadata, DateTime dateUpdated) =>
_dbConnection.ExecuteAsync(
@"UPDATE MovieMetadata SET DateUpdated = @DateUpdated WHERE Id = @Id",
new { DateUpdated = dateUpdated, metadata.Id }).ToUnit();
public Task<bool> RemoveGenre(Genre genre) =>
_dbConnection.ExecuteAsync("DELETE FROM Genre WHERE Id = @GenreId", new { GenreId = genre.Id })
.Map(result => result > 0);

Loading…
Cancel
Save