mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-07-31 12:00:06 -07:00
Extended the Emby API
This commit is contained in:
parent
acd9ebde33
commit
dc9030c2ce
26 changed files with 555 additions and 9 deletions
|
@ -1,8 +1,10 @@
|
||||||
using System;
|
using System.Collections.Generic;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Net.Http;
|
using System.Net.Http;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using Ombi.Api.Emby.Models;
|
using Ombi.Api.Emby.Models;
|
||||||
|
using Ombi.Api.Emby.Models.Media.Tv;
|
||||||
|
using Ombi.Api.Emby.Models.Movie;
|
||||||
using Ombi.Helpers;
|
using Ombi.Helpers;
|
||||||
|
|
||||||
namespace Ombi.Api.Emby
|
namespace Ombi.Api.Emby
|
||||||
|
@ -24,7 +26,7 @@ namespace Ombi.Api.Emby
|
||||||
public async Task<List<EmbyUser>> GetUsers(string baseUri, string apiKey)
|
public async Task<List<EmbyUser>> GetUsers(string baseUri, string apiKey)
|
||||||
{
|
{
|
||||||
var request = new Request("emby/users", baseUri, HttpMethod.Get);
|
var request = new Request("emby/users", baseUri, HttpMethod.Get);
|
||||||
|
|
||||||
AddHeaders(request, apiKey);
|
AddHeaders(request, apiKey);
|
||||||
var obj = await Api.Request<List<EmbyUser>>(request);
|
var obj = await Api.Request<List<EmbyUser>>(request);
|
||||||
|
|
||||||
|
@ -64,6 +66,59 @@ namespace Ombi.Api.Emby
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<EmbyItemContainer<EmbyMovie>> GetAllMovies(string apiKey, string userId, string baseUri)
|
||||||
|
{
|
||||||
|
return await GetAll<EmbyMovie>("Movie", apiKey, userId, baseUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<EmbyItemContainer<EmbyEpisodes>> GetAllEpisodes(string apiKey, string userId, string baseUri)
|
||||||
|
{
|
||||||
|
return await GetAll<EmbyEpisodes>("Episode", apiKey, userId, baseUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<EmbyItemContainer<EmbySeries>> GetAllShows(string apiKey, string userId, string baseUri)
|
||||||
|
{
|
||||||
|
return await GetAll<EmbySeries>("Series", apiKey, userId, baseUri);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task<SeriesInformation> GetSeriesInformation(string mediaId, string apiKey, string userId, string baseUrl)
|
||||||
|
{
|
||||||
|
return await GetInformation<SeriesInformation>(mediaId, apiKey, userId, baseUrl);
|
||||||
|
}
|
||||||
|
public async Task<MovieInformation> GetMovieInformation(string mediaId, string apiKey, string userId, string baseUrl)
|
||||||
|
{
|
||||||
|
return await GetInformation<MovieInformation>(mediaId, apiKey, userId, baseUrl);
|
||||||
|
}
|
||||||
|
public async Task<EpisodeInformation> GetEpisodeInformation(string mediaId, string apiKey, string userId, string baseUrl)
|
||||||
|
{
|
||||||
|
return await GetInformation<EpisodeInformation>(mediaId, apiKey, userId, baseUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<T> GetInformation<T>(string mediaId, string apiKey, string userId, string baseUrl)
|
||||||
|
{
|
||||||
|
var request = new Request($"emby/users/{userId}/items/{mediaId}", baseUrl, HttpMethod.Get);
|
||||||
|
AddHeaders(request, apiKey);
|
||||||
|
var response = await Api.RequestContent(request);
|
||||||
|
|
||||||
|
return JsonConvert.DeserializeObject<T>(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private async Task<EmbyItemContainer<T>> GetAll<T>(string type, string apiKey, string userId, string baseUri)
|
||||||
|
{
|
||||||
|
var request = new Request($"emby/users/{userId}/items", baseUri, HttpMethod.Get);
|
||||||
|
|
||||||
|
request.AddQueryString("Recursive", true.ToString());
|
||||||
|
request.AddQueryString("IncludeItemTypes", type);
|
||||||
|
|
||||||
|
AddHeaders(request, apiKey);
|
||||||
|
|
||||||
|
|
||||||
|
var obj = await Api.Request<EmbyItemContainer<T>>(request);
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
|
|
||||||
private static void AddHeaders(Request req, string apiKey)
|
private static void AddHeaders(Request req, string apiKey)
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrEmpty(apiKey))
|
if (!string.IsNullOrEmpty(apiKey))
|
||||||
|
|
|
@ -2,6 +2,8 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Ombi.Api.Emby.Models;
|
using Ombi.Api.Emby.Models;
|
||||||
|
using Ombi.Api.Emby.Models.Media.Tv;
|
||||||
|
using Ombi.Api.Emby.Models.Movie;
|
||||||
|
|
||||||
namespace Ombi.Api.Emby
|
namespace Ombi.Api.Emby
|
||||||
{
|
{
|
||||||
|
@ -10,5 +12,13 @@ namespace Ombi.Api.Emby
|
||||||
Task<EmbySystemInfo> GetSystemInformation(string apiKey, string baseUrl);
|
Task<EmbySystemInfo> GetSystemInformation(string apiKey, string baseUrl);
|
||||||
Task<List<EmbyUser>> GetUsers(string baseUri, string apiKey);
|
Task<List<EmbyUser>> GetUsers(string baseUri, string apiKey);
|
||||||
Task<EmbyUser> LogIn(string username, string password, string apiKey, string baseUri);
|
Task<EmbyUser> LogIn(string username, string password, string apiKey, string baseUri);
|
||||||
|
|
||||||
|
Task<EmbyItemContainer<EmbyMovie>> GetAllMovies(string apiKey, string userId, string baseUri);
|
||||||
|
Task<EmbyItemContainer<EmbyEpisodes>> GetAllEpisodes(string apiKey, string userId, string baseUri);
|
||||||
|
Task<EmbyItemContainer<EmbySeries>> GetAllShows(string apiKey, string userId, string baseUri);
|
||||||
|
|
||||||
|
Task<SeriesInformation> GetSeriesInformation(string mediaId, string apiKey, string userId, string baseUrl);
|
||||||
|
Task<MovieInformation> GetMovieInformation(string mediaId, string apiKey, string userId, string baseUrl);
|
||||||
|
Task<EpisodeInformation> GetEpisodeInformation(string mediaId, string apiKey, string userId, string baseUrl);
|
||||||
}
|
}
|
||||||
}
|
}
|
10
src/Ombi.Api.Emby/Models/EmbyItemContainer.cs
Normal file
10
src/Ombi.Api.Emby/Models/EmbyItemContainer.cs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Emby.Models
|
||||||
|
{
|
||||||
|
public class EmbyItemContainer<T>
|
||||||
|
{
|
||||||
|
public List<T> Items { get; set; }
|
||||||
|
public int TotalRecordCount { get; set; }
|
||||||
|
}
|
||||||
|
}
|
10
src/Ombi.Api.Emby/Models/EmbyMediaType.cs
Normal file
10
src/Ombi.Api.Emby/Models/EmbyMediaType.cs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
namespace Ombi.Api.Emby.Models
|
||||||
|
{
|
||||||
|
public enum EmbyMediaType
|
||||||
|
{
|
||||||
|
Movie = 0,
|
||||||
|
Series = 1,
|
||||||
|
Music = 2,
|
||||||
|
Episode = 3
|
||||||
|
}
|
||||||
|
}
|
8
src/Ombi.Api.Emby/Models/Media/EmbyChapter.cs
Normal file
8
src/Ombi.Api.Emby/Models/Media/EmbyChapter.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyChapter
|
||||||
|
{
|
||||||
|
public long StartPositionTicks { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
}
|
8
src/Ombi.Api.Emby/Models/Media/EmbyExternalurl.cs
Normal file
8
src/Ombi.Api.Emby/Models/Media/EmbyExternalurl.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyExternalurl
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Url { get; set; }
|
||||||
|
}
|
||||||
|
}
|
11
src/Ombi.Api.Emby/Models/Media/EmbyImagetags.cs
Normal file
11
src/Ombi.Api.Emby/Models/Media/EmbyImagetags.cs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyImagetags
|
||||||
|
{
|
||||||
|
public string Primary { get; set; }
|
||||||
|
public string Logo { get; set; }
|
||||||
|
public string Thumb { get; set; }
|
||||||
|
|
||||||
|
public string Banner { get; set; }
|
||||||
|
}
|
||||||
|
}
|
30
src/Ombi.Api.Emby/Models/Media/EmbyMediasource.cs
Normal file
30
src/Ombi.Api.Emby/Models/Media/EmbyMediasource.cs
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyMediasource
|
||||||
|
{
|
||||||
|
public string Protocol { get; set; }
|
||||||
|
public string Id { get; set; }
|
||||||
|
public string Path { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public string Container { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
public bool IsRemote { get; set; }
|
||||||
|
public string ETag { get; set; }
|
||||||
|
public long RunTimeTicks { get; set; }
|
||||||
|
public bool ReadAtNativeFramerate { get; set; }
|
||||||
|
public bool SupportsTranscoding { get; set; }
|
||||||
|
public bool SupportsDirectStream { get; set; }
|
||||||
|
public bool SupportsDirectPlay { get; set; }
|
||||||
|
public bool IsInfiniteStream { get; set; }
|
||||||
|
public bool RequiresOpening { get; set; }
|
||||||
|
public bool RequiresClosing { get; set; }
|
||||||
|
public bool SupportsProbing { get; set; }
|
||||||
|
public string VideoType { get; set; }
|
||||||
|
public EmbyMediastream[] MediaStreams { get; set; }
|
||||||
|
public object[] PlayableStreamFileNames { get; set; }
|
||||||
|
public object[] Formats { get; set; }
|
||||||
|
public int Bitrate { get; set; }
|
||||||
|
public int DefaultAudioStreamIndex { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
36
src/Ombi.Api.Emby/Models/Media/EmbyMediastream.cs
Normal file
36
src/Ombi.Api.Emby/Models/Media/EmbyMediastream.cs
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyMediastream
|
||||||
|
{
|
||||||
|
public string Codec { get; set; }
|
||||||
|
public string Language { get; set; }
|
||||||
|
public string TimeBase { get; set; }
|
||||||
|
public string CodecTimeBase { get; set; }
|
||||||
|
public string NalLengthSize { get; set; }
|
||||||
|
public bool IsInterlaced { get; set; }
|
||||||
|
public bool IsAVC { get; set; }
|
||||||
|
public int BitRate { get; set; }
|
||||||
|
public int BitDepth { get; set; }
|
||||||
|
public int RefFrames { get; set; }
|
||||||
|
public bool IsDefault { get; set; }
|
||||||
|
public bool IsForced { get; set; }
|
||||||
|
public int Height { get; set; }
|
||||||
|
public int Width { get; set; }
|
||||||
|
public float AverageFrameRate { get; set; }
|
||||||
|
public float RealFrameRate { get; set; }
|
||||||
|
public string Profile { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public string AspectRatio { get; set; }
|
||||||
|
public int Index { get; set; }
|
||||||
|
public bool IsExternal { get; set; }
|
||||||
|
public bool IsTextSubtitleStream { get; set; }
|
||||||
|
public bool SupportsExternalStream { get; set; }
|
||||||
|
public string PixelFormat { get; set; }
|
||||||
|
public int Level { get; set; }
|
||||||
|
public bool IsAnamorphic { get; set; }
|
||||||
|
public string DisplayTitle { get; set; }
|
||||||
|
public string ChannelLayout { get; set; }
|
||||||
|
public int Channels { get; set; }
|
||||||
|
public int SampleRate { get; set; }
|
||||||
|
}
|
||||||
|
}
|
11
src/Ombi.Api.Emby/Models/Media/EmbyPerson.cs
Normal file
11
src/Ombi.Api.Emby/Models/Media/EmbyPerson.cs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyPerson
|
||||||
|
{
|
||||||
|
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; }
|
||||||
|
}
|
||||||
|
}
|
13
src/Ombi.Api.Emby/Models/Media/EmbyProviderids.cs
Normal file
13
src/Ombi.Api.Emby/Models/Media/EmbyProviderids.cs
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyProviderids
|
||||||
|
{
|
||||||
|
public string Tmdb { get; set; }
|
||||||
|
public string Imdb { get; set; }
|
||||||
|
public string TmdbCollection { get; set; }
|
||||||
|
|
||||||
|
public string Tvdb { get; set; }
|
||||||
|
public string Zap2It { get; set; }
|
||||||
|
public string TvRage { get; set; }
|
||||||
|
}
|
||||||
|
}
|
8
src/Ombi.Api.Emby/Models/Media/EmbyRemotetrailer.cs
Normal file
8
src/Ombi.Api.Emby/Models/Media/EmbyRemotetrailer.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyRemotetrailer
|
||||||
|
{
|
||||||
|
public string Url { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
}
|
8
src/Ombi.Api.Emby/Models/Media/EmbyStudio.cs
Normal file
8
src/Ombi.Api.Emby/Models/Media/EmbyStudio.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyStudio
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Id { get; set; }
|
||||||
|
}
|
||||||
|
}
|
15
src/Ombi.Api.Emby/Models/Media/EmbyUserdata.cs
Normal file
15
src/Ombi.Api.Emby/Models/Media/EmbyUserdata.cs
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyUserdata
|
||||||
|
{
|
||||||
|
public double PlaybackPositionTicks { get; set; }
|
||||||
|
public int PlayCount { get; set; }
|
||||||
|
public bool IsFavorite { get; set; }
|
||||||
|
public bool Played { get; set; }
|
||||||
|
public string Key { get; set; }
|
||||||
|
public DateTime LastPlayedDate { get; set; }
|
||||||
|
public int UnplayedItemCount { get; set; }
|
||||||
|
}
|
||||||
|
}
|
32
src/Ombi.Api.Emby/Models/Media/Movie/EmbyMovie.cs
Normal file
32
src/Ombi.Api.Emby/Models/Media/Movie/EmbyMovie.cs
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class EmbyMovie
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string ServerId { get; set; }
|
||||||
|
public string Id { get; set; }
|
||||||
|
public string Container { get; set; }
|
||||||
|
public DateTime PremiereDate { get; set; }
|
||||||
|
public object[] ProductionLocations { get; set; }
|
||||||
|
public string OfficialRating { get; set; }
|
||||||
|
public float CommunityRating { get; set; }
|
||||||
|
public long RunTimeTicks { get; set; }
|
||||||
|
public string PlayAccess { get; set; }
|
||||||
|
public int ProductionYear { get; set; }
|
||||||
|
public bool IsPlaceHolder { get; set; }
|
||||||
|
public bool IsHD { get; set; }
|
||||||
|
public bool IsFolder { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public int LocalTrailerCount { get; set; }
|
||||||
|
public EmbyUserdata UserData { get; set; }
|
||||||
|
public string VideoType { get; set; }
|
||||||
|
public EmbyImagetags ImageTags { get; set; }
|
||||||
|
public string[] BackdropImageTags { get; set; }
|
||||||
|
public string LocationType { get; set; }
|
||||||
|
public string MediaType { get; set; }
|
||||||
|
public bool HasSubtitles { get; set; }
|
||||||
|
public int CriticRating { get; set; }
|
||||||
|
}
|
||||||
|
}
|
60
src/Ombi.Api.Emby/Models/Media/Movie/MovieInformation.cs
Normal file
60
src/Ombi.Api.Emby/Models/Media/Movie/MovieInformation.cs
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Emby.Models.Movie
|
||||||
|
{
|
||||||
|
public class MovieInformation
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string OriginalTitle { get; set; }
|
||||||
|
public string ServerId { get; set; }
|
||||||
|
public string Id { get; set; }
|
||||||
|
public string Etag { get; set; }
|
||||||
|
public DateTime DateCreated { get; set; }
|
||||||
|
public bool CanDelete { get; set; }
|
||||||
|
public bool CanDownload { get; set; }
|
||||||
|
public bool SupportsSync { get; set; }
|
||||||
|
public string Container { get; set; }
|
||||||
|
public string SortName { get; set; }
|
||||||
|
public DateTime PremiereDate { get; set; }
|
||||||
|
public EmbyExternalurl[] ExternalUrls { get; set; }
|
||||||
|
public EmbyMediasource[] MediaSources { get; set; }
|
||||||
|
public string[] ProductionLocations { get; set; }
|
||||||
|
public string Path { get; set; }
|
||||||
|
public string OfficialRating { get; set; }
|
||||||
|
public string Overview { get; set; }
|
||||||
|
public string[] Taglines { get; set; }
|
||||||
|
public string[] Genres { get; set; }
|
||||||
|
public float CommunityRating { get; set; }
|
||||||
|
public int VoteCount { get; set; }
|
||||||
|
public long RunTimeTicks { get; set; }
|
||||||
|
public string PlayAccess { get; set; }
|
||||||
|
public int ProductionYear { get; set; }
|
||||||
|
public bool IsPlaceHolder { get; set; }
|
||||||
|
public EmbyRemotetrailer[] RemoteTrailers { get; set; }
|
||||||
|
public EmbyProviderids ProviderIds { get; set; }
|
||||||
|
public bool IsHD { get; set; }
|
||||||
|
public bool IsFolder { get; set; }
|
||||||
|
public string ParentId { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public EmbyPerson[] People { get; set; }
|
||||||
|
public EmbyStudio[] Studios { get; set; }
|
||||||
|
public int LocalTrailerCount { get; set; }
|
||||||
|
public EmbyUserdata UserData { get; set; }
|
||||||
|
public string DisplayPreferencesId { get; set; }
|
||||||
|
public object[] Tags { get; set; }
|
||||||
|
public string[] Keywords { get; set; }
|
||||||
|
public EmbyMediastream[] MediaStreams { get; set; }
|
||||||
|
public string VideoType { get; set; }
|
||||||
|
public EmbyImagetags ImageTags { get; set; }
|
||||||
|
public string[] BackdropImageTags { get; set; }
|
||||||
|
public object[] ScreenshotImageTags { get; set; }
|
||||||
|
public EmbyChapter[] Chapters { get; set; }
|
||||||
|
public string LocationType { get; set; }
|
||||||
|
public string MediaType { get; set; }
|
||||||
|
public string HomePageUrl { get; set; }
|
||||||
|
public int Budget { get; set; }
|
||||||
|
public int Revenue { get; set; }
|
||||||
|
public object[] LockedFields { get; set; }
|
||||||
|
public bool LockData { get; set; }
|
||||||
|
}
|
||||||
|
}
|
43
src/Ombi.Api.Emby/Models/Media/Tv/EmbyEpisodes.cs
Normal file
43
src/Ombi.Api.Emby/Models/Media/Tv/EmbyEpisodes.cs
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
using Ombi.Api.Emby.Models.Movie;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Emby.Models.Media.Tv
|
||||||
|
{
|
||||||
|
public class EmbyEpisodes
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string ServerId { get; set; }
|
||||||
|
public string Id { get; set; }
|
||||||
|
public string Container { get; set; }
|
||||||
|
public DateTime PremiereDate { get; set; }
|
||||||
|
public float CommunityRating { get; set; }
|
||||||
|
public long RunTimeTicks { get; set; }
|
||||||
|
public string PlayAccess { get; set; }
|
||||||
|
public int ProductionYear { get; set; }
|
||||||
|
public bool IsPlaceHolder { get; set; }
|
||||||
|
public int IndexNumber { get; set; }
|
||||||
|
public int ParentIndexNumber { get; set; }
|
||||||
|
public bool IsHD { get; set; }
|
||||||
|
public bool IsFolder { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public string ParentLogoItemId { get; set; }
|
||||||
|
public string ParentBackdropItemId { get; set; }
|
||||||
|
public string[] ParentBackdropImageTags { get; set; }
|
||||||
|
public int LocalTrailerCount { get; set; }
|
||||||
|
public EmbyUserdata UserData { get; set; }
|
||||||
|
public string SeriesName { get; set; }
|
||||||
|
public string SeriesId { get; set; }
|
||||||
|
public string SeasonId { get; set; }
|
||||||
|
public string SeriesPrimaryImageTag { get; set; }
|
||||||
|
public string SeasonName { get; set; }
|
||||||
|
public string VideoType { get; set; }
|
||||||
|
public EmbyImagetags ImageTags { get; set; }
|
||||||
|
public object[] BackdropImageTags { get; set; }
|
||||||
|
public string ParentLogoImageTag { get; set; }
|
||||||
|
public string ParentThumbItemId { get; set; }
|
||||||
|
public string ParentThumbImageTag { get; set; }
|
||||||
|
public string LocationType { get; set; }
|
||||||
|
public string MediaType { get; set; }
|
||||||
|
public bool HasSubtitles { get; set; }
|
||||||
|
}
|
||||||
|
}
|
8
src/Ombi.Api.Emby/Models/Media/Tv/EmbyRemotetrailer.cs
Normal file
8
src/Ombi.Api.Emby/Models/Media/Tv/EmbyRemotetrailer.cs
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Media.Tv
|
||||||
|
{
|
||||||
|
public class EmbyRemotetrailer
|
||||||
|
{
|
||||||
|
public string Url { get; set; }
|
||||||
|
public string Name { get; set; }
|
||||||
|
}
|
||||||
|
}
|
30
src/Ombi.Api.Emby/Models/Media/Tv/EmbySeries.cs
Normal file
30
src/Ombi.Api.Emby/Models/Media/Tv/EmbySeries.cs
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
using Ombi.Api.Emby.Models.Movie;
|
||||||
|
using System;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Emby.Models.Media.Tv
|
||||||
|
{
|
||||||
|
public class EmbySeries
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string ServerId { get; set; }
|
||||||
|
public string Id { get; set; }
|
||||||
|
public DateTime PremiereDate { get; set; }
|
||||||
|
public string OfficialRating { get; set; }
|
||||||
|
public float CommunityRating { get; set; }
|
||||||
|
public long RunTimeTicks { get; set; }
|
||||||
|
public string PlayAccess { get; set; }
|
||||||
|
public int ProductionYear { get; set; }
|
||||||
|
public bool IsFolder { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public int LocalTrailerCount { get; set; }
|
||||||
|
public EmbyUserdata UserData { get; set; }
|
||||||
|
public int ChildCount { get; set; }
|
||||||
|
public string Status { get; set; }
|
||||||
|
public string AirTime { get; set; }
|
||||||
|
public string[] AirDays { get; set; }
|
||||||
|
public EmbyImagetags ImageTags { get; set; }
|
||||||
|
public string[] BackdropImageTags { get; set; }
|
||||||
|
public string LocationType { get; set; }
|
||||||
|
public DateTime EndDate { get; set; }
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
namespace Ombi.Api.Emby.Models.Media.Tv
|
||||||
|
{
|
||||||
|
public class EmbySeriesstudioinfo
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string Id { get; set; }
|
||||||
|
}
|
||||||
|
}
|
72
src/Ombi.Api.Emby/Models/Media/Tv/EpisodeInformation.cs
Normal file
72
src/Ombi.Api.Emby/Models/Media/Tv/EpisodeInformation.cs
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
using System;
|
||||||
|
using Ombi.Api.Emby.Models.Movie;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Emby.Models.Media.Tv
|
||||||
|
{
|
||||||
|
public class EpisodeInformation
|
||||||
|
{
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string ServerId { get; set; }
|
||||||
|
public string Id { get; set; }
|
||||||
|
public string Etag { get; set; }
|
||||||
|
public DateTime DateCreated { get; set; }
|
||||||
|
public bool CanDelete { get; set; }
|
||||||
|
public bool CanDownload { get; set; }
|
||||||
|
public bool SupportsSync { get; set; }
|
||||||
|
public string Container { get; set; }
|
||||||
|
public string SortName { get; set; }
|
||||||
|
public DateTime PremiereDate { get; set; }
|
||||||
|
public EmbyExternalurl[] ExternalUrls { get; set; }
|
||||||
|
public EmbyMediasource[] MediaSources { get; set; }
|
||||||
|
public string Path { get; set; }
|
||||||
|
public string Overview { get; set; }
|
||||||
|
public object[] Taglines { get; set; }
|
||||||
|
public object[] Genres { get; set; }
|
||||||
|
public string[] SeriesGenres { get; set; }
|
||||||
|
public float CommunityRating { get; set; }
|
||||||
|
public int VoteCount { get; set; }
|
||||||
|
public long RunTimeTicks { get; set; }
|
||||||
|
public string PlayAccess { get; set; }
|
||||||
|
public int ProductionYear { get; set; }
|
||||||
|
public bool IsPlaceHolder { get; set; }
|
||||||
|
public int IndexNumber { get; set; }
|
||||||
|
public int ParentIndexNumber { get; set; }
|
||||||
|
public object[] RemoteTrailers { get; set; }
|
||||||
|
public EmbyProviderids ProviderIds { get; set; }
|
||||||
|
public bool IsHD { get; set; }
|
||||||
|
public bool IsFolder { get; set; }
|
||||||
|
public string ParentId { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public object[] People { get; set; }
|
||||||
|
public object[] Studios { get; set; }
|
||||||
|
public string ParentLogoItemId { get; set; }
|
||||||
|
public string ParentBackdropItemId { get; set; }
|
||||||
|
public string[] ParentBackdropImageTags { get; set; }
|
||||||
|
public int LocalTrailerCount { get; set; }
|
||||||
|
public EmbyUserdata UserData { get; set; }
|
||||||
|
public string SeriesName { get; set; }
|
||||||
|
public string SeriesId { get; set; }
|
||||||
|
public string SeasonId { get; set; }
|
||||||
|
public string DisplayPreferencesId { get; set; }
|
||||||
|
public object[] Tags { get; set; }
|
||||||
|
public object[] Keywords { get; set; }
|
||||||
|
public string SeriesPrimaryImageTag { get; set; }
|
||||||
|
public string SeasonName { get; set; }
|
||||||
|
public EmbyMediastream[] MediaStreams { get; set; }
|
||||||
|
public string VideoType { get; set; }
|
||||||
|
public EmbyImagetags ImageTags { get; set; }
|
||||||
|
public object[] BackdropImageTags { get; set; }
|
||||||
|
public object[] ScreenshotImageTags { get; set; }
|
||||||
|
public string ParentLogoImageTag { get; set; }
|
||||||
|
public string SeriesStudio { get; set; }
|
||||||
|
public EmbySeriesstudioinfo SeriesStudioInfo { get; set; }
|
||||||
|
public string ParentThumbItemId { get; set; }
|
||||||
|
public string ParentThumbImageTag { get; set; }
|
||||||
|
public EmbyChapter[] Chapters { get; set; }
|
||||||
|
public string LocationType { get; set; }
|
||||||
|
public string MediaType { get; set; }
|
||||||
|
public object[] LockedFields { get; set; }
|
||||||
|
public bool LockData { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
59
src/Ombi.Api.Emby/Models/Media/Tv/SeriesInformation.cs
Normal file
59
src/Ombi.Api.Emby/Models/Media/Tv/SeriesInformation.cs
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
using System;
|
||||||
|
using Ombi.Api.Emby.Models.Movie;
|
||||||
|
|
||||||
|
namespace Ombi.Api.Emby.Models.Media.Tv
|
||||||
|
{
|
||||||
|
public class SeriesInformation
|
||||||
|
{
|
||||||
|
|
||||||
|
public string Name { get; set; }
|
||||||
|
public string ServerId { get; set; }
|
||||||
|
public string Id { get; set; }
|
||||||
|
public string Etag { get; set; }
|
||||||
|
public DateTime DateCreated { get; set; }
|
||||||
|
public DateTime DateLastMediaAdded { get; set; }
|
||||||
|
public bool CanDelete { get; set; }
|
||||||
|
public bool CanDownload { get; set; }
|
||||||
|
public bool SupportsSync { get; set; }
|
||||||
|
public string SortName { get; set; }
|
||||||
|
public DateTime PremiereDate { get; set; }
|
||||||
|
public EmbyExternalurl[] ExternalUrls { get; set; }
|
||||||
|
public string Path { get; set; }
|
||||||
|
public string OfficialRating { get; set; }
|
||||||
|
public string Overview { get; set; }
|
||||||
|
public string ShortOverview { get; set; }
|
||||||
|
public object[] Taglines { get; set; }
|
||||||
|
public string[] Genres { get; set; }
|
||||||
|
public float CommunityRating { get; set; }
|
||||||
|
public int VoteCount { get; set; }
|
||||||
|
public long CumulativeRunTimeTicks { get; set; }
|
||||||
|
public long RunTimeTicks { get; set; }
|
||||||
|
public string PlayAccess { get; set; }
|
||||||
|
public int ProductionYear { get; set; }
|
||||||
|
public EmbyRemotetrailer[] RemoteTrailers { get; set; }
|
||||||
|
public EmbyProviderids ProviderIds { get; set; }
|
||||||
|
public bool IsFolder { get; set; }
|
||||||
|
public string ParentId { get; set; }
|
||||||
|
public string Type { get; set; }
|
||||||
|
public EmbyPerson[] People { get; set; }
|
||||||
|
public EmbyStudio[] Studios { get; set; }
|
||||||
|
public int LocalTrailerCount { get; set; }
|
||||||
|
public EmbyUserdata UserData { get; set; }
|
||||||
|
public int RecursiveItemCount { get; set; }
|
||||||
|
public int ChildCount { get; set; }
|
||||||
|
public string DisplayPreferencesId { get; set; }
|
||||||
|
public string Status { get; set; }
|
||||||
|
public string AirTime { get; set; }
|
||||||
|
public string[] AirDays { get; set; }
|
||||||
|
public object[] Tags { get; set; }
|
||||||
|
public object[] Keywords { get; set; }
|
||||||
|
public EmbyImagetags ImageTags { get; set; }
|
||||||
|
public string[] BackdropImageTags { get; set; }
|
||||||
|
public object[] ScreenshotImageTags { get; set; }
|
||||||
|
public string LocationType { get; set; }
|
||||||
|
public string HomePageUrl { get; set; }
|
||||||
|
public object[] LockedFields { get; set; }
|
||||||
|
public bool LockData { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
7
src/Ombi.Schedule/Jobs/Emby/EmbyContentCacher.cs
Normal file
7
src/Ombi.Schedule/Jobs/Emby/EmbyContentCacher.cs
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
namespace Ombi.Schedule.Jobs.Emby
|
||||||
|
{
|
||||||
|
public class EmbyContentCacher
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -18,8 +18,4 @@
|
||||||
<ProjectReference Include="..\Ombi.Settings\Ombi.Settings.csproj" />
|
<ProjectReference Include="..\Ombi.Settings\Ombi.Settings.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Folder Include="Jobs\Emby\" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
</Project>
|
|
@ -40,6 +40,5 @@ const routes: Routes = [
|
||||||
SearchService,
|
SearchService,
|
||||||
RequestService
|
RequestService
|
||||||
],
|
],
|
||||||
|
|
||||||
})
|
})
|
||||||
export class SearchModule { }
|
export class SearchModule { }
|
|
@ -6,7 +6,6 @@ import { NotificationService } from '../services/notification.service';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
|
|
||||||
templateUrl: './usermanagement-edit.component.html'
|
templateUrl: './usermanagement-edit.component.html'
|
||||||
})
|
})
|
||||||
export class UserManagementEditComponent {
|
export class UserManagementEditComponent {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue