コード例 #1
0
        public Collection <ApiTvSeason> GetTvSeasons()
        {
            var seasons = new Collection <ApiTvSeason>();

            if (!_parent.IsConnected())
            {
                return(seasons);
            }
            var dblines = _parent.IPimpDBCommand(new CommandInfoIPimp {
                Action = "getallseasons"
            }, "seasons");

            if (dblines == null)
            {
                return(seasons);
            }

            foreach (JsonObject dbline in dblines)
            {
                var tvSeason = new ApiTvSeason
                {
                    Fanart       = (string)dbline["fanart"],
                    Hash         = MediaPortal.Hash((string)dbline["id"]),
                    IdShow       = 0,
                    Thumb        = (string)dbline["thumb"],
                    EpisodeCount = Convert.ToInt32(dbline["episodecount"], CultureInfo.InvariantCulture),
                    SeasonNumber = Convert.ToInt32(dbline["seasonnumber"], CultureInfo.InvariantCulture),
                    Show         = (string)dbline["show"]
                };

                seasons.Add(tvSeason);
            }

            return(seasons);
        }
コード例 #2
0
        public Collection <ApiTvSeason> GetTvSeasons()
        {
            var seasons = new Collection <ApiTvSeason>();

            var properties = new 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);
        }
コード例 #3
0
 public Yatse2TvSeason(ApiTvSeason apiTvSeason)
 {
     if (apiTvSeason == null)
     {
         return;
     }
     IdShow       = apiTvSeason.IdShow;
     SeasonNumber = apiTvSeason.SeasonNumber;
     Thumb        = apiTvSeason.Thumb;
     Fanart       = apiTvSeason.Fanart;
     EpisodeCount = apiTvSeason.EpisodeCount;
     Hash         = apiTvSeason.Hash;
     Show         = apiTvSeason.Show;
 }
コード例 #4
0
        public ApiTvSeason ToApi()
        {
            var api = new ApiTvSeason
            {
                Fanart       = Fanart,
                Hash         = Hash,
                Show         = Show,
                Thumb        = Thumb,
                IdShow       = IdShow,
                EpisodeCount = EpisodeCount,
                SeasonNumber = SeasonNumber
            };

            return(api);
        }
コード例 #5
0
ファイル: Xbmc.VideoLibrary.cs プロジェクト: kronic/Yatse2
        public Collection <ApiTvSeason> GetTvSeasons()
        {
            var          seasons = new Collection <ApiTvSeason>();
            const string req     = "SELECT idShow, COUNT(idShow), c12, strPath,strTitle FROM episodeview GROUP BY idShow,c12";

            var showHashes = new Hashtable();

            var dblines = _parent.DBCommand("video", req);

            if (dblines == null)
            {
                return(seasons);
            }
            foreach (var dbline in dblines)
            {
                if (dbline.Length < 4)
                {
                    _parent.Log("Invalid request DATA : " + dbline);
                    continue;
                }
                var season = new ApiTvSeason
                {
                    EpisodeCount = Xbmc.StringToNumber(dbline[1]),
                    IdShow       = Xbmc.StringToNumber(dbline[0]),
                    SeasonNumber = Xbmc.StringToNumber(dbline[2]),
                    Show         = dbline[4]
                };

                var temp = dbline[3];
                season.Fanart = @"special://profile/Thumbnails/Video/Fanart/" + Xbmc.Hash(temp) + ".tbn";
                char[] charsToTrim = { '/' };
                temp = temp.TrimEnd(charsToTrim);
                var hash = Xbmc.Hash("season" + temp);
                season.Thumb = @"special://profile/Thumbnails/Video/" + hash[0] + "/" + hash + ".tbn";
                season.Hash  = temp;
                seasons.Add(season);
            }

            foreach (var season in seasons)
            {
                if (!showHashes.ContainsKey(season.IdShow))
                {
                    showHashes.Add(season.IdShow, season.Show);
                }
            }

            return(seasons);
        }
コード例 #6
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);
        }
コード例 #7
0
        public Collection <ApiTvSeason> GetTvSeasonsRefresh()
        {
            var seasons = new Collection <ApiTvSeason>();

            var properties = new JsonArray(new[] { "title" });
            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 show in (JsonArray)result["tvshows"])
                    {
                        var properties2 =
                            new JsonArray(new[] { "tvshowid", "fanart", "thumbnail", "season", "showtitle", "episode" });
                        var param22 = new JsonObject();
                        param22["properties"] = properties2;
                        param22["tvshowid"]   = (long)(JsonNumber)show["tvshowid"];

                        var result2 = (JsonObject)_parent.JsonCommand("VideoLibrary.GetSeasons", param22);
                        if (result2 == null)
                        {
                            continue;
                        }
                        if (!result2.Contains("seasons"))
                        {
                            continue;
                        }
                        foreach (JsonObject genre in (JsonArray)result2["seasons"])
                        {
                            try
                            {
                                _parent.Trace("Kodi QuickRefresh Seasons:  SeasonNumber:" + (long)(JsonNumber)genre["season"]);
                                _parent.Trace("Kodi QuickRefresh Seasons:  IdShow:" + (long)(JsonNumber)genre["tvshowid"]);
                                _parent.Trace("Kodi QuickRefresh Seasons:  Show:" + genre["showtitle"].ToString());
                                _parent.Trace("Kodi QuickRefresh Seasons:  Thumb:" + genre["thumbnail"].ToString());
                                _parent.Trace("Kodi QuickRefresh Seasons:  EpisodeCount:" + (long)(JsonNumber)genre["episode"]);
                                _parent.Trace("Kodi QuickRefresh Seasons:  Fanart:" + genre["fanart"].ToString());
                                _parent.Trace("Kodi QuickRefresh Seasons:  Hash:" + genre["thumbnail"].ToString());

                                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);
        }
コード例 #8
0
        public Collection <ApiTvSeason> GetTvSeasons()
        {
            var seasons = new Collection <ApiTvSeason>();

            //
            return(seasons);

            //

            try
            {
                // Load full database...
                getallItems("/MCWS/v1/Files/Search?Action=mpl&ActiveFile=-1&Zone=-1&ZoneType=ID&Query=[Media%20Sub%20Type]=[TV%20Show]");

                // iterate through Items
                foreach (var Field in Allitems)
                {
                    var result   = "";
                    var isTVshow = false;
                    if (Field.TryGetValue("Media Sub Type", out result))
                    {
                        if (result == "TV Show")
                        {
                            isTVshow = true;
                        }
                        else
                        {
                            continue;
                        }
                    }
                    var SeriesName = "";
                    if (Field.TryGetValue("Series", out result))
                    {
                        SeriesName = result;
                    }
                    long   SeasonNumber = 0;
                    string Season       = "";
                    if (Field.TryGetValue("Season", out Season))
                    {
                        SeasonNumber = long.TryParse(Season, out SeasonNumber) ? SeasonNumber : 0;
                    }
                    string FileKey = "";
                    string Thumb2  = "";
                    string Fanart2 = "";
                    if (Field.TryGetValue("Key", out FileKey))
                    {
                        Thumb2  = "http://" + _parent.IP + ":" + _parent.Port + "/MCWS/v1/File/GetImage?File=" + FileKey + "&FileType=Key&Type=Thumbnail&Format=jpg&Token=" + _parent.JRiverAuthToken ?? "";
                        Fanart2 = "http://" + _parent.IP + ":" + _parent.Port + "/MCWS/v1/File/GetImage?File=" + FileKey + "&FileType=Key&Type=Full&Format=jpg&Token=" + _parent.JRiverAuthToken ?? "";
                    }
                    var filename = Field.ValueOrDefault("Filename");
                    if (filename != null & filename != "")
                    {
                        var filePath               = Path.GetDirectoryName(Field.ValueOrDefault("Filename"));
                        var fanartPath             = Path.Combine(filePath, "fanart.jpg");
                        var ThumbPath              = Path.Combine(filePath, "poster.jpg");
                        System.IO.FileInfo fi      = new System.IO.FileInfo(fanartPath);
                        System.IO.FileInfo fiThumb = new System.IO.FileInfo(ThumbPath);
                        if (fi.Exists)
                        {
                            Fanart2 = fanartPath;  //if fanart.jpg exisits in directory with movie use this otherwise default to JRiver Thumb
                        }
                        if (fiThumb.Exists)
                        {
                            Thumb2 = ThumbPath;
                        }
                    }
                    string tvdb = "0";

                    string ShowName = Field.ValueOrDefault("Series");

                    if (ShowName == "")
                    {
                        ShowName = "Unknown Series";
                    }

                    var tvShow = new ApiTvSeason
                    {
                        SeasonNumber = SeasonNumber,
                        IdShow       = Xbmc.IDstringtoNumber(ShowName),
                        Show         = SeriesName ?? "",
                        Thumb        = Thumb2 ?? "",
                        EpisodeCount = 1,   //bit of a hack but if date sorted - latest episode should be highest - so for most should be right.
                        Fanart       = Fanart2 ?? "",
                        Hash         = Xbmc.Hash(ShowName)
                    };
                    // need to check is season and make sure isn't already added

                    if (isTVshow && !seasons.Contains(tvShow))
                    {
                        seasons.Add(tvShow);
                    }
                }
            }
            catch (Exception ex)
            {
                _parent.Trace("TV Shows Exception Caught " + ex);
            }
            return(seasons);
        }
コード例 #9
0
        public Collection <ApiTvSeason> GetTvSeasonsRefresh()
        {
            var seasons = new Collection <ApiTvSeason>();

            return(seasons);

            // no refresh possible for Jrvier

            try
            {
                // Load full database...
                getallItems("/MCWS/v1/Files/Search?Action=mpl&ActiveFile=-1&Zone=-1&ZoneType=ID&Query=[Media%20Sub%20Type]=[TV%20Show]");

                // iterate through Items
                foreach (var Field in Allitems)
                {
                    var result   = "";
                    var isTVshow = false;
                    if (Field.TryGetValue("Media Sub Type", out result))
                    {
                        if (result == "TV Show")
                        {
                            isTVshow = true;
                        }
                    }
                    var SeriesName = "";
                    if (Field.TryGetValue("Series", out result))
                    {
                        SeriesName = result;
                    }
                    long   SeasonNumber = 0;
                    string Season       = "";
                    if (Field.TryGetValue("Season", out Season))
                    {
                        SeasonNumber = long.TryParse(Season, out SeasonNumber) ? SeasonNumber : 0;
                    }
                    string tvdb = "0";
                    if (Field.TryGetValue("TheTVDB Series ID", out tvdb))
                    {
                        tvdb = tvdb;
                    }

                    string FileKey = "";
                    string Thumb   = "";
                    string Fanart  = "";
                    if (Field.TryGetValue("Key", out FileKey))
                    {
                        Thumb  = "http://" + _parent.IP + ":" + _parent.Port + "/MCWS/v1/File/GetImage?File=" + FileKey + "&FileType=Key&Type=Thumbnail&Format=jpg&Token=" + _parent.JRiverAuthToken ?? "";
                        Fanart = "http://" + _parent.IP + ":" + _parent.Port + "/MCWS/v1/File/GetImage?File=" + FileKey + "&FileType=Key&Type=Full&Format=jpg&Token=" + _parent.JRiverAuthToken ?? "";
                    }
                    //var SingleTVData = GetSingleTVFromSeries(genre.Id);
                    //_parent.Trace("---Emby QuickRefresh GetTVSeasons--- Season Number:" + SeasonNumber);
                    //_parent.Trace("---Emby QuickRefresh GetTVSeasons--- ID Show:" + Xbmc.IDtoNumber(SeriesName));
                    //_parent.Trace("---Emby QuickRefresh GetTVSeasons--- Series Name:" + SeriesName);
                    //_parent.Trace("---Emby QuickRefresh GetTVSeasons--- Thumb:" + Thumb);
                    //_parent.Trace("---Emby QuickRefresh GetTVSeasons--- Child Count:" + 1);
                    //_parent.Trace("---Emby QuickRefresh GetTVSeasons--- Fanart:" + Fanart);
                    //_parent.Trace("---Emby QuickRefresh GetTVSeasons--- Hash:" + Xbmc.Hash(SeriesName));

                    var tvShow = new ApiTvSeason
                    {
                        SeasonNumber = SeasonNumber,
                        IdShow       = Xbmc.IDtoNumber(tvdb),
                        Show         = SeriesName ?? "",
                        Thumb        = Thumb ?? "",
                        EpisodeCount = 1,   //bit of a hack but if date sorted - latest episode should be highest - so for most should be right.
                        Fanart       = Fanart ?? "",
                        Hash         = Xbmc.Hash(SeriesName)
                    };
                    // need to check is season and make sure isn't already added

                    if (isTVshow && !seasons.Contains(tvShow))
                    {
                        seasons.Add(tvShow);
                    }
                }
            }
            catch (Exception ex)
            {
                _parent.Trace("TV Shows Exception Caught " + ex);
            }
            return(seasons);
        }