Exemplo n.º 1
0
        private TheTVDBSeries GetFullSeriesData(int seriesId)
        {
            //http://www.thetvdb.com/api/FC18699D6C4514F7/series/79488/all/en.zip
            UriBuilder builder = new UriBuilder(string.Format("http://www.thetvdb.com/api/{0}/series/{1}/", API_KEY, seriesId));

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(builder.Uri);

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {
                using (Stream resStream = response.GetResponseStream()) {
                    XmlDocument xDoc = new XmlDocument();
                    xDoc.Load(resStream);

                    XmlNodeList seriesNodes = xDoc.SelectNodes("//Data/Series");
                    foreach (XmlNode seriesNode in seriesNodes)
                    {
                        XmlNode idNode = seriesNode.SelectSingleNode("id");
                        if (seriesId == Int32.Parse(idNode.ChildNodes[0].Value))
                        {
                            TheTVDBSeries series = new TheTVDBSeries();
                            series.Id = seriesId;

                            XmlNode contentRatingNode = seriesNode.SelectSingleNode("ContentRating");
                            if (contentRatingNode.ChildNodes.Count > 0)
                            {
                                series.ContentRating = contentRatingNode.ChildNodes[0].Value;
                            }

                            XmlNode genreNode = seriesNode.SelectSingleNode("Genre");
                            if (genreNode.ChildNodes.Count > 0)
                            {
                                series.Genre = genreNode.ChildNodes[0].Value;
                            }

                            XmlNode imdbidNode = seriesNode.SelectSingleNode("IMDB_ID");
                            if (imdbidNode.ChildNodes.Count > 0)
                            {
                                series.IMDBId = imdbidNode.ChildNodes[0].Value;
                            }

                            XmlNode networkNode = seriesNode.SelectSingleNode("Network");
                            if (networkNode.ChildNodes.Count > 0)
                            {
                                series.network = networkNode.ChildNodes[0].Value;
                            }

                            XmlNode runtimeNode = seriesNode.SelectSingleNode("Runtime");
                            if (runtimeNode.ChildNodes.Count > 0)
                            {
                                series.Runtime = Int16.Parse(runtimeNode.ChildNodes[0].Value);
                            }

                            XmlNode seriesNameNode = seriesNode.SelectSingleNode("SeriesName");
                            if (seriesNameNode.ChildNodes.Count > 0)
                            {
                                series.SeriesName = seriesNameNode.ChildNodes[0].Value;
                            }

                            XmlNode bannerNode = seriesNode.SelectSingleNode("banner");
                            if (bannerNode.ChildNodes.Count > 0)
                            {
                                series.BannerUrl = "http://images.thetvdb.com/banners/" + bannerNode.ChildNodes[0].Value;
                            }

                            XmlNode fanartNode = seriesNode.SelectSingleNode("fanart");
                            if (fanartNode.ChildNodes.Count > 0)
                            {
                                series.FanartUrl = "http://images.thetvdb.com/banners/" + fanartNode.ChildNodes[0].Value;
                            }

                            XmlNode posterNode = seriesNode.SelectSingleNode("poster");
                            if (posterNode.ChildNodes.Count > 0)
                            {
                                series.PosterUrl = posterNode.ChildNodes[0].Value;
                            }

                            XmlNode zap2itNode = seriesNode.SelectSingleNode("zap2it_id");
                            if (zap2itNode.ChildNodes.Count > 0)
                            {
                                series.Zap2ItId = zap2itNode.ChildNodes[0].Value;
                            }

                            return(series);
                        }
                    }
                }
            }
            return(null);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Queries tvdb to get a list of tc shows matching 'SeriesName'
        /// </summary>
        /// <param name="SeriesName"></param>
        private void SearchForTVShow(string SeriesName)
        {
            // Reset current series ID
            SeriesID = 0;

            UriBuilder uri = new UriBuilder("http://www.thetvdb.com/api/GetSeries.php");

            uri.Query = "seriesname=" + SeriesName;

            results = new List <TheTVDBDbResult>();


            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri.Uri);

            // execute the request
            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {
                string mirrorpath = "";
                int    typemask   = 0;

                // we will read data via the response stream
                using (Stream resStream = response.GetResponseStream())
                {
                    XmlTextReader reader = new XmlTextReader(resStream);
                    reader.WhitespaceHandling = WhitespaceHandling.None;

                    while (reader.Read())
                    {
                        if (reader.NodeType == XmlNodeType.Element)
                        {
                            if (reader.Name.ToLower() == "series")
                            {
                                TheTVDBDbResult result = new TheTVDBDbResult();

                                //TheTVDBDbResult title = GetTitleFromMovieNode(reader);

                                //if (title != null)
                                //    results.Add(title);
                                while (reader.Read())
                                {
                                    if (reader.NodeType == XmlNodeType.Element)
                                    {
                                        switch (reader.Name.ToLower())
                                        {
                                        case "seriesid":
                                            result.Id = int.Parse(GetElementValue(reader));
                                            break;

                                        //case "language":
                                        //    result. = GetElementValue(reader);
                                        //    break;
                                        case "seriesname":
                                            result.Title.Name = GetElementValue(reader);
                                            break;

                                        case "banner":
                                            TheTVDBSeries seriesObj = GetFullSeriesData(result.Id);
                                            if (seriesObj != null)
                                            {
                                                result.ImageUrl = seriesObj.PosterUrl;
                                            }
                                            break;

                                        case "overview":
                                            result.Title.Synopsis = GetElementValue(reader);
                                            break;

                                        case "firstAired":
                                            result.Title.ReleaseDate = DateTime.Parse(GetElementValue(reader));
                                            break;

                                        //case "IMDB_ID":
                                        //    typemask = int.Parse(GetElementValue(reader));
                                        //    break;
                                        //case "zap2it_id":
                                        //    typemask = int.Parse(GetElementValue(reader));
                                        //    break;
                                        //case "id":
                                        //    typemask = int.Parse(GetElementValue(reader));
                                        //    break;
                                        //case "IMDB_ID":
                                        //    typemask = int.Parse(GetElementValue(reader));
                                        //    break;
                                        default:
                                            break;
                                        }
                                    }

                                    else if (reader.NodeType == XmlNodeType.EndElement && reader.Name.ToLower() == "series")
                                    {
                                        results.Add(result);
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        private TheTVDBSeries GetFullSeriesData(int seriesId)
        {
            //http://www.thetvdb.com/api/FC18699D6C4514F7/series/79488/all/en.zip
            UriBuilder builder = new UriBuilder(string.Format("http://www.thetvdb.com/api/{0}/series/{1}/", API_KEY, seriesId));

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(builder.Uri);

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) {
                using (Stream resStream = response.GetResponseStream()) {
                    XmlDocument xDoc = new XmlDocument();
                    xDoc.Load(resStream);

                    XmlNodeList seriesNodes = xDoc.SelectNodes("//Data/Series");
                    foreach (XmlNode seriesNode in seriesNodes) {
                        XmlNode idNode = seriesNode.SelectSingleNode("id");
                        if (seriesId == Int32.Parse(idNode.ChildNodes[0].Value)) {
                            TheTVDBSeries series = new TheTVDBSeries();
                            series.Id = seriesId;

                            XmlNode contentRatingNode = seriesNode.SelectSingleNode("ContentRating");
                            if (contentRatingNode.ChildNodes.Count > 0)
                            {
                                series.ContentRating = contentRatingNode.ChildNodes[0].Value;
                            }

                            XmlNode genreNode = seriesNode.SelectSingleNode("Genre");
                            if (genreNode.ChildNodes.Count > 0)
                            {
                                series.Genre = genreNode.ChildNodes[0].Value;
                            }

                            XmlNode imdbidNode = seriesNode.SelectSingleNode("IMDB_ID");
                            if (imdbidNode.ChildNodes.Count > 0)
                            {
                                series.IMDBId = imdbidNode.ChildNodes[0].Value;
                            }

                            XmlNode networkNode = seriesNode.SelectSingleNode("Network");
                            if (networkNode.ChildNodes.Count > 0)
                            {
                                series.network = networkNode.ChildNodes[0].Value;
                            }

                            XmlNode runtimeNode = seriesNode.SelectSingleNode("Runtime");
                            if (runtimeNode.ChildNodes.Count > 0)
                            {
                                series.Runtime = Int16.Parse(runtimeNode.ChildNodes[0].Value);
                            }

                            XmlNode seriesNameNode = seriesNode.SelectSingleNode("SeriesName");
                            if (seriesNameNode.ChildNodes.Count > 0)
                            {
                                series.SeriesName = seriesNameNode.ChildNodes[0].Value;
                            }

                            XmlNode bannerNode = seriesNode.SelectSingleNode("banner");
                            if (bannerNode.ChildNodes.Count > 0)
                            {
                                series.BannerUrl = "http://images.thetvdb.com/banners/" + bannerNode.ChildNodes[0].Value;
                            }

                            XmlNode fanartNode = seriesNode.SelectSingleNode("fanart");
                            if (fanartNode.ChildNodes.Count > 0)
                            {
                                series.FanartUrl = "http://images.thetvdb.com/banners/" + fanartNode.ChildNodes[0].Value;
                            }

                            XmlNode posterNode = seriesNode.SelectSingleNode("poster");
                            if (posterNode.ChildNodes.Count > 0)
                            {
                                series.PosterUrl = posterNode.ChildNodes[0].Value;
                            }

                            XmlNode zap2itNode = seriesNode.SelectSingleNode("zap2it_id");
                            if (zap2itNode.ChildNodes.Count > 0)
                            {
                                series.Zap2ItId = zap2itNode.ChildNodes[0].Value;
                            }

                            return series;
                        }
                    }
                }
            }
            return null;
        }