tesses-cms/Tesses.CMS/IContentProvider.cs

242 lines
8.1 KiB
C#

using System.Collections.Generic;
using System.Threading.Tasks;
using Newtonsoft.Json;
namespace Tesses.CMS
{
public interface IContentProvider
{
UserAccount GetFirstUser();
IEnumerable<UserAccount> GetUsers();
IEnumerable<Movie> GetMovies(string user);
IEnumerable<Movie> GetMovies(long user);
IEnumerable<Album> GetAlbums(string user);
IEnumerable<Album> 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<Show> GetShows(string user);
IEnumerable<Show> 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<ExtraDataStream> ExtraStreams {get;set;}=new List<ExtraDataStream>();
}
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<ExtraDataStream> ExtraStreams {get;set;}=new List<ExtraDataStream>();
[JsonProperty("browser_streams")]
public List<Track> BrowserStreams {get;set;}=new List<Track>();
[JsonProperty("download_streams")]
public List<Track> DownloadStreams {get;set;}=new List<Track>();
}
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<SubtitleStream> SubtitlesStreams {get;set;}=new List<SubtitleStream>();
[JsonProperty("extra_streams")]
public List<ExtraDataStream> ExtraStreams {get;set;}=new List<ExtraDataStream>();
}
public class ExtraDataStream
{
[JsonProperty("is_dir")]
public bool IsDir {get;set;}
[JsonProperty("name")]
public string Name {get;set;}
[JsonProperty("items")]
public List<ExtraDataStream> Items {get;set;}=new List<ExtraDataStream>();
[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;}="";
}
}