mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-20 05:13:18 -07:00
refactor(newsletter): ♻️ Media servers + newsletter refactoring (#4463)
* Abstract media servers content into interfaces * Media server entities into abstract classes * Abstract media server content repository * First pass at newsletter refactoring * Minor code clean up * Attempt at abstracting repositories (WIP) * Fixed cast issue * Corrected the other properties * A step towards newsletter refactoring * Clean up leftovers * Fix broken episodes db interaction * Save absolute URL for Plex content Let's be consistent with Emby and Jellyfin * Fix broken integration with Plex libraries * Fix error when multiple media servers configured * Fix newsletter being sent if no movies or episodes * Fix broken tests * Remove unneccesary logs * Expose stored media server URL No need to recalculate it + Plex URL was broken due to an earlier change * Remove unused variable * Remove obsolete tests URLs are now fetched from database directly * Retro-compatibility for Plex content URL Solves URL for media synced before absolute URL was saved in PlexServerContent * chore: added some obsoletes * fix: removed the unsub link when not present Co-authored-by: tidusjar <tidusjar@gmail.com>
This commit is contained in:
parent
32ee4e88ec
commit
0ff0a704ff
46 changed files with 595 additions and 1148 deletions
|
@ -1,30 +1,38 @@
|
|||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using System.Linq;
|
||||
|
||||
namespace Ombi.Store.Entities
|
||||
{
|
||||
[Table("PlexEpisode")]
|
||||
public class PlexEpisode : Entity
|
||||
public class PlexEpisode : MediaServerEpisode
|
||||
{
|
||||
public int EpisodeNumber { get; set; }
|
||||
public int SeasonNumber { get; set; }
|
||||
public int Key { get; set; } // RatingKey
|
||||
public string Title { get; set; }
|
||||
/// <summary>
|
||||
/// The Season key
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// The parent key.
|
||||
/// </value>
|
||||
public int ParentKey { get; set; }
|
||||
/// <summary>
|
||||
/// The Series key
|
||||
/// </summary>
|
||||
/// <value>
|
||||
/// The grandparent key.
|
||||
/// </value>
|
||||
public int GrandparentKey { get; set; }
|
||||
[NotMapped]
|
||||
public PlexServerContent PlexSeries
|
||||
{
|
||||
get => (PlexServerContent)Series;
|
||||
set => Series = value;
|
||||
}
|
||||
|
||||
public override IMediaServerContent SeriesIsIn(ICollection<IMediaServerContent> content)
|
||||
{
|
||||
return content.OfType<PlexServerContent>().FirstOrDefault(
|
||||
x => x.Key == this.PlexSeries.Key);
|
||||
}
|
||||
|
||||
public override bool IsIn(IMediaServerContent content)
|
||||
{
|
||||
return content.Episodes.Cast<PlexEpisode>().Any(x => x.Key == this.Key);
|
||||
}
|
||||
|
||||
public PlexServerContent Series { get; set; }
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue