Beispiel #1
0
        public Collection <ApiMovie> GetMovies()
        {
            var movies  = new Collection <ApiMovie>();
            var MovieId = GetMainSelection("Movies");

            try
            {
                _parent.Trace("Getting Main Movie Database Result" + _parent.IP);
                string NPurl = "http://" + _parent.IP + ":" + _parent.Port + "/emby/Users/" + Globals.CurrentUserID + "/Items?ParentId=" + MovieId;

                var request = WebRequest.CreateHttp(NPurl);

                request.Method  = "get";
                request.Timeout = 150000;
                _parent.Trace("Main Selection: " + _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();
                    //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 All Movies Results ------" + json);

                        var deserializer = new JavaScriptSerializer();

                        var ItemData = deserializer.Deserialize <Movies.Rootobject>(json);

                        _parent.Trace("---------------Get Worlds Result:  Issue: Results.Count: " + ItemData.Items.Count);

                        foreach (var id in ItemData.Items)
                        {
                            try
                            {
                                SingleMovieItem.Rootobject Movieitem = GetSingleMovieItem(id.Id);
                                string newDirector = "";
                                bool   index       = Movieitem.People.Any(item => item.Type == "Director");
                                if (index == true)
                                {
                                    newDirector = Movieitem.People.First(i => i.Type == "Director").Name.ToString();
                                }

                                var Seconds      = Convert.ToInt64(id.RunTimeTicks);
                                var RoundSeconds = Math.Round(Seconds / 10000000.00, 1);


                                var movie = new ApiMovie
                                {
                                    Title         = Movieitem.Name ?? "Unknown",
                                    Plot          = Movieitem.Overview ?? "Unknown",
                                    Votes         = Movieitem.VoteCount.ToString() ?? "0",
                                    Rating        = id.CommunityRating.ToString() ?? "0",
                                    Year          = id.ProductionYear,
                                    Tagline       = Movieitem.Taglines.FirstOrDefault() ?? "Might be a good movie",
                                    IdScraper     = Movieitem.ProviderIds.Imdb ?? "",
                                    Length        = new TimeSpan(0, 0, 0, Convert.ToInt32(RoundSeconds)).ToString() ?? "Unknown",
                                    Mpaa          = id.OfficialRating ?? "Unknown",
                                    Genre         = Movieitem.Genres.FirstOrDefault() ?? "Unknown",
                                    Director      = newDirector ?? "",
                                    OriginalTitle = id.Name ?? "",
                                    Studio        = Movieitem.Studios.FirstOrDefault().Name ?? "Unknown",
                                    IdFile        = 0,
                                    IdMovie       = Xbmc.IDtoNumber(Movieitem.Id),
                                    FileName      = Movieitem.Path ?? "",
                                    Path          = Movieitem.Id ?? "",
                                    PlayCount     = Movieitem.UserData.PlayCount,
                                    Thumb         = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + id.Id + "/Images/Primary",
                                    Fanart        = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + id.Id + "/Images/Backdrop",
                                    Hash          = Xbmc.Hash(id.Id)
                                };
                                movies.Add(movie);
                            }

                            catch (Exception ex)
                            {
                                _parent.Trace("Exception with Movie Name :" + ex);
                            }
                        }


                        /*
                         *                _nowPlaying.FanartURL = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + server.PrimaryItemId + "/Images/Backdrop";
                         *                _nowPlaying.ThumbURL = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + server.PrimaryItemId + "/Images/Primary";
                         */
                    }
                }
            }
            catch (Exception ex)
            {
                _parent.Trace("ERROR in Main Movies obtaining: " + ex);
            }


            /*
             *
             * var properties = new JsonArray(new[] { "title", "plot", "genre", "year", "fanart", "thumbnail", "playcount", "studio", "rating", "runtime", "mpaa", "originaltitle", "director", "votes" });
             * var param = new JsonObject();
             * param["properties"] = properties;
             * var result = (JsonObject)_parent.JsonCommand("VideoLibrary.GetMovies", param);
             * if (result != null)
             * {
             * if (result.Contains("movies"))
             * {
             *  foreach (JsonObject genre in (JsonArray)result["movies"])
             *  {
             *    try
             *    {
             *      var t = TimeSpan.FromSeconds((long)(JsonNumber)genre["runtime"]);
             *      var duration = string.Format("{0:D2}:{1:D2}", t.Hours, t.Minutes);
             *      var movie = new ApiMovie
             *        {
             *
             *          Title = genre["title"].ToString(),
             *          Plot = genre["plot"].ToString(),
             *          Votes = genre["votes"].ToString(),
             *          Rating = genre["rating"].ToString(),
             *          Year = (long)(JsonNumber)genre["year"],
             *          IdScraper = "",
             *          Length = duration,
             *          Mpaa = genre["mpaa"].ToString(),
             *          Genre = _parent.JsonArrayToString((JsonArray)genre["genre"]),
             *          Director = _parent.JsonArrayToString((JsonArray)genre["director"]),
             *          OriginalTitle = genre["originaltitle"].ToString(),
             *          Studio = _parent.JsonArrayToString((JsonArray)genre["studio"]),
             *          IdFile = 0,
             *          IdMovie = (long)(JsonNumber)genre["movieid"],
             *          FileName = "",
             *          Path = "",
             *          PlayCount = 0,
             *          Thumb = genre["thumbnail"].ToString(),
             *          Fanart = genre["fanart"].ToString(),
             *          Hash = Xbmc.Hash(genre["thumbnail"].ToString())
             *        };
             *      movies.Add(movie);
             *    }
             *    catch (Exception)
             *    {
             *    }
             *  }
             * }
             * }
             */
            return(movies);
        }
Beispiel #2
0
        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?Recursive=true&IncludeItemTypes=Series";

                var request = WebRequest.CreateHttp(NPurl);

                request.Method  = "get";
                request.Timeout = 150000;
                _parent.Trace("Single TV Show Selection: " + _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();
                    //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);

                        var deserializer = new JavaScriptSerializer();

                        var ItemData = deserializer.Deserialize <TVShows.Rootobject>(json);
                        _parent.Trace("---------------Get Single TV Show Selection:  Issue: Results.Taglines: " + ItemData.TotalRecordCount);

                        foreach (var genre in ItemData.Items)
                        {
                            try
                            {
                                var SingleTVData = GetSingleTVFromSeries(genre.Id);

                                var tvShow = new ApiTvShow
                                {
                                    Title      = genre.Name ?? "Unknown",
                                    Plot       = SingleTVData.Overview ?? "",
                                    Rating     = genre.CommunityRating.ToString() ?? "",
                                    IdScraper  = "",
                                    Mpaa       = SingleTVData.OfficialRating ?? "Unknown",
                                    Genre      = SingleTVData.Genres.FirstOrDefault().ToString() ?? "",
                                    Studio     = SingleTVData.Studios.FirstOrDefault().Name.ToString() ?? "",
                                    IdShow     = Xbmc.IDtoNumber(genre.Id),
                                    TotalCount = genre.RecursiveItemCount,
                                    Path       = SingleTVData.Path ?? "",
                                    Premiered  = genre.PremiereDate.ToString() ?? "",
                                    Thumb      = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Primary" ?? "",
                                    Fanart     = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Backdrop" ?? "",
                                    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);
        }
Beispiel #3
0
        public Collection <ApiTvSeason> GetTvSeasons()
        {
            var seasons = new Collection <ApiTvSeason>();

            try
            {
                _parent.Trace("Getting TV Seasons" + _parent.IP);
                string NPurl = "http://" + _parent.IP + ":" + _parent.Port + "/emby/Users/" + Globals.CurrentUserID + "/Items?Recursive=true&IncludeItemTypes=Season";

                var request = WebRequest.CreateHttp(NPurl);

                request.Method  = "get";
                request.Timeout = 150000;
                _parent.Trace("Single TV Season Selection: " + _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();
                    //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 Season Selection Result ------" + json);

                        var deserializer = new JavaScriptSerializer();

                        var ItemData = deserializer.Deserialize <TVSeasons.Rootobject>(json);
                        _parent.Trace("---------------Get Single TV Season Selection:  Issue: Results.Taglines: " + ItemData.TotalRecordCount);

                        foreach (var genre in ItemData.Items)
                        {
                            try
                            {
                                //var SingleTVData = GetSingleTVFromSeries(genre.Id);

                                var tvShow = new ApiTvSeason
                                {
                                    SeasonNumber = genre.IndexNumber,
                                    IdShow       = Xbmc.IDtoNumber(genre.SeriesId),
                                    Show         = genre.SeriesName ?? "",
                                    Thumb        = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Primary" ?? "",
                                    EpisodeCount = genre.ChildCount,
                                    Fanart       = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.SeriesId + "/Images/Backdrop" ?? "",
                                    Hash         = Xbmc.Hash(genre.Id)
                                };
                                seasons.Add(tvShow);

/*
 *                        var tvShow = new ApiTvShow
 *                        {
 *
 *                            Title = genre.Name ?? "Unknown",
 *                            Plot = SingleTVData.Overview ?? "",
 *                            Rating = genre.CommunityRating.ToString() ?? "",
 *                            IdScraper = "",
 *                            Mpaa = SingleTVData.OfficialRating ?? "Unknown",
 *                            Genre = SingleTVData.Genres.FirstOrDefault().ToString() ?? "",
 *                            Studio = SingleTVData.Studios.FirstOrDefault().Name.ToString() ?? "",
 *                            IdShow = Xbmc.IDtoNumber(genre.Id),
 *                            TotalCount = genre.RecursiveItemCount,
 *                            Path = SingleTVData.Path ?? "",
 *                            Premiered = genre.PremiereDate.ToString() ?? "",
 *                            Thumb = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Primary" ?? "",
 *                            Fanart = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Backdrop" ?? "",
 *                            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);
            }


            /*
             * var properties = new Jayrock.Json.JsonArray(new[] { "title" });
             * var param = new JsonObject();
             * param["properties"] = properties;
             *
             *
             * var result = (JsonObject)_parent.JsonCommand("VideoLibrary.GetTVShows", param);
             *
             *
             * if (result != null)
             * {
             *  if (result.Contains("tvshows"))
             *  {
             *    foreach (JsonObject show in (JsonArray)result["tvshows"])
             *    {
             *      var properties2 =
             *        new JsonArray(new[] { "tvshowid", "fanart", "thumbnail", "season", "showtitle", "episode" });
             *      var param2 = new JsonObject();
             *      param2["properties"] = properties2;
             *      param2["tvshowid"] = (long)(JsonNumber)show["tvshowid"];
             *      var result2 = (JsonObject)_parent.JsonCommand("VideoLibrary.GetSeasons", param2);
             *      if (result2 == null) continue;
             *      if (!result2.Contains("seasons")) continue;
             *      foreach (JsonObject genre in (JsonArray)result2["seasons"])
             *      {
             *        try
             *        {
             *          var tvShow = new ApiTvSeason
             *            {
             *              SeasonNumber = (long)(JsonNumber)genre["season"],
             *              IdShow = (long)(JsonNumber)genre["tvshowid"],
             *              Show = genre["showtitle"].ToString(),
             *              Thumb = genre["thumbnail"].ToString(),
             *              EpisodeCount = (long)(JsonNumber)genre["episode"],
             *              Fanart = genre["fanart"].ToString(),
             *              Hash = Xbmc.Hash(genre["thumbnail"].ToString())
             *            };
             *          seasons.Add(tvShow);
             *        }
             *        catch (Exception)
             *        {
             *        }
             *      }
             *    }
             *  }
             * }
             */
            return(seasons);
        }
Beispiel #4
0
        public Collection <ApiTvEpisode> GetTvEpisodes()
        {
            var episodes = new Collection <ApiTvEpisode>();

            try
            {
                _parent.Trace("Getting TV Episodes: Parent IP: " + _parent.IP);
                string NPurl = "http://" + _parent.IP + ":" + _parent.Port + "/emby/Users/" + Globals.CurrentUserID + "/Items?Recursive=true&IncludeItemTypes=Episode";

                var request = WebRequest.CreateHttp(NPurl);

                request.Method  = "get";
                request.Timeout = 150000;
                _parent.Trace("Single TV Episode Selection: " + _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();
                    //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 TV Episodes Selection Result ------" + json);

                        var deserializer = new JavaScriptSerializer();
                        deserializer.MaxJsonLength = Int32.MaxValue;
                        var ItemData = deserializer.Deserialize <TVEpisodes.Rootobject>(json);
                        _parent.Trace("---------------Get Single TV Episode Selection:  Issue: Results.Taglines: " + ItemData.TotalRecordCount);

                        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);
                                var tvShow = new ApiTvEpisode
                                {
                                    Title     = genre.Name ?? "",
                                    Plot      = "",
                                    Rating    = genre.OfficialRating ?? "",
                                    Mpaa      = "",
                                    Date      = genre.PremiereDate.ToString(),
                                    Director  = "",
                                    PlayCount = genre.UserData.PlayCount,
                                    Studio    = "",
                                    IdEpisode = Xbmc.IDtoNumber(genre.Id),
                                    IdShow    = Xbmc.IDtoNumber(genre.SeriesId),
                                    Season    = genre.ParentIndexNumber,
                                    Episode   = genre.IndexNumber,
                                    Path      = genre.Id ?? "",
                                    ShowTitle = genre.SeriesName ?? "",
                                    Thumb     = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.Id + "/Images/Primary" ?? "",
                                    Fanart    = "http://" + _parent.IP + ":" + _parent.Port + "/Items/" + genre.SeriesId + "/Images/Backdrop" ?? "",
                                    Hash      = Xbmc.Hash(genre.Id)
                                };
                                episodes.Add(tvShow);
                            }
                            catch (Exception ex)
                            {
                                _parent.Trace("TV Shows Exception Caught " + ex);
                            }
                        }
                    }
                }
            }
            catch (Exception Ex)
            {
                _parent.Trace("Another tV Episodes exception" + Ex);
            }

            /*
             * var properties = new JsonArray(new[] { "title", "plot", "season", "episode", "showtitle", "tvshowid", "fanart", "thumbnail", "rating", "playcount", "firstaired" });
             * var param = new JsonObject();
             * param["properties"] = properties;
             * var result = (JsonObject)_parent.JsonCommand("VideoLibrary.GetEpisodes", param);
             * if (result != null)
             * {
             * if (result.Contains("episodes"))
             * {
             *  foreach (JsonObject genre in (JsonArray)result["episodes"])
             *  {
             *    try
             *    {
             *      var tvShow = new ApiTvEpisode
             *        {
             *          Title = genre["title"].ToString(),
             *          Plot = genre["plot"].ToString(),
             *          Rating = genre["rating"].ToString(),
             *          Mpaa = "",
             *          Date = genre["firstaired"].ToString(),
             *          Director = "",
             *          PlayCount = 0,
             *          Studio = "",
             *          IdEpisode = (long)(JsonNumber)genre["episodeid"],
             *          IdShow = (long)(JsonNumber)genre["tvshowid"],
             *          Season = (long)(JsonNumber)genre["season"],
             *          Episode = (long)(JsonNumber)genre["episode"],
             *          Path = "",
             *          ShowTitle = genre["showtitle"].ToString(),
             *          Thumb = genre["thumbnail"].ToString(),
             *          Fanart = genre["fanart"].ToString(),
             *          Hash = Xbmc.Hash(genre["thumbnail"].ToString())
             *        };
             *      episodes.Add(tvShow);
             *    }
             *    catch (Exception)
             *    {
             *    }
             *  }
             * }
             * }
             */
            return(episodes);
        }