public Collection<ApiTvShow> GetTvShowsRefresh() { var shows = new Collection<ApiTvShow>(); var properties = new JsonArray(new[] { "title", "plot", "genre", "fanart", "thumbnail", "rating", "mpaa", "studio", "playcount", "premiered", "episode" }); var param = new JsonObject(); param["properties"] = properties; // First 100 Date sorted var param2 = new JsonObject(); param2.Add("start", 0); param2.Add("end", 10); var param3 = new JsonObject(); param3.Add("order", "descending"); param3.Add("method", "dateadded"); param.Add("sort", param3); param.Add("limits", param2); var result = (JsonObject)_parent.JsonCommand("VideoLibrary.GetTVShows", param); if (result != null) { if (result.Contains("tvshows")) { foreach (JsonObject genre in (JsonArray)result["tvshows"]) { try { var tvShow = new ApiTvShow { Title = genre["title"].ToString(), Plot = genre["plot"].ToString(), Rating = genre["rating"].ToString(), IdScraper = "", Mpaa = genre["mpaa"].ToString(), Genre = _parent.JsonArrayToString((JsonArray)genre["genre"]), Studio = _parent.JsonArrayToString((JsonArray)genre["studio"]), IdShow = (long)(JsonNumber)genre["tvshowid"], TotalCount = (long)(JsonNumber)genre["episode"], Path = "", Premiered = genre["premiered"].ToString(), Thumb = genre["thumbnail"].ToString(), Fanart = genre["fanart"].ToString(), Hash = Xbmc.Hash(genre["thumbnail"].ToString()) }; shows.Add(tvShow); } catch (Exception) { } } } } return shows; }
public Collection<ApiTvShow> GetTvShows() { var shows = new Collection<ApiTvShow>(); var dblines = _parent.DBCommand("video", "SELECT tvshow.idShow,tvshow.c00,tvshow.c01,tvshow.c04,tvshow.c05,tvshow.c08,tvshow.c12,tvshow.c13,tvshow.c14,path.strPath as strPath,counts.totalcount as totalCount FROM tvshow join tvshowlinkpath on tvshow.idShow=tvshowlinkpath.idShow join path on path.idpath=tvshowlinkpath.idPath left outer join ( select tvshow.idShow as idShow,count(1) as totalcount,count(files.playCount) as watchedcount from tvshow join tvshowlinkepisode on tvshow.idShow = tvshowlinkepisode.idShow join episode on episode.idEpisode = tvshowlinkepisode.idEpisode join files on files.idFile = episode.idFile group by tvshow.idShow) counts on tvshow.idShow = counts.idShow"); if (dblines == null) return shows; foreach (var dbline in dblines) { if (dbline.Length < 11) { _parent.Log("Invalid request DATA : " + dbline); continue; } dbline[3] = dbline[3].Length > 3 ? dbline[3] : "0.0"; var show = new ApiTvShow { IdShow = Xbmc.StringToNumber(dbline[0]), Title = dbline[1], Plot = dbline[2], Rating = dbline[3].Substring(0, 3).Trim('.'), Premiered = dbline[4], Genre = dbline[5], IdScraper = dbline[6], Mpaa = dbline[7], Studio = dbline[8], Path = dbline[9], TotalCount = Xbmc.StringToNumber(dbline[10]) }; show.Hash = Xbmc.Hash(show.Path); show.Thumb = @"special://profile/Thumbnails/Video/" + show.Hash[0] + "/" + show.Hash + ".tbn"; show.Fanart = @"special://profile/Thumbnails/Video/Fanart/" + show.Hash + ".tbn"; shows.Add(show); } return shows; }
public Collection<ApiTvShow> GetTvShows() { var shows = new Collection<ApiTvShow>(); var dblines = _parent.DBCommand("video","SELECT idShow,c00,c01,c04,c05,c08,c12,c13,c14,strPath,totalCount FROM tvshowview"); if (dblines == null) return shows; foreach (var dbline in dblines) { if (dbline.Length < 11) { _parent.Log("Invalid request DATA : " + dbline); continue; } dbline[3] = dbline[3].Length > 3 ? dbline[3] : "0.0"; var show = new ApiTvShow { IdShow = Xbmc.StringToNumber(dbline[0]), Title = dbline[1], Plot = dbline[2], Rating = dbline[3].Substring(0, 3).Trim('.'), Premiered = dbline[4], Genre = dbline[5], IdScraper = dbline[6], Mpaa = dbline[7], Studio = dbline[8], Path = dbline[9], TotalCount = Xbmc.StringToNumber(dbline[10]) }; show.Hash = Xbmc.Hash(show.Path); show.Thumb = @"special://profile/Thumbnails/Video/" + show.Hash[0] + "/" + show.Hash + ".tbn"; show.Fanart = @"special://profile/Thumbnails/Video/Fanart/" + show.Hash + ".tbn"; shows.Add(show); } return shows; }
public Collection<ApiTvShow> GetTvShows() { var shows = new Collection<ApiTvShow>(); if (!_parent.IsConnected()) return shows; var dblines = _parent.IPimpDBCommand(new CommandInfoIPimp { Action = "getallseries" }, "series"); if (dblines == null) return shows; foreach (JsonObject dbline in dblines) { var tvshow = new ApiTvShow { Fanart = (string)dbline["fanart"], Hash = MediaPortal.Hash((string)dbline["name"]), Genre = ((string)dbline["genre"]).Trim('|').Replace("|"," / "), IdShow = Convert.ToInt32(dbline["id"], CultureInfo.InvariantCulture), Mpaa = (string)dbline["mpaa"], Plot = (string)dbline["plot"], Premiered = (string)dbline["firstaired"], Rating = ((string)dbline["rating"]).Replace(',', '.'), Studio = (string)dbline["studio"], Title = (string)dbline["name"], TotalCount = Convert.ToInt32(dbline["episodecount"], CultureInfo.InvariantCulture), Thumb = (string)dbline["thumb"], Path = "", IdScraper = "" }; shows.Add(tvshow); } return shows; }
public Yatse2TvShow(ApiTvShow apiTvShow) { if (apiTvShow == null) return; Title = apiTvShow.Title; IdShow = apiTvShow.IdShow; IdScraper = apiTvShow.IdScraper; Plot = apiTvShow.Plot; Premiered = apiTvShow.Premiered; Rating = apiTvShow.Rating; Genre = apiTvShow.Genre; Mpaa = apiTvShow.Mpaa; Studio = apiTvShow.Studio; Path = apiTvShow.Path; TotalCount = apiTvShow.TotalCount; Hash = apiTvShow.Hash; Thumb = apiTvShow.Thumb; Fanart = apiTvShow.Fanart; Banner = apiTvShow.Banner; Logo = apiTvShow.Logo; }
public ApiTvShow ToApi() { var api = new ApiTvShow { Fanart = Fanart, Hash = Hash, Thumb = Thumb, Genre = Genre, Path = Path, Title = Title, IdScraper = IdScraper, IdShow = IdShow, Mpaa = Mpaa, Plot = Plot, Premiered = Premiered, Rating = Rating, Studio = Studio, TotalCount = TotalCount, Banner = Banner, Logo = Logo }; return api; }
public Collection<ApiTvShow> GetTvShowsRefresh() { var shows = new Collection<ApiTvShow>(); var properties = new JsonArray(new[] { "title", "art","plot", "genre", "fanart", "thumbnail", "rating", "mpaa", "studio", "playcount", "premiered", "episode", "file" }); var param = new JsonObject(); param["properties"] = properties; // First 100 Date sorted var param2 = new JsonObject(); param2.Add("start", 0); param2.Add("end", 10); //Number of TV Shows Quick Refresh Gets var param3 = new JsonObject(); param3.Add("order", "descending"); param3.Add("method", "dateadded"); param.Add("sort", param3); param.Add("limits", param2); var result = (JsonObject)_parent.JsonCommand("VideoLibrary.GetTVShows", param); if (result != null) { if (result.Contains("tvshows")) { foreach (JsonObject genre in (JsonArray)result["tvshows"]) { try { var clearlogo = "NONE"; var banner = "NONE"; // go through art and see. JsonObject results = (JsonObject)genre["art"]; if (results != null) { if (results["clearlogo"] != null) { clearlogo = results["clearlogo"].ToString(); } if (results["banner"] != null) { banner = results["banner"].ToString(); } } var tvShow = new ApiTvShow { Title = genre["title"].ToString(), Plot = genre["plot"].ToString(), Rating = genre["rating"].ToString(), IdScraper = "", Mpaa = genre["mpaa"].ToString(), Genre = _parent.JsonArrayToString((JsonArray)genre["genre"]), Studio = _parent.JsonArrayToString((JsonArray)genre["studio"]), IdShow = (long)(JsonNumber)genre["tvshowid"], TotalCount = (long)(JsonNumber)genre["episode"], Path = genre["file"].ToString(), Premiered = genre["premiered"].ToString(), Thumb = genre["thumbnail"].ToString(), Fanart = genre["fanart"].ToString(), Logo = clearlogo, Banner = banner, Hash = Xbmc.Hash(genre["thumbnail"].ToString()) }; shows.Add(tvShow); } catch (Exception ex) { _parent.Log("GetTVShowsRefresh : Exception Caught: Json seems to equal :" + ex); } } } } return shows; }
public Collection<ApiTvShow> GetTvShows() { //var MovieId = GetMainSelection("TV"); var shows = new Collection<ApiTvShow>(); try { _parent.Trace("Getting TV Shows" + _parent.IP); string NPurl = "http://" + _parent.IP + ":" + _parent.Port + "/emby/Users/" + Globals.CurrentUserID + "/Items?ExcludeLocationTypes=Virtual&Recursive=true&IncludeItemTypes=Series"; var request = WebRequest.CreateHttp(NPurl); request.Method = "get"; request.Timeout = 150000; _parent.Trace("Single TV Show Selection: " + NPurl); var authString = _parent.GetAuthString(); request.Headers.Add("X-MediaBrowser-Token", Globals.EmbyAuthToken); request.Headers.Add("X-Emby-Authorization", authString); request.ContentType = "application/json; charset=utf-8"; request.Accept = "application/json; charset=utf-8"; var response = request.GetResponse(); if (((HttpWebResponse)response).StatusCode == HttpStatusCode.OK) { System.IO.Stream dataStream = response.GetResponseStream(); //REMOVETHIS System.IO.StreamReader reader = new System.IO.StreamReader(dataStream); using (var sr = new System.IO.StreamReader(response.GetResponseStream())) { string json = sr.ReadToEnd(); _parent.Trace("--------------GETTING Single TV Show Selection Result ------" + json + "---***--- END --- END GetTvShows:"); var deserializer = new JavaScriptSerializer(); var ItemData = deserializer.Deserialize<TVShows.Rootobject>(json); _parent.Trace("---------------GetTVShows: TV Show Selection: Issue: Results.Taglines: " + ItemData.TotalRecordCount); foreach (var genre in ItemData.Items) { try { var SingleTVData = GetSingleTVFromSeries(genre.Id); string TempTVGenre = ""; if (SingleTVData.Genres != null && SingleTVData.Genres.Length != 0) { if (SingleTVData.Genres.FirstOrDefault() != null) { TempTVGenre = SingleTVData.Genres.FirstOrDefault().ToString(); } } string TempTVStudios = ""; if (SingleTVData.Studios != null && SingleTVData.Studios.Length != 0) { if (SingleTVData.Studios.FirstOrDefault() != null) { TempTVStudios = SingleTVData.Studios.FirstOrDefault().Name.ToString(); } } var tvShow = new ApiTvShow { Title = genre.Name ?? "Unknown", Plot = SingleTVData.Overview ?? "", Rating = genre.CommunityRating.ToString() ?? "", IdScraper = "", Mpaa = SingleTVData.OfficialRating ?? "Unknown", Genre = TempTVGenre, Studio = TempTVStudios, IdShow = Xbmc.IDtoNumber(genre.Id), TotalCount = (long)(int)genre.RecursiveItemCount, Path = SingleTVData.Path ?? "", Premiered = genre.PremiereDate.ToString("D") ?? "", Thumb = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Primary" ?? "", Fanart = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Backdrop" ?? "", Banner = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Banner" ?? "", Logo = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Logo" ?? "", Hash = Xbmc.Hash(genre.Id) }; shows.Add(tvShow); } catch (Exception ex) { _parent.Trace("TV Shows Exception Caught " + ex); } } } } } catch (Exception Ex) { _parent.Trace("Another tV SHows exception" + Ex); } return shows; }
public Collection<ApiTvShow> GetTvShowsRefresh() { //var MovieId = GetMainSelection("TV"); var shows = new Collection<ApiTvShow>(); try { _parent.Trace("Getting TV Shows REFRESH in TVSHOWS Parent IP: " + _parent.IP); string NPurl = "http://" + _parent.IP + ":" + _parent.Port + "/emby/Users/" + Globals.CurrentUserID + "/Items?Limit=30&Recursive=true&ExcludeLocationTypes=Virtual&SortBy=DateCreated&SortOrder=Descending&IncludeItemTypes=Episode"; var request = WebRequest.CreateHttp(NPurl); request.Method = "get"; request.Timeout = 700000; _parent.Trace("Single REFRESH TV Episode Selection in TVSHOWS: " + _parent.IP + ":" + _parent.Port); var authString = _parent.GetAuthString(); request.Headers.Add("X-MediaBrowser-Token", Globals.EmbyAuthToken); request.Headers.Add("X-Emby-Authorization", authString); request.ContentType = "application/json; charset=utf-8"; request.Accept = "application/json; charset=utf-8"; var response = request.GetResponse(); if (((HttpWebResponse)response).StatusCode == HttpStatusCode.OK) { System.IO.Stream dataStream = response.GetResponseStream(); using (var sr = new System.IO.StreamReader(response.GetResponseStream())) { string json = sr.ReadToEnd(); _parent.Trace("--------------GETTING REFRESH TV Episodes: in TV SHOWS Selection Result ------" + json); var deserializer = new JavaScriptSerializer(); deserializer.MaxJsonLength = Int32.MaxValue; var ItemData = deserializer.Deserialize<TVEpisodes.Rootobject>(json); _parent.Trace("---------------Get Single REFRESH TV Shows in TVSHOWS REfresh Selection: Issue: Results.Taglines: " + ItemData.Items.Count()); foreach (var genre in ItemData.Items) { try { //Use Path to pass data on Item Number to play as API Long can't hold //var SingleTVData = GetSingleTVFromSeries(genre.Id); //Convert Date to sql date to allow sql date sort // // DateTime myDateTime = genre.PremiereDate; // string sqlFormattedDate = myDateTime.ToString("s"); var SingleTVData = GetSingleTVFromSeries(genre.SeriesId); string TempTVGenre = ""; if (SingleTVData.Genres != null && SingleTVData.Genres.Length != 0) { if (SingleTVData.Genres.FirstOrDefault() != null) { TempTVGenre = SingleTVData.Genres.FirstOrDefault().ToString(); } } string TempTVStudios = ""; if (SingleTVData.Studios != null && SingleTVData.Studios.Length != 0) { if (SingleTVData.Studios.FirstOrDefault() != null) { TempTVStudios = SingleTVData.Studios.FirstOrDefault().Name.ToString(); } } var tvShow = new ApiTvShow { Title = genre.SeriesName ?? "Unknown", Plot = SingleTVData.Overview ?? "", Rating = genre.CommunityRating.ToString() ?? "", IdScraper = "", Mpaa = SingleTVData.OfficialRating ?? "Unknown", Genre = TempTVGenre, Studio = TempTVStudios, IdShow = Xbmc.IDtoNumber(genre.SeriesId), TotalCount = (long)(int)SingleTVData.RecursiveItemCount, Path = SingleTVData.Path ?? "", Premiered = SingleTVData.PremiereDate.ToString("D") ?? "", Thumb = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.SeriesId + "/Images/Primary" ?? "", Fanart = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.SeriesId + "/Images/Backdrop" ?? "", Banner = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.ParentBackdropItemId + "/Images/Banner" ?? "", Logo = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.ParentBackdropItemId + "/Images/Logo" ?? "", Hash = Xbmc.Hash(genre.SeriesId) }; shows.Add(tvShow); } catch (Exception ex) { _parent.Trace("TV Shows REFRESH Exception Caught " + ex); } } } } } catch (Exception Ex) { _parent.Trace("Another tV SHows exception" + Ex); } return shows; }