Browse Source

remove dead code

pull/26/head
Jason Dove 6 years ago
parent
commit
301c0c9c84
  1. 9
      ErsatzTV.Application/IMediaCard.cs
  2. 10
      ErsatzTV.Core/AggregateModels/AggregateMediaItemType.cs
  3. 28
      ErsatzTV.Core/Domain/MediaMetadata.cs
  4. 11
      ErsatzTV.Core/Domain/ResolutionKey.cs
  5. 11
      ErsatzTV.Core/Interfaces/Metadata/ILocalPosterProvider.cs
  6. 10
      ErsatzTV.Core/Interfaces/Metadata/ISmartCollectionBuilder.cs
  7. 7
      ErsatzTV.Core/Interfaces/Repositories/IMediaItemRepository.cs
  8. 93
      ErsatzTV.Core/Metadata/LocalPosterProvider.cs
  9. 9
      ErsatzTV.Core/Scheduling/TelevisionSeasonMediaCollection.cs
  10. 9
      ErsatzTV.Core/Scheduling/TelevisionShowMediaCollection.cs
  11. 20
      ErsatzTV.Infrastructure/Data/Repositories/MediaItemRepository.cs
  12. 1
      ErsatzTV/Startup.cs

9
ErsatzTV.Application/IMediaCard.cs

@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
namespace ErsatzTV.Application
{
public interface IMediaCard
{
string Title { get; }
string SortTitle { get; }
string Subtitle { get; }
}
}

10
ErsatzTV.Core/AggregateModels/AggregateMediaItemType.cs

@ -1,10 +0,0 @@ @@ -1,10 +0,0 @@
namespace ErsatzTV.Core.AggregateModels
{
public enum AggregateMediaItemType
{
TelevisionShows,
TelevisionSeasons,
TelevisionEpisodes,
Movies
}
}

28
ErsatzTV.Core/Domain/MediaMetadata.cs

@ -1,28 +0,0 @@ @@ -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; }
}
}

11
ErsatzTV.Core/Domain/ResolutionKey.cs

@ -1,11 +0,0 @@ @@ -1,11 +0,0 @@
namespace ErsatzTV.Core.Domain
{
public enum ResolutionKey
{
None = 0,
W720H480 = 1,
W1280H720 = 2,
W1920H1080 = 3,
W3840H2160 = 4
}
}

11
ErsatzTV.Core/Interfaces/Metadata/ILocalPosterProvider.cs

@ -1,11 +0,0 @@ @@ -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);
}
}

10
ErsatzTV.Core/Interfaces/Metadata/ISmartCollectionBuilder.cs

@ -1,10 +0,0 @@ @@ -1,10 +0,0 @@
using System.Threading.Tasks;
using ErsatzTV.Core.Domain;
namespace ErsatzTV.Core.Interfaces.Metadata
{
public interface ISmartCollectionBuilder
{
Task<bool> RefreshSmartCollections(TelevisionEpisodeMediaItem mediaItem);
}
}

7
ErsatzTV.Core/Interfaces/Repositories/IMediaItemRepository.cs

@ -7,16 +7,9 @@ namespace ErsatzTV.Core.Interfaces.Repositories @@ -7,16 +7,9 @@ namespace ErsatzTV.Core.Interfaces.Repositories
{
public interface IMediaItemRepository
{
Task<int> Add(MediaItem mediaItem);
Task<Option<MediaItem>> Get(int id);
Task<List<MediaItem>> GetAll();
Task<List<MediaItem>> Search(string searchString);
// Task<List<MediaItemSummary>> GetPageByType(AggregateMediaItemType itemType, int pageNumber, int pageSize);
// Task<int> GetCountByType(AggregateMediaItemType itemType);
Task<List<MediaItem>> GetAllByMediaSourceId(int mediaSourceId);
Task<bool> Update(MediaItem mediaItem);
Task<Unit> Delete(int mediaItemId);
}
}

93
ErsatzTV.Core/Metadata/LocalPosterProvider.cs

@ -1,93 +0,0 @@ @@ -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<LocalPosterProvider> _logger;
private readonly IMediaItemRepository _mediaItemRepository;
public LocalPosterProvider(
IMediaItemRepository mediaItemRepository,
IImageCache imageCache,
ILogger<LocalPosterProvider> logger)
{
_mediaItemRepository = mediaItemRepository;
_imageCache = imageCache;
_logger = logger;
}
public async Task RefreshPoster(MediaItem mediaItem)
{
Option<string> 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<BaseError, string> 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<string> RefreshMoviePoster(MediaItem mediaItem)
{
string folder = Path.GetDirectoryName(mediaItem.Path);
if (folder != null)
{
IEnumerable<string> possiblePaths = SupportedExtensions.Collect(
e => new[] { $"poster.{e}", Path.GetFileNameWithoutExtension(mediaItem.Path) + $"-poster.{e}" });
Option<string> maybePoster =
possiblePaths.Map(p => Path.Combine(folder, p)).FirstOrDefault(File.Exists);
return maybePoster;
}
return None;
}
private Option<string> RefreshTelevisionPoster(MediaItem mediaItem)
{
string folder = Directory.GetParent(Path.GetDirectoryName(mediaItem.Path) ?? string.Empty)?.FullName;
if (folder != null)
{
IEnumerable<string> possiblePaths = SupportedExtensions.Collect(e => new[] { $"poster.{e}" });
Option<string> maybePoster =
possiblePaths.Map(p => Path.Combine(folder, p)).FirstOrDefault(File.Exists);
return maybePoster;
}
return None;
}
}
}

9
ErsatzTV.Core/Scheduling/TelevisionSeasonMediaCollection.cs

@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
using ErsatzTV.Core.Domain;
namespace ErsatzTV.Core.Scheduling
{
public class TelevisionSeasonMediaCollection : MediaCollection
{
public int TelevisionSeasonId { get; set; }
}
}

9
ErsatzTV.Core/Scheduling/TelevisionShowMediaCollection.cs

@ -1,9 +0,0 @@ @@ -1,9 +0,0 @@
using ErsatzTV.Core.Domain;
namespace ErsatzTV.Core.Scheduling
{
public class TelevisionShowMediaCollection : MediaCollection
{
public int TelevisionShowId { get; set; }
}
}

20
ErsatzTV.Infrastructure/Data/Repositories/MediaItemRepository.cs

@ -15,13 +15,6 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -15,13 +15,6 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
public MediaItemRepository(TvContext dbContext) => _dbContext = dbContext;
public async Task<int> Add(MediaItem mediaItem)
{
await _dbContext.MediaItems.AddAsync(mediaItem);
await _dbContext.SaveChangesAsync();
return mediaItem.Id;
}
public Task<Option<MediaItem>> Get(int id) =>
_dbContext.MediaItems
.Include(i => i.Source)
@ -51,23 +44,10 @@ namespace ErsatzTV.Infrastructure.Data.Repositories @@ -51,23 +44,10 @@ namespace ErsatzTV.Infrastructure.Data.Repositories
return episodeData.OfType<MediaItem>().Concat(movieData.OfType<MediaItem>()).ToListAsync();
}
public Task<List<MediaItem>> GetAllByMediaSourceId(int mediaSourceId) =>
_dbContext.MediaItems
.Filter(i => i.MediaSourceId == mediaSourceId)
.ToListAsync();
public async Task<bool> Update(MediaItem mediaItem)
{
_dbContext.MediaItems.Update(mediaItem);
return await _dbContext.SaveChangesAsync() > 0;
}
public Task<Unit> Delete(int mediaItemId) =>
_dbContext.MediaItems.FindAsync(mediaItemId).AsTask().Bind(
mediaItem =>
{
_dbContext.MediaItems.Remove(mediaItem);
return _dbContext.SaveChangesAsync();
}).ToUnit();
}
}

1
ErsatzTV/Startup.cs

@ -177,7 +177,6 @@ namespace ErsatzTV @@ -177,7 +177,6 @@ namespace ErsatzTV
services.AddScoped<ILocalMetadataProvider, LocalMetadataProvider>();
services.AddScoped<IFallbackMetadataProvider, FallbackMetadataProvider>();
services.AddScoped<ILocalStatisticsProvider, LocalStatisticsProvider>();
services.AddScoped<ILocalPosterProvider, LocalPosterProvider>();
services.AddScoped<IPlayoutBuilder, PlayoutBuilder>();
services.AddScoped<IImageCache, ImageCache>();
services.AddScoped<ILocalFileSystem, LocalFileSystem>();

Loading…
Cancel
Save