Clean up leftovers

This commit is contained in:
Florian Dupret 2022-01-16 19:32:26 +01:00
commit 468847b103
14 changed files with 28 additions and 65 deletions

View file

@ -169,7 +169,6 @@ namespace Ombi.Schedule.Jobs.Emby
EmbyId = tvShow.Id, EmbyId = tvShow.Id,
Url = EmbyHelper.GetEmbyMediaUrl(tvShow.Id, server?.ServerId, server.ServerHostname), Url = EmbyHelper.GetEmbyMediaUrl(tvShow.Id, server?.ServerId, server.ServerHostname),
AddedAt = DateTime.UtcNow, AddedAt = DateTime.UtcNow,
Repository = _repo
}); });
} }
else else
@ -259,8 +258,7 @@ namespace Ombi.Schedule.Jobs.Emby
Type = MediaType.Movie, Type = MediaType.Movie,
EmbyId = movieInfo.Id, EmbyId = movieInfo.Id,
Url = EmbyHelper.GetEmbyMediaUrl(movieInfo.Id, server?.ServerId, server.ServerHostname), Url = EmbyHelper.GetEmbyMediaUrl(movieInfo.Id, server?.ServerId, server.ServerHostname),
AddedAt = DateTime.UtcNow, AddedAt = DateTime.UtcNow
Repository = _repo
}); });
} }
else else

View file

@ -146,8 +146,7 @@ namespace Ombi.Schedule.Jobs.Jellyfin
Type = MediaType.Series, Type = MediaType.Series,
JellyfinId = tvShow.Id, JellyfinId = tvShow.Id,
Url = JellyfinHelper.GetJellyfinMediaUrl(tvShow.Id, server?.ServerId, server.ServerHostname), Url = JellyfinHelper.GetJellyfinMediaUrl(tvShow.Id, server?.ServerId, server.ServerHostname),
AddedAt = DateTime.UtcNow, AddedAt = DateTime.UtcNow
Repository = _repo
}); });
} }
else else
@ -227,8 +226,7 @@ namespace Ombi.Schedule.Jobs.Jellyfin
Type = MediaType.Movie, Type = MediaType.Movie,
JellyfinId = movieInfo.Id, JellyfinId = movieInfo.Id,
Url = JellyfinHelper.GetJellyfinMediaUrl(movieInfo.Id, server?.ServerId, server.ServerHostname), Url = JellyfinHelper.GetJellyfinMediaUrl(movieInfo.Id, server?.ServerId, server.ServerHostname),
AddedAt = DateTime.UtcNow, AddedAt = DateTime.UtcNow
Repository = _repo
}); });
} }
else else

View file

@ -250,7 +250,7 @@ namespace Ombi.Schedule.Jobs.Ombi
recentlyAddedLog.Add(new RecentlyAddedLog recentlyAddedLog.Add(new RecentlyAddedLog
{ {
AddedAt = DateTime.Now, AddedAt = DateTime.Now,
Type = p.Repository?.RecentlyAddedType ?? RecentlyAddedType.Plex, // TODO Type = p.RecentlyAddedType,
ContentType = ContentType.Parent, ContentType = ContentType.Parent,
ContentId = StringHelper.IntParseLinq(p.TheMovieDbId), ContentId = StringHelper.IntParseLinq(p.TheMovieDbId),
}); });
@ -264,7 +264,7 @@ namespace Ombi.Schedule.Jobs.Ombi
recentlyAddedLog.Add(new RecentlyAddedLog recentlyAddedLog.Add(new RecentlyAddedLog
{ {
AddedAt = DateTime.Now, AddedAt = DateTime.Now,
Type = p.Series.Repository?.RecentlyAddedType ?? RecentlyAddedType.Plex, // TODO Type = p.Series.RecentlyAddedType,
ContentType = ContentType.Episode, ContentType = ContentType.Episode,
ContentId = StringHelper.IntParseLinq(p.Series.TvDbId), ContentId = StringHelper.IntParseLinq(p.Series.TvDbId),
EpisodeNumber = p.EpisodeNumber, EpisodeNumber = p.EpisodeNumber,
@ -510,7 +510,7 @@ namespace Ombi.Schedule.Jobs.Ombi
continue; continue;
} }
var info = await _movieApi.GetMovieInformationWithExtraInfo(movieDbId, defaultLanguageCode); var info = await _movieApi.GetMovieInformationWithExtraInfo(movieDbId, defaultLanguageCode);
var mediaurl = content.GetExternalUrl(); var mediaurl = content.Url;
if (info == null) if (info == null)
{ {
continue; continue;
@ -720,7 +720,7 @@ namespace Ombi.Schedule.Jobs.Ombi
AddBackgroundInsideTable($"https://image.tmdb.org/t/p/w1280/"); AddBackgroundInsideTable($"https://image.tmdb.org/t/p/w1280/");
} }
AddPosterInsideTable(banner); AddPosterInsideTable(banner);
AddMediaServerUrl(t.GetExternalUrl(), banner); AddMediaServerUrl(t.Url, banner);
AddInfoTable(); AddInfoTable();
AddTvTitle(info, tvInfo); AddTvTitle(info, tvInfo);

View file

@ -353,8 +353,7 @@ namespace Ombi.Schedule.Jobs.Plex
Title = movie.title, Title = movie.title,
Url = PlexHelper.GetPlexMediaUrl(servers.MachineIdentifier, movie.ratingKey), Url = PlexHelper.GetPlexMediaUrl(servers.MachineIdentifier, movie.ratingKey),
Seasons = new List<PlexSeasonsContent>(), Seasons = new List<PlexSeasonsContent>(),
Quality = movie.Media?.FirstOrDefault()?.videoResolution ?? string.Empty, Quality = movie.Media?.FirstOrDefault()?.videoResolution ?? string.Empty
Repository = Repo
}; };
if (providerIds.ImdbId.HasValue()) if (providerIds.ImdbId.HasValue())
{ {
@ -557,8 +556,7 @@ namespace Ombi.Schedule.Jobs.Plex
Type = MediaType.Series, Type = MediaType.Series,
Title = show.title, Title = show.title,
Url = PlexHelper.GetPlexMediaUrl(servers.MachineIdentifier, show.ratingKey), Url = PlexHelper.GetPlexMediaUrl(servers.MachineIdentifier, show.ratingKey),
Seasons = new List<PlexSeasonsContent>(), Seasons = new List<PlexSeasonsContent>()
Repository = Repo
}; };
await GetProviderIds(showMetadata, item); await GetProviderIds(showMetadata, item);

View file

@ -40,6 +40,7 @@ namespace Ombi.Store.Entities
/// </summary> /// </summary>
public string ProviderId { get; set; } public string ProviderId { get; set; }
public string EmbyId { get; set; } public string EmbyId { get; set; }
public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Emby;
} }
} }

View file

@ -1,7 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using Ombi.Store.Repository;
namespace Ombi.Store.Entities namespace Ombi.Store.Entities
{ {
@ -12,10 +11,9 @@ namespace Ombi.Store.Entities
public string TvDbId { get; set; } public string TvDbId { get; set; }
public string TheMovieDbId { get; set; } public string TheMovieDbId { get; set; }
public MediaType Type { get; set; } public MediaType Type { get; set; }
public IMediaServerContentRepositoryLight Repository { get; } public RecentlyAddedType RecentlyAddedType{ get; }
public string Url { get; set; } public string Url { get; set; }
public string GetExternalUrl();
public ICollection<IMediaServerEpisode> Episodes { get; set; } public ICollection<IMediaServerEpisode> Episodes { get; set; }

View file

@ -40,6 +40,7 @@ namespace Ombi.Store.Entities
/// </summary> /// </summary>
public string ProviderId { get; set; } public string ProviderId { get; set; }
public string JellyfinId { get; set; } public string JellyfinId { get; set; }
public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Jellyfin;
} }
} }

View file

@ -27,13 +27,9 @@ namespace Ombi.Store.Entities
[NotMapped] [NotMapped]
public bool HasTheMovieDb => !string.IsNullOrEmpty(TheMovieDbId); public bool HasTheMovieDb => !string.IsNullOrEmpty(TheMovieDbId);
[NotMapped] //TODO: instantiate this variable upon read // something in ExternalContext.cs?
public IMediaServerContentRepositoryLight Repository { get; set; }
public string GetExternalUrl() { [NotMapped]
return string.Empty; // TODO public abstract RecentlyAddedType RecentlyAddedType { get; }
}
} }
public abstract class MediaServerEpisode: Entity, IMediaServerEpisode public abstract class MediaServerEpisode: Entity, IMediaServerEpisode

View file

@ -51,6 +51,8 @@ namespace Ombi.Store.Entities
get => (ICollection<PlexEpisode>)Episodes; get => (ICollection<PlexEpisode>)Episodes;
set => Episodes = (ICollection<IMediaServerEpisode>)value; set => Episodes = (ICollection<IMediaServerEpisode>)value;
} }
public override RecentlyAddedType RecentlyAddedType => RecentlyAddedType.Plex;
} }
[Table("PlexSeasonsContent")] [Table("PlexSeasonsContent")]

View file

@ -5,8 +5,14 @@ using Ombi.Store.Entities;
namespace Ombi.Store.Repository namespace Ombi.Store.Repository
{ {
public interface IMediaServerContentRepository<Content> : IExternalRepository<Content>, IMediaServerContentRepositoryLight public interface IMediaServerContentRepository<Content> : IExternalRepository<Content>
where Content : IMediaServerContent where Content : IMediaServerContent
{ {
RecentlyAddedType RecentlyAddedType{ get; }
Task Update(IMediaServerContent existingContent);
IQueryable<IMediaServerEpisode> GetAllEpisodes();
Task<IMediaServerEpisode> Add(IMediaServerEpisode content);
Task AddRange(IEnumerable<IMediaServerEpisode> content);
void UpdateWithoutSave(IMediaServerContent existingContent);
} }
} }

View file

@ -1,30 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Ombi.Store.Entities;
namespace Ombi.Store.Repository
{
// TOOD: this is a mess done to bypass the fact that
// I can't pass around IMediaServerContentRepository as a parameter
// because I want to pass it a generic IMediaServerContent as a 'type'
// and casting from concrete classes doesn't work due to my poor C# knowledge
// My workaround so far has been to use this lightened interface,
// but the ever-growing number of wrapper methods for methods coming from IRepository<T>
// is starting to smell (see implementing class MediaServerContentRepository).
public interface IMediaServerContentRepositoryLight
{
RecentlyAddedType RecentlyAddedType{ get; }
Task Update(IMediaServerContent existingContent);
// IQueryable<IMediaServerContent> GetAllContent();
// Task<IMediaServerContent> FindContent(object key);
// Task<int> SaveChangesAsync();
IQueryable<IMediaServerEpisode> GetAllEpisodes();
Task<IMediaServerEpisode> Add(IMediaServerEpisode content);
Task AddRange(IEnumerable<IMediaServerEpisode> content);
void UpdateWithoutSave(IMediaServerContent existingContent);
}
}

View file

@ -12,7 +12,7 @@ namespace Ombi.Store.Repository
{ {
Task<bool> ContentExists(string providerId); Task<bool> ContentExists(string providerId);
Task<PlexServerContent> Get(string providerId, ProviderType type); Task<PlexServerContent> Get(string providerId, ProviderType type);
Task<PlexServerContent> GetByType(string providerId, ProviderType type, MediaType MediaServerType); Task<PlexServerContent> GetByType(string providerId, ProviderType type, MediaType mediaType);
Task<PlexServerContent> GetByKey(int key); Task<PlexServerContent> GetByKey(int key);
Task<PlexEpisode> GetEpisodeByKey(int key); Task<PlexEpisode> GetEpisodeByKey(int key);
IEnumerable<PlexServerContent> GetWhereContentByCustom(Expression<Func<PlexServerContent, bool>> predicate); IEnumerable<PlexServerContent> GetWhereContentByCustom(Expression<Func<PlexServerContent, bool>> predicate);

View file

@ -17,11 +17,6 @@ namespace Ombi.Store.Repository
} }
public abstract Task Update(IMediaServerContent existingContent); public abstract Task Update(IMediaServerContent existingContent);
// TOOD: this smells: trying to wrap ExternalRepository methods in IMediaServerContentRepositoryLight for generic consumption
public IQueryable<IMediaServerContent> GetAllContent() => (IQueryable<IMediaServerContent>)GetAll();
public async Task<IMediaServerContent> FindContent(object key) => (IMediaServerContent)await Find(key);
public abstract IQueryable<IMediaServerEpisode> GetAllEpisodes(); public abstract IQueryable<IMediaServerEpisode> GetAllEpisodes();
public abstract Task<IMediaServerEpisode> Add(IMediaServerEpisode content); public abstract Task<IMediaServerEpisode> Add(IMediaServerEpisode content);
public abstract Task AddRange(IEnumerable<IMediaServerEpisode> content); public abstract Task AddRange(IEnumerable<IMediaServerEpisode> content);

View file

@ -75,16 +75,16 @@ namespace Ombi.Store.Repository
return null; return null;
} }
public async Task<PlexServerContent> GetByType(string providerId, ProviderType type, MediaType plexType) public async Task<PlexServerContent> GetByType(string providerId, ProviderType type, MediaType mediaType)
{ {
switch (type) switch (type)
{ {
case ProviderType.ImdbId: case ProviderType.ImdbId:
return await Db.PlexServerContent.FirstOrDefaultAsync(x => x.ImdbId == providerId && x.Type == plexType); return await Db.PlexServerContent.FirstOrDefaultAsync(x => x.ImdbId == providerId && x.Type == mediaType);
case ProviderType.TheMovieDbId: case ProviderType.TheMovieDbId:
return await Db.PlexServerContent.FirstOrDefaultAsync(x => x.TheMovieDbId == providerId && x.Type == plexType); return await Db.PlexServerContent.FirstOrDefaultAsync(x => x.TheMovieDbId == providerId && x.Type == mediaType);
case ProviderType.TvDbId: case ProviderType.TvDbId:
return await Db.PlexServerContent.FirstOrDefaultAsync(x => x.TvDbId == providerId && x.Type == plexType); return await Db.PlexServerContent.FirstOrDefaultAsync(x => x.TvDbId == providerId && x.Type == mediaType);
default: default:
break; break;
} }