add emby media source (#201)

* properly scope jellyfin disconnect

* add emby entities

* add emby media source page

* add emby media source editor

* sync emby libraries

* enable emby library sync toggle

* add emby path replacements editor

* add emby movie synchronization

* fix emby artwork

* sync emby television

* code cleanup

* add jellyfin/emby address placeholder

* tweak jellyfin/emby address form
This commit is contained in:
Jason Dove
2021-05-23 03:05:23 -05:00
committed by GitHub
parent 0b105bf6e1
commit 50529ee6ad
134 changed files with 7905 additions and 673 deletions
@@ -0,0 +1,7 @@
namespace ErsatzTV.Infrastructure.Emby.Models
{
public class EmbyImageTagsResponse
{
public string Primary { get; set; }
}
}
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace ErsatzTV.Infrastructure.Emby.Models
{
public class EmbyLibraryItemResponse
{
public string Name { get; set; }
public string Id { get; set; }
public string Etag { get; set; }
public string Path { get; set; }
public DateTimeOffset DateCreated { get; set; }
public long RunTimeTicks { get; set; }
public List<string> Genres { get; set; }
public List<string> Tags { get; set; }
public int ProductionYear { get; set; }
public string PremiereDate { get; set; }
public List<EmbyMediaStreamResponse> MediaStreams { get; set; }
public List<EmbyMediaSourceResponse> MediaSources { get; set; }
public string LocationType { get; set; }
public string Overview { get; set; }
public List<string> Taglines { get; set; }
public List<EmbyStudioResponse> Studios { get; set; }
public List<EmbyPersonResponse> People { get; set; }
public EmbyImageTagsResponse ImageTags { get; set; }
public List<string> BackdropImageTags { get; set; }
public int? IndexNumber { get; set; }
}
}
@@ -0,0 +1,9 @@
using System.Collections.Generic;
namespace ErsatzTV.Infrastructure.Emby.Models
{
public class EmbyLibraryItemsResponse
{
public List<EmbyLibraryItemResponse> Items { get; set; }
}
}
@@ -0,0 +1,9 @@
namespace ErsatzTV.Infrastructure.Emby.Models
{
public class EmbyLibraryResponse
{
public string Name { get; set; }
public string CollectionType { get; set; }
public string ItemId { get; set; }
}
}
@@ -0,0 +1,8 @@
namespace ErsatzTV.Infrastructure.Emby.Models
{
public class EmbyMediaSourceResponse
{
public string Id { get; set; }
public string Protocol { get; set; }
}
}
@@ -0,0 +1,18 @@
namespace ErsatzTV.Infrastructure.Emby.Models
{
public class EmbyMediaStreamResponse
{
public string Type { get; set; }
public string Codec { get; set; }
public string Language { get; set; }
public bool? IsInterlaced { get; set; }
public int? Height { get; set; }
public int? Width { get; set; }
public int Index { get; set; }
public bool IsDefault { get; set; }
public bool IsForced { get; set; }
public string Profile { get; set; }
public string AspectRatio { get; set; }
public int? Channels { get; set; }
}
}
@@ -0,0 +1,11 @@
namespace ErsatzTV.Infrastructure.Emby.Models
{
public class EmbyPersonResponse
{
public string Name { get; set; }
public string Id { get; set; }
public string Role { get; set; }
public string Type { get; set; }
public string PrimaryImageTag { get; set; }
}
}
@@ -0,0 +1,7 @@
namespace ErsatzTV.Infrastructure.Emby.Models
{
public class EmbyStudioResponse
{
public string Name { get; set; }
}
}
@@ -0,0 +1,8 @@
namespace ErsatzTV.Infrastructure.Emby.Models
{
public class EmbySystemInformationResponse
{
public string ServerName { get; set; }
public string OperatingSystem { get; set; }
}
}