using System.Collections.Generic; using System.Threading.Tasks; using Newtonsoft.Json; namespace Tesses.CMS { public interface IContentProvider { UserAccount GetFirstUser(); IEnumerable GetUsers(); IEnumerable GetMovies(string user); IEnumerable GetMovies(long user); IEnumerable GetAlbums(string user); IEnumerable GetAlbums(long user); UserAccount GetUserAccount(string user); Movie CreateMovie(string user,string movie,string properName,string description); Movie CreateMovie(long user,string movie,string properName,string description); Movie GetMovie(string user,string movie); void UpdateMovie(Movie movie); void CreateUser(CMSConfiguration configuration,string user,string properName,string email,string password); Album CreateAlbum(string user, string album, string properName,string description); Album CreateAlbum(long user, string album, string properName,string description); void UpdateUser(UserAccount account); UserAccount GetUserById(long account); void CreateSession(string session,long account); void ChangeSession(string session,long account); void DeleteSession(string session); long? GetSession(string session); bool ContainsSession(string cookie); void CreateVerificationCode(string code,long account); void DeleteVerificationCode(string code); long? GetVerificationAccount(string code); bool ContainsVerificationCode(string code); IEnumerable GetShows(string user); IEnumerable GetShows(long user); void UpdateShow(Show show); void UpdateEpisode(Episode episode); void UpdateSeason(Season season); Show CreateShow(long user, string show,string properName, string description); Show CreateShow(string user, string show, string properName, string description); Show GetShow(string user, string show); Show GetShow(long user, long show); int SeasonCount(long user,long show); int SeasonCount(string user,string show); Season GetSeason(string user,string show,int season); Season GetSeason(long user, long show, int season); Season CreateSeason(string user,string show,int season,string properName,string description); Season CreateSeason(long user,long show,int season,string properName,string description); int EpisodeCount(string user,string show,int season); int EpisodeCount(long user,long show,int season); Episode GetEpisode(string user,string show,int season,int episode); Episode GetEpisode(long user,long show,int season,int episode); Episode CreateEpisode(string user,string show,int season,int episode,string episodename,string properName,string description); Episode CreateEpisode(long user,long show,int season,int episode,string episodename,string properName,string description); Album GetAlbum(string user,string album); Album GetAlbum(long user,string album); void UpdateAlbum(Album album); } public class SeasonContentMetaData { [JsonProperty("season_info")] public Season Info {get;set;} [JsonProperty("has_poster")] public bool HasPoster {get;set;} [JsonProperty("poster_url")] public string PosterUrl {get;set;} [JsonProperty("has_thumbnail")] public bool HasThumbnail {get;set;} [JsonProperty("thumbnail_url")] public string ThumbnailUrl {get;set;} } public class ShowContentMetaData { [JsonProperty("show_info")] public Show Info {get;set;} [JsonProperty("has_show_torrent")] public bool HasShowTorrent{get;set;} [JsonProperty("show_torrent_url")] public string ShowTorrentUrl {get;set;} [JsonProperty("has_show_with_extras_torrent")] public bool HasShowWithExtrasTorrent{get;set;} [JsonProperty("show_with_extras_torrent_url")] public string ShowWithExtrasTorrentUrl {get;set;} [JsonProperty("has_poster")] public bool HasPoster {get;set;} [JsonProperty("poster_url")] public string PosterUrl {get;set;} [JsonProperty("has_thumbnail")] public bool HasThumbnail {get;set;} [JsonProperty("thumbnail_url")] public string ThumbnailUrl {get;set;} [JsonProperty("extra_streams")] public List ExtraStreams {get;set;}=new List(); } public class AlbumContentMetaData { [JsonProperty("album_info")] public Album Info {get;set;} [JsonProperty("has_album_torrent")] public bool HasAlbumTorrent{get;set;} [JsonProperty("album_torrent_url")] public string AlbumTorrentUrl {get;set;} [JsonProperty("has_album_with_extras_torrent")] public bool HasAlbumWithExtrasTorrent{get;set;} [JsonProperty("album_with_extras_torrent_url")] public string AlbumWithExtrasTorrentUrl {get;set;} [JsonProperty("has_poster")] public bool HasPoster {get;set;} [JsonProperty("poster_url")] public string PosterUrl {get;set;} [JsonProperty("has_thumbnail")] public bool HasThumbnail {get;set;} [JsonProperty("thumbnail_url")] public string ThumbnailUrl {get;set;} [JsonProperty("extra_streams")] public List ExtraStreams {get;set;}=new List(); [JsonProperty("browser_streams")] public List BrowserStreams {get;set;}=new List(); [JsonProperty("download_streams")] public List DownloadStreams {get;set;}=new List(); } public class Track { [JsonProperty("track_number")] public int TrackNumber {get;set;} [JsonProperty("url")] public string Url {get;set;} [JsonProperty("name")] public string Name {get;set;} } public class MovieContentMetaData { [JsonProperty("movie_info")] public Movie Info {get;set;} [JsonProperty("has_movie_torrent")] public bool HasMovieTorrent{get;set;} [JsonProperty("movie_torrent_url")] public string MovieTorrentUrl {get;set;} [JsonProperty("has_movie_with_extras_torrent")] public bool HasMovieWithExtrasTorrent{get;set;} [JsonProperty("movie_with_extras_torrent_url")] public string MovieWithExtrasTorrentUrl {get;set;} [JsonProperty("has_browser_stream")] public bool HasBrowserStream {get;set;} [JsonProperty("has_download_stream")] public bool HasDownloadStream {get;set;} [JsonProperty("browser_stream")] public string BrowserStream {get;set;} [JsonProperty("download_stream")] public string DownloadStream {get;set;} [JsonProperty("has_poster")] public bool HasPoster {get;set;} [JsonProperty("poster_url")] public string PosterUrl {get;set;} [JsonProperty("has_thumbnail")] public bool HasThumbnail {get;set;} [JsonProperty("thumbnail_url")] public string ThumbnailUrl {get;set;} [JsonProperty("subtitle_streams")] public List SubtitlesStreams {get;set;}=new List(); [JsonProperty("extra_streams")] public List ExtraStreams {get;set;}=new List(); } public class ExtraDataStream { [JsonProperty("is_dir")] public bool IsDir {get;set;} [JsonProperty("name")] public string Name {get;set;} [JsonProperty("items")] public List Items {get;set;}=new List(); [JsonProperty("url")] public string Url {get;set;} } public class SubtitleStream { [JsonProperty("language_code")] public string LanguageCode {get;set;}=""; [JsonProperty("srt_url")] public string SrtUrl {get;set;}=""; [JsonProperty("vtt_url")] public string VttUrl {get;set;}=""; } }