diff --git a/ErsatzTV.Application/IMediaCard.cs b/ErsatzTV.Application/IMediaCard.cs deleted file mode 100644 index a50da9758..000000000 --- a/ErsatzTV.Application/IMediaCard.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace ErsatzTV.Application -{ - public interface IMediaCard - { - string Title { get; } - string SortTitle { get; } - string Subtitle { get; } - } -} diff --git a/ErsatzTV.Core/AggregateModels/AggregateMediaItemType.cs b/ErsatzTV.Core/AggregateModels/AggregateMediaItemType.cs deleted file mode 100644 index dd156d9ad..000000000 --- a/ErsatzTV.Core/AggregateModels/AggregateMediaItemType.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace ErsatzTV.Core.AggregateModels -{ - public enum AggregateMediaItemType - { - TelevisionShows, - TelevisionSeasons, - TelevisionEpisodes, - Movies - } -} diff --git a/ErsatzTV.Core/Domain/MediaMetadata.cs b/ErsatzTV.Core/Domain/MediaMetadata.cs deleted file mode 100644 index 7e725d0bb..000000000 --- a/ErsatzTV.Core/Domain/MediaMetadata.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using ErsatzTV.Core.Interfaces.FFmpeg; - -namespace ErsatzTV.Core.Domain -{ - public record MediaMetadata : IDisplaySize - { - public MetadataSource Source { get; set; } - public DateTime? LastWriteTime { get; set; } - public TimeSpan Duration { get; set; } - public string SampleAspectRatio { get; set; } - public string DisplayAspectRatio { get; set; } - public string VideoCodec { get; set; } - public string AudioCodec { get; set; } - public MediaType MediaType { get; set; } - public string Title { get; set; } - public string SortTitle { get; set; } - public string Subtitle { get; set; } - public string Description { get; set; } - public int? SeasonNumber { get; set; } - public int? EpisodeNumber { get; set; } - public string ContentRating { get; set; } - public DateTime? Aired { get; set; } - public VideoScanType VideoScanType { get; set; } - public int Width { get; set; } - public int Height { get; set; } - } -} diff --git a/ErsatzTV.Core/Domain/ResolutionKey.cs b/ErsatzTV.Core/Domain/ResolutionKey.cs deleted file mode 100644 index 65d3d7377..000000000 --- a/ErsatzTV.Core/Domain/ResolutionKey.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace ErsatzTV.Core.Domain -{ - public enum ResolutionKey - { - None = 0, - W720H480 = 1, - W1280H720 = 2, - W1920H1080 = 3, - W3840H2160 = 4 - } -} diff --git a/ErsatzTV.Core/Interfaces/Metadata/ILocalPosterProvider.cs b/ErsatzTV.Core/Interfaces/Metadata/ILocalPosterProvider.cs deleted file mode 100644 index e4c829876..000000000 --- a/ErsatzTV.Core/Interfaces/Metadata/ILocalPosterProvider.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Threading.Tasks; -using ErsatzTV.Core.Domain; - -namespace ErsatzTV.Core.Interfaces.Metadata -{ - public interface ILocalPosterProvider - { - Task RefreshPoster(MediaItem mediaItem); - Task SavePosterToDisk(MediaItem mediaItem, string posterPath); - } -} diff --git a/ErsatzTV.Core/Interfaces/Metadata/ISmartCollectionBuilder.cs b/ErsatzTV.Core/Interfaces/Metadata/ISmartCollectionBuilder.cs deleted file mode 100644 index 25a09767d..000000000 --- a/ErsatzTV.Core/Interfaces/Metadata/ISmartCollectionBuilder.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Threading.Tasks; -using ErsatzTV.Core.Domain; - -namespace ErsatzTV.Core.Interfaces.Metadata -{ - public interface ISmartCollectionBuilder - { - Task RefreshSmartCollections(TelevisionEpisodeMediaItem mediaItem); - } -} diff --git a/ErsatzTV.Core/Interfaces/Repositories/IMediaItemRepository.cs b/ErsatzTV.Core/Interfaces/Repositories/IMediaItemRepository.cs index c7c339468..443452719 100644 --- a/ErsatzTV.Core/Interfaces/Repositories/IMediaItemRepository.cs +++ b/ErsatzTV.Core/Interfaces/Repositories/IMediaItemRepository.cs @@ -7,16 +7,9 @@ namespace ErsatzTV.Core.Interfaces.Repositories { public interface IMediaItemRepository { - Task Add(MediaItem mediaItem); Task> Get(int id); Task> GetAll(); - Task> Search(string searchString); - - // Task> GetPageByType(AggregateMediaItemType itemType, int pageNumber, int pageSize); - // Task GetCountByType(AggregateMediaItemType itemType); - Task> GetAllByMediaSourceId(int mediaSourceId); Task Update(MediaItem mediaItem); - Task Delete(int mediaItemId); } } diff --git a/ErsatzTV.Core/Metadata/LocalPosterProvider.cs b/ErsatzTV.Core/Metadata/LocalPosterProvider.cs deleted file mode 100644 index b2f72a1cf..000000000 --- a/ErsatzTV.Core/Metadata/LocalPosterProvider.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using ErsatzTV.Core.Domain; -using ErsatzTV.Core.Interfaces.Images; -using ErsatzTV.Core.Interfaces.Metadata; -using ErsatzTV.Core.Interfaces.Repositories; -using LanguageExt; -using Microsoft.Extensions.Logging; -using static LanguageExt.Prelude; - -namespace ErsatzTV.Core.Metadata -{ - public class LocalPosterProvider : ILocalPosterProvider - { - private static readonly string[] SupportedExtensions = { "jpg", "jpeg", "png", "gif", "tbn" }; - - private readonly IImageCache _imageCache; - private readonly ILogger _logger; - private readonly IMediaItemRepository _mediaItemRepository; - - public LocalPosterProvider( - IMediaItemRepository mediaItemRepository, - IImageCache imageCache, - ILogger logger) - { - _mediaItemRepository = mediaItemRepository; - _imageCache = imageCache; - _logger = logger; - } - - public async Task RefreshPoster(MediaItem mediaItem) - { - Option maybePosterPath = mediaItem switch - { - MovieMediaItem m => RefreshMoviePoster(m), - TelevisionEpisodeMediaItem e => RefreshTelevisionPoster(e), - _ => None - }; - - await maybePosterPath.Match( - path => SavePosterToDisk(mediaItem, path), - Task.CompletedTask); - } - - public async Task SavePosterToDisk(MediaItem mediaItem, string posterPath) - { - byte[] originalBytes = await File.ReadAllBytesAsync(posterPath); - Either maybeHash = await _imageCache.ResizeAndSaveImage(originalBytes, 220, null); - await maybeHash.Match( - hash => - { - mediaItem.Poster = hash; - return _mediaItemRepository.Update(mediaItem); - }, - error => - { - _logger.LogWarning("Unable to save poster to disk from {Path}: {Error}", posterPath, error.Value); - return Task.CompletedTask; - }); - } - - private static Option RefreshMoviePoster(MediaItem mediaItem) - { - string folder = Path.GetDirectoryName(mediaItem.Path); - if (folder != null) - { - IEnumerable possiblePaths = SupportedExtensions.Collect( - e => new[] { $"poster.{e}", Path.GetFileNameWithoutExtension(mediaItem.Path) + $"-poster.{e}" }); - Option maybePoster = - possiblePaths.Map(p => Path.Combine(folder, p)).FirstOrDefault(File.Exists); - return maybePoster; - } - - return None; - } - - private Option RefreshTelevisionPoster(MediaItem mediaItem) - { - string folder = Directory.GetParent(Path.GetDirectoryName(mediaItem.Path) ?? string.Empty)?.FullName; - if (folder != null) - { - IEnumerable possiblePaths = SupportedExtensions.Collect(e => new[] { $"poster.{e}" }); - Option maybePoster = - possiblePaths.Map(p => Path.Combine(folder, p)).FirstOrDefault(File.Exists); - return maybePoster; - } - - return None; - } - } -} diff --git a/ErsatzTV.Core/Scheduling/TelevisionSeasonMediaCollection.cs b/ErsatzTV.Core/Scheduling/TelevisionSeasonMediaCollection.cs deleted file mode 100644 index 037e2e24a..000000000 --- a/ErsatzTV.Core/Scheduling/TelevisionSeasonMediaCollection.cs +++ /dev/null @@ -1,9 +0,0 @@ -using ErsatzTV.Core.Domain; - -namespace ErsatzTV.Core.Scheduling -{ - public class TelevisionSeasonMediaCollection : MediaCollection - { - public int TelevisionSeasonId { get; set; } - } -} diff --git a/ErsatzTV.Core/Scheduling/TelevisionShowMediaCollection.cs b/ErsatzTV.Core/Scheduling/TelevisionShowMediaCollection.cs deleted file mode 100644 index 8693ebb2a..000000000 --- a/ErsatzTV.Core/Scheduling/TelevisionShowMediaCollection.cs +++ /dev/null @@ -1,9 +0,0 @@ -using ErsatzTV.Core.Domain; - -namespace ErsatzTV.Core.Scheduling -{ - public class TelevisionShowMediaCollection : MediaCollection - { - public int TelevisionShowId { get; set; } - } -} diff --git a/ErsatzTV.Infrastructure/Data/Repositories/MediaItemRepository.cs b/ErsatzTV.Infrastructure/Data/Repositories/MediaItemRepository.cs index 2cb83e096..add440fd5 100644 --- a/ErsatzTV.Infrastructure/Data/Repositories/MediaItemRepository.cs +++ b/ErsatzTV.Infrastructure/Data/Repositories/MediaItemRepository.cs @@ -15,13 +15,6 @@ namespace ErsatzTV.Infrastructure.Data.Repositories public MediaItemRepository(TvContext dbContext) => _dbContext = dbContext; - public async Task Add(MediaItem mediaItem) - { - await _dbContext.MediaItems.AddAsync(mediaItem); - await _dbContext.SaveChangesAsync(); - return mediaItem.Id; - } - public Task> Get(int id) => _dbContext.MediaItems .Include(i => i.Source) @@ -51,23 +44,10 @@ namespace ErsatzTV.Infrastructure.Data.Repositories return episodeData.OfType().Concat(movieData.OfType()).ToListAsync(); } - public Task> GetAllByMediaSourceId(int mediaSourceId) => - _dbContext.MediaItems - .Filter(i => i.MediaSourceId == mediaSourceId) - .ToListAsync(); - public async Task Update(MediaItem mediaItem) { _dbContext.MediaItems.Update(mediaItem); return await _dbContext.SaveChangesAsync() > 0; } - - public Task Delete(int mediaItemId) => - _dbContext.MediaItems.FindAsync(mediaItemId).AsTask().Bind( - mediaItem => - { - _dbContext.MediaItems.Remove(mediaItem); - return _dbContext.SaveChangesAsync(); - }).ToUnit(); } } diff --git a/ErsatzTV/Startup.cs b/ErsatzTV/Startup.cs index 4a8560af6..85210d13b 100644 --- a/ErsatzTV/Startup.cs +++ b/ErsatzTV/Startup.cs @@ -177,7 +177,6 @@ namespace ErsatzTV services.AddScoped(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); services.AddScoped(); services.AddScoped(); services.AddScoped();