Exemplo n.º 1
0
 /// <summary>
 /// Create a series object with all the information contained in the TvdbSeriesFields object
 /// </summary>
 /// <param name="_fields"></param>
 internal TvdbSeries(TvdbSeriesFields _fields)
     : this()
 {
     AddLanguage(_fields);
     SetLanguage(_fields.Language);
     //UpdateTvdbFields(_fields, true);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Update all fields of the object with the given information
        /// </summary>
        /// <param name="_fields">the fields for the update</param>
        /// <param name="_replaceEpisodes">Should the episodes be replaced or kept</param>
        internal void UpdateTvdbFields(TvdbSeriesFields _fields, bool _replaceEpisodes)
        {
            //Update series details
            this.Id            = _fields.Id;
            this.Actors        = _fields.Actors;
            this.AirsDayOfWeek = _fields.AirsDayOfWeek;
            this.AirsTime      = _fields.AirsTime;
            this.ContentRating = _fields.ContentRating;
            this.FirstAired    = _fields.FirstAired;
            this.Genre         = _fields.Genre;
            this.ImdbId        = _fields.ImdbId;
            this.Language      = _fields.Language;
            this.Network       = _fields.Network;
            this.Overview      = _fields.Overview;
            this.Rating        = _fields.Rating;
            this.Runtime       = _fields.Runtime;
            this.TvDotComId    = _fields.TvDotComId;
            this.SeriesName    = _fields.SeriesName;
            this.Status        = _fields.Status;
            this.BannerPath    = _fields.BannerPath;
            this.FanartPath    = _fields.FanartPath;
            this.PosterPath    = _fields.PosterPath;
            this.LastUpdated   = _fields.LastUpdated;
            this.Zap2itId      = _fields.Zap2itId;

            if (_replaceEpisodes)
            {
                if (this.Episodes != null && _fields.EpisodesLoaded)
                {
                    //check for each episode if episode images have been loaded...
                    //if yes -> copy image
                    foreach (TvdbEpisode f in _fields.Episodes)
                    {
                        foreach (TvdbEpisode e in this.Episodes)
                        {
                            if (e.Id == f.Id && e.Banner != null && e.Banner.IsLoaded)
                            {
                                f.Banner = e.Banner;
                                break;
                            }
                        }
                    }
                }
                this.EpisodesLoaded = _fields.EpisodesLoaded;
                this.Episodes.Clear();
                this.Episodes.AddRange(_fields.Episodes);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Add a new language to the series
        /// </summary>
        /// <param name="_fields"></param>
        internal void AddLanguage(TvdbSeriesFields _fields)
        {
            if (m_seriesTranslations == null)
            {
                m_seriesTranslations = new Dictionary <TvdbLanguage, TvdbSeriesFields>();
            }

            //delete translation if it already exists and overwrite it with a new one
            foreach (KeyValuePair <TvdbLanguage, TvdbSeriesFields> kvp in m_seriesTranslations)
            {
                if (kvp.Key.Abbriviation.Equals(_fields.Language.Abbriviation))
                {
                    m_seriesTranslations.Remove(kvp.Key);
                }
            }

            m_seriesTranslations.Add(_fields.Language, _fields);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Add a new language to the series
        /// </summary>
        /// <param name="_fields"></param>
        internal void AddLanguage(TvdbSeriesFields _fields)
        {
            if (m_seriesTranslations == null)
            {
                m_seriesTranslations = new Dictionary <TvdbLanguage, TvdbSeriesFields>();
            }

            //delete translation if it already exists and overwrite it with a new one
            if (m_seriesTranslations.ContainsKey(_fields.Language))
            {
                m_seriesTranslations.Remove(_fields.Language);
            }

            /*foreach (KeyValuePair<TvdbLanguage, TvdbSeriesFields> kvp in m_seriesTranslations)
             * {
             * if (kvp.Key == _fields.Language)
             * {
             *  m_seriesTranslations.Remove(kvp.Key);
             * }
             * }*/

            m_seriesTranslations.Add(_fields.Language, _fields);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Extract all the series fields that are available on thetvdb
        /// <![CDATA[
        /// <?xml version="1.0" encoding="UTF-8" ?>
        /// <Data>
        ///    <Series>
        ///       <id>73739</id>
        ///       <Actors>|Malcolm David Kelley|Jorge Garcia|Maggie Grace|...|</Actors>
        ///       <Airs_DayOfWeek>Thursday</Airs_DayOfWeek>
        ///       <Airs_Time>9:00 PM</Airs_Time>
        ///       <ContentRating>TV-14</ContentRating>
        ///       <FirstAired>2004-09-22</FirstAired>
        ///       <Genre>|Action and Adventure|Drama|Science-Fiction|</Genre>
        ///       <IMDB_ID>tt0411008</IMDB_ID>
        ///       <Language>en</Language>
        ///       <Network>ABC</Network>
        ///       <Overview>After Oceanic Air flight 815...</Overview>
        ///       <Rating>8.9</Rating>
        ///       <Runtime>60</Runtime>
        ///       <SeriesID>24313</SeriesID>
        ///       <SeriesName>Lost</SeriesName>
        ///       <Status>Continuing</Status>
        ///       <banner>graphical/24313-g2.jpg</banner>
        ///       <fanart>fanart/original/73739-1.jpg</fanart>
        ///       <lastupdated>1205694666</lastupdated>
        ///       <zap2it_id>SH672362</zap2it_id>
        ///    </Series>
        ///  
        /// </Data>
        /// ]]>
        /// </summary>
        /// <param name="_data"></param>
        /// <returns></returns>
        internal List<TvdbSeriesFields> ExtractSeriesFields(String _data)
        {
            //Stopwatch watch = new Stopwatch();
              //watch.Start();
              XDocument xml = XDocument.Parse(_data);

              var allSeries = from series in xml.Descendants("Series")
                      select new
                      {
                        Id = series.Element("id").Value,
                        Actors = series.Element("Actors").Value,
                        Airs_DayOfWeek = series.Element("Airs_DayOfWeek").Value,
                        Airs_Time = series.Element("Airs_Time").Value,
                        ContentRating = series.Element("ContentRating").Value,
                        FirstAired = series.Element("FirstAired").Value,
                        Genre = series.Element("Genre").Value,
                        IMDB_ID = series.Element("IMDB_ID").Value,
                        Language = series.Element("Language").Value,
                        Network = series.Element("Network").Value,
                        Overview = series.Element("Overview").Value,
                        Rating = series.Element("Rating").Value,
                        Runtime = series.Element("Runtime").Value,
                        SeriesID = series.Element("SeriesID").Value,
                        SeriesName = series.Element("SeriesName").Value,
                        Status = series.Element("Status").Value,
                        banner = series.Elements("banner").Count() == 1 ? series.Element("banner").Value : "",
                        fanart = series.Elements("fanart").Count() == 1 ? series.Element("fanart").Value : "",
                        poster = series.Elements("poster").Count() == 1 ? series.Element("poster").Value : "",
                        lastupdated = series.Element("lastupdated").Value,
                        zap2it_id = series.Element("zap2it_id").Value
                      };

              List<TvdbSeriesFields> retList = new List<TvdbSeriesFields>();
              foreach (var s in allSeries)
              {
            TvdbSeriesFields series = new TvdbSeriesFields();
            series.Id = Util.Int32Parse(s.Id);
            series.Actors = Util.SplitTvdbString(s.Actors);
            series.AirsDayOfWeek = Util.GetDayOfWeek(s.Airs_DayOfWeek);
            series.AirsTime = s.Airs_Time;
            series.ContentRating = s.ContentRating;
            series.FirstAired = Util.ParseDateTime(s.FirstAired);
            series.Genre = Util.SplitTvdbString(s.Genre);
            series.ImdbId = s.IMDB_ID;
            series.Language = Util.ParseLanguage(s.Language);
            series.Network = s.Network;
            series.Overview = s.Overview;
            series.Rating = Util.DoubleParse(s.Rating);
            series.Runtime = Util.DoubleParse(s.Runtime);
            series.TvDotComId = Util.Int32Parse(s.SeriesID);
            series.SeriesName = s.SeriesName;
            series.Status = s.Status;
            series.BannerPath = s.banner;
            series.FanartPath = s.fanart;
            series.PosterPath = s.poster;
            series.LastUpdated = Util.UnixToDotNet(s.lastupdated);
            series.Zap2itId = s.zap2it_id;
            if (series.Id != -99) retList.Add(series);
              }

              //watch.Stop();
              //Log.Debug("Extracted " + retList.Count + " series in " + watch.ElapsedMilliseconds + " milliseconds");
              return retList;
        }
Exemplo n.º 6
0
        /// <summary>
        /// Add a new language to the series
        /// </summary>
        /// <param name="_fields"></param>
        internal void AddLanguage(TvdbSeriesFields _fields)
        {
            if (m_seriesTranslations == null)
              {
            m_seriesTranslations = new Dictionary<TvdbLanguage, TvdbSeriesFields>();
              }

              //delete translation if it already exists and overwrite it with a new one
              if (m_seriesTranslations.ContainsKey(_fields.Language))
              {
            m_seriesTranslations.Remove(_fields.Language);
              }
              /*foreach (KeyValuePair<TvdbLanguage, TvdbSeriesFields> kvp in m_seriesTranslations)
              {
            if (kvp.Key == _fields.Language)
            {
              m_seriesTranslations.Remove(kvp.Key);
            }
              }*/

              m_seriesTranslations.Add(_fields.Language, _fields);
        }
Exemplo n.º 7
0
 /// <summary>
 /// Create a series object with all the information contained in the TvdbSeriesFields object
 /// </summary>
 /// <param name="_fields"></param>
 internal TvdbSeries(TvdbSeriesFields _fields)
     : this()
 {
     AddLanguage(_fields);
       SetLanguage(_fields.Language);
       //UpdateTvdbFields(_fields, true);
 }
Exemplo n.º 8
0
        /// <summary>
        /// Update all fields of the object with the given information
        /// </summary>
        /// <param name="_fields">the fields for the update</param>
        /// <param name="_replaceEpisodes">Should the episodes be replaced or kept</param>
        internal void UpdateTvdbFields(TvdbSeriesFields _fields, bool _replaceEpisodes)
        {
            //Update series details
              this.Id = _fields.Id;
              this.Actors = _fields.Actors;
              this.AirsDayOfWeek = _fields.AirsDayOfWeek;
              this.AirsTime = _fields.AirsTime;
              this.ContentRating = _fields.ContentRating;
              this.FirstAired = _fields.FirstAired;
              this.Genre = _fields.Genre;
              this.ImdbId = _fields.ImdbId;
              this.Language = _fields.Language;
              this.Network = _fields.Network;
              this.Overview = _fields.Overview;
              this.Rating = _fields.Rating;
              this.Runtime = _fields.Runtime;
              this.TvDotComId = _fields.TvDotComId;
              this.SeriesName = _fields.SeriesName;
              this.Status = _fields.Status;
              this.BannerPath = _fields.BannerPath;
              this.FanartPath = _fields.FanartPath;
              this.PosterPath = _fields.PosterPath;
              this.LastUpdated = _fields.LastUpdated;
              this.Zap2itId = _fields.Zap2itId;

              if (_replaceEpisodes)
              {
            if (this.Episodes != null && _fields.EpisodesLoaded)
            {
              //check for each episode if episode images have been loaded...
              //if yes -> copy image
              foreach (TvdbEpisode f in _fields.Episodes)
              {
            foreach (TvdbEpisode e in this.Episodes)
            {
              if (e.Id == f.Id && e.Banner != null && e.Banner.IsLoaded)
              {
                f.Banner = e.Banner;
                break;
              }
            }
              }
            }
            this.EpisodesLoaded = _fields.EpisodesLoaded;
            this.Episodes.Clear();
            this.Episodes.AddRange(_fields.Episodes);
              }
        }
Exemplo n.º 9
0
        /// <summary>
        /// Add a new language to the series
        /// </summary>
        /// <param name="_fields"></param>
        internal void AddLanguage(TvdbSeriesFields _fields)
        {
            if (m_seriesTranslations == null)
              {
            m_seriesTranslations = new Dictionary<TvdbLanguage, TvdbSeriesFields>();
              }

              //delete translation if it already exists and overwrite it with a new one
              foreach (KeyValuePair<TvdbLanguage, TvdbSeriesFields> kvp in m_seriesTranslations)
              {
            if (kvp.Key.Abbriviation.Equals(_fields.Language.Abbriviation))
            {
              m_seriesTranslations.Remove(kvp.Key);
            }
              }

              m_seriesTranslations.Add(_fields.Language, _fields);
        }