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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -28,12 +28,8 @@ namespace Ombi.Store.Entities
[NotMapped]
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() {
return string.Empty; // TODO
}
[NotMapped]
public abstract RecentlyAddedType RecentlyAddedType { get; }
}
public abstract class MediaServerEpisode: Entity, IMediaServerEpisode

View file

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

View file

@ -5,8 +5,14 @@ using Ombi.Store.Entities;
namespace Ombi.Store.Repository
{
public interface IMediaServerContentRepository<Content> : IExternalRepository<Content>, IMediaServerContentRepositoryLight
public interface IMediaServerContentRepository<Content> : IExternalRepository<Content>
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<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<PlexEpisode> GetEpisodeByKey(int key);
IEnumerable<PlexServerContent> GetWhereContentByCustom(Expression<Func<PlexServerContent, bool>> predicate);

View file

@ -17,11 +17,6 @@ namespace Ombi.Store.Repository
}
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 Task<IMediaServerEpisode> Add(IMediaServerEpisode content);
public abstract Task AddRange(IEnumerable<IMediaServerEpisode> content);

View file

@ -75,16 +75,16 @@ namespace Ombi.Store.Repository
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)
{
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:
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:
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:
break;
}