Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
 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;
 }
Exemple #4
0
        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
            };

            return(api);
        }
Exemple #5
0
        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     = XbmcHttp.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 = XbmcHttp.StringToNumber(dbline[10])
                };
                show.Hash   = XbmcHttp.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);
        }
Exemple #7
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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        public Collection <ApiTvShow> GetTvShows()
        {
            //var MovieId = GetMainSelection("TV");
            var shows = new Collection <ApiTvShow>();

            return(shows);

            //

            try
            {
                getallItems("/MCWS/v1/Files/Search?Action=mpl&ActiveFile=-1&Zone=-1&ZoneType=ID&Query=[Media%20Sub%20Type]=[TV%20Show]");
                _parent.Trace("GetTVEpisodes : Parent IP: " + _parent.IP);
                // 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;
                        }
                    }
                    long   PlayCount = 0;
                    string Plays     = "";
                    if (Field.TryGetValue("Number Plays", out Plays))
                    {
                        PlayCount = long.TryParse(Plays, out PlayCount) ? PlayCount : 0;
                    }
                    long   SeasonNumber = 0;
                    string Season       = "";
                    if (Field.TryGetValue("Season", out Season))
                    {
                        SeasonNumber = long.TryParse(Season, out SeasonNumber) ? SeasonNumber : 0;
                    }
                    long   EpisodeNumber = 0;
                    string EpisodeNo     = "";
                    if (Field.TryGetValue("Episode", out EpisodeNo))
                    {
                        EpisodeNumber = long.TryParse(EpisodeNo, out EpisodeNumber) ? EpisodeNumber : 0;
                    }
                    string FileKey   = "";
                    string Thumb2    = "";
                    string Fanart2   = "";
                    string LogoArt   = "";
                    string BannerArt = "";
                    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 LogoPath                = Path.Combine(filePath, "logo.png");
                        var ThumbPath               = Path.Combine(filePath, "poster.jpg");
                        var BannerPath              = Path.Combine(filePath, "banner.jpg");
                        System.IO.FileInfo fi       = new System.IO.FileInfo(fanartPath);
                        System.IO.FileInfo fiLogo   = new System.IO.FileInfo(LogoPath);
                        System.IO.FileInfo fiThumb  = new System.IO.FileInfo(ThumbPath);
                        System.IO.FileInfo fiBanner = new System.IO.FileInfo(BannerPath);
                        //   _parent.Trace("JRiver: ** filePath ** :" + filePath);
                        //   _parent.Trace("JRiver: ** fanArt.Jpg ** :" + fanartPath);
                        //   _parent.Trace("JRiver: ** Logo.Png ** :" + LogoPath);
                        if (fi.Exists)
                        {
                            Fanart2 = fanartPath;  //if fanart.jpg exisits in directory with movie use this otherwise default to JRiver Thumb
                        }
                        if (fiLogo.Exists)
                        {
                            LogoArt = LogoPath;
                        }
                        if (fiThumb.Exists)
                        {
                            Thumb2 = ThumbPath;
                        }
                        if (fiBanner.Exists)
                        {
                            BannerArt = BannerPath;
                        }
                    }
                    string ShowName = Field.ValueOrDefault("Series");

                    if (ShowName == "")
                    {
                        ShowName = "Unknown Series";
                    }
                    long idShow = Xbmc.IDstringtoNumber(ShowName);

                    var tvShow = new ApiTvShow
                    {
                        Title      = ShowName,
                        Plot       = Field.ValueOrDefault("Comment"),
                        Rating     = "",
                        Mpaa       = Field.ValueOrDefault("MPAA Rating"),
                        Studio     = Field.ValueOrDefault("Studio"),
                        Path       = Field.ValueOrDefault("Filename"),
                        IdScraper  = "",
                        Genre      = Field.ValueOrDefault("Genre"),
                        IdShow     = idShow,
                        TotalCount = 0,
                        Premiered  = Field.ValueOrDefault("Date (readable)"),
                        Thumb      = Thumb2,
                        Fanart     = Fanart2,
                        Banner     = BannerArt,
                        Logo       = LogoArt,
                        Hash       = Xbmc.Hash(FileKey)
                    };

                    if (isTVshow && !shows.Any(a => a.IdShow == idShow))
                    {
                        _parent.Trace("JRiver: New Show Found: Adding Show:" + ShowName);
                        shows.Add(tvShow);
                    }
                }
            }
            catch (Exception ex)
            {
                _parent.Trace("TV Shows REFRESH Exception Caught " + ex);
            }
            return(shows);
        }
Exemple #10
0
        public Collection <ApiTvShow> GetTvShowsRefresh()
        {
            //var MovieId = GetMainSelection("TV");



            var shows = new Collection <ApiTvShow>();

            return(shows);

            // No refresh possible for Jriver that I can see

            try
            {
                getallItems("/MCWS/v1/Files/Search?Action=mpl&ActiveFile=-1&Zone=-1&ZoneType=ID&Query=[Media%20Sub%20Type]=[TV%20Show]");
                _parent.Trace("GetTVEpisodes : Parent IP: " + _parent.IP);
                // 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;
                        }
                    }
                    long   PlayCount = 0;
                    string Plays     = "";
                    if (Field.TryGetValue("Number Plays", out Plays))
                    {
                        PlayCount = long.TryParse(Plays, out PlayCount) ? PlayCount : 0;
                    }
                    long   SeasonNumber = 0;
                    string Season       = "";
                    if (Field.TryGetValue("Season", out Season))
                    {
                        SeasonNumber = long.TryParse(Season, out SeasonNumber) ? SeasonNumber : 0;
                    }
                    long   EpisodeNumber = 0;
                    string EpisodeNo     = "";
                    if (Field.TryGetValue("Episode", out EpisodeNo))
                    {
                        EpisodeNumber = long.TryParse(EpisodeNo, out EpisodeNumber) ? EpisodeNumber : 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 ?? "";
                    }

                    string tvdb = "0";
                    if (Field.TryGetValue("TheTVDB Series ID", out tvdb))
                    {
                        _parent.Trace("TVDB found");
                    }
                    _parent.Trace(" *****************");
                    _parent.Trace(Field.ValueOrDefault("Series"));
                    _parent.Trace(Field.ValueOrDefault("Comment"));
                    _parent.Trace(Field.ValueOrDefault("MPAA Rating"));
                    _parent.Trace(Field.ValueOrDefault("Studio"));
                    _parent.Trace("2" + Field.ValueOrDefault("Genre"));
                    _parent.Trace("3" + Field.ValueOrDefault("Filename"));
                    _parent.Trace("4" + Field.ValueOrDefault("Genre"));
                    _parent.Trace("5" + Xbmc.IDtoNumber(tvdb).ToString());
                    _parent.Trace("6" + Field.ValueOrDefault(@"Date (readable)"));
                    _parent.Trace(Thumb2);
                    _parent.Trace(Fanart2);
                    _parent.Trace(Xbmc.Hash(FileKey));

                    var tvShow = new ApiTvShow
                    {
                        Title      = Field.ValueOrDefault("Series"),
                        Plot       = Field.ValueOrDefault("Comment"),
                        Rating     = "",
                        Mpaa       = Field.ValueOrDefault("MPAA Rating"),
                        Studio     = Field.ValueOrDefault("Studio"),
                        Path       = Field.ValueOrDefault("Filename"),
                        IdScraper  = "",
                        Genre      = Field.ValueOrDefault("Genre"),
                        IdShow     = Xbmc.IDtoNumber(tvdb),
                        TotalCount = 0,
                        Premiered  = Field.ValueOrDefault("Date (readable)"),
                        Thumb      = Thumb2,
                        Fanart     = Fanart2,
                        Banner     = "NoBannerAddCodetoCheckPath",
                        Logo       = "NoLogoCheckCodetoCheckLogo",
                        Hash       = Xbmc.Hash(FileKey)
                    };
                    if (isTVshow && !shows.Contains(tvShow))
                    {
                        shows.Add(tvShow);
                    }
                }
            }
            catch (Exception ex)
            {
                _parent.Trace("TV Shows REFRESH Exception Caught " + ex);
            }
            return(shows);
        }