public MainWindowViewModel()
 {
     TvdbHandler = new TvdbHandler("49FF3082EF06CF50");
     GetShowsFromIsolatedStorage();
     SelectedDayEpisodes = new ObservableCollection<String>();
     GetDayEpisodes(DateTime.Today);
 }
示例#2
0
        void UpdateFormFinishedThreadSafe(TvdbHandler.UpdateFinishedEventArgs _event)
        {
            if (!InvokeRequired)
              {
            try
            {
              cmdAbortUpdate.Enabled = false;

              StringBuilder b = new StringBuilder();
              b.AppendLine("Update finished in " + (_event.UpdateFinished - _event.UpdateStarted).TotalSeconds + " seconds");
              b.AppendLine("Updated the following (" + _event.UpdatedSeries.Count + ") series");
              b.AppendLine("==============================");
              foreach (int s in _event.UpdatedSeries)
              {
            b.AppendLine(s.ToString());
              }
              b.AppendLine("");
              b.AppendLine("Updated the following (" + _event.UpdatedEpisodes.Count + ") episodes");
              b.AppendLine("==============================");
              foreach (int e in _event.UpdatedEpisodes)
              {
            b.AppendLine(e.ToString());
              }

              txtUpdateProgress.Text = b.ToString();
              cmdApply.Enabled = true;
            }
            catch (Exception ex)
            {
              Console.WriteLine(ex.ToString());
            }
              }
              else
            Invoke(new UpdateFormFinishedThreadSafeDelegate(UpdateFormFinishedThreadSafe), new object[] { _event });
        }
示例#3
0
        private bool DownloadImage(string serverPath, string title, int season, int episode)
        {
            string apiKey = ConfigurationManager.AppSettings["tvdb.API.key"];
            if (string.IsNullOrWhiteSpace(apiKey))
                return false;

            var handler = new TvdbHandler(apiKey);
            var downloader = new TvdbDownloader(apiKey);

            var searchResult = handler.SearchSeries(title);
            if (searchResult != null && searchResult.Count > 0)
            {
                var result = searchResult.First();
                int sId = result.Id;

                var banner = GetLoadedBanner(downloader, sId, season, episode, result.Banner);

                if (banner == null)
                    return false;

                banner.BannerImage.Save(serverPath);
                return true;
            }

            return false;
        }
示例#4
0
 private void cmdInit_Click(object sender, EventArgs e)
 {
     m_tvdbHandler = new TvdbHandler(new XmlCacheProvider("C:\\test"), "E8D8A47528D5B5AD");
       m_tvdbHandler.InitCache();
       cmdEnd.Enabled = true;
       cmdLoadSeries.Enabled = true;
 }
示例#5
0
 public MemoryTest()
 {
     InitializeComponent();
       m_rootFolder = Application.StartupPath + "\\Cache";
       m_tvdbHandler = new TvdbHandler(new XmlCacheProvider(m_rootFolder), File.ReadAllText("api_key.txt"));
       m_loadedSeries = new Dictionary<int, TvdbSeries>();
 }
示例#6
0
 public UpdateForm(TvdbHandler _handler, Interval _interval, bool _useZip)
 {
     InitializeComponent();
       m_tvdbHandler = _handler;
       m_interval = _interval;
       m_useZip = _useZip;
       cmdApply.Enabled = false;
       cmdAbortUpdate.Enabled = true;
       m_tvdbHandler.UpdateProgressed += new TvdbHandler.UpdateProgressDelegate(m_tvdbHandler_UpdateProgressed);
       m_tvdbHandler.UpdateFinished += new TvdbHandler.UpdateFinishedDelegate(m_tvdbHandler_UpdateFinished);
       m_updateThread = new Thread(new ThreadStart(DoUpdating));
       m_updateThread.Priority = ThreadPriority.BelowNormal;
       m_updateThread.Name = "Updating Thread";
       m_updateThread.Start();
 }
示例#7
0
 private void cmdInit_Click(object sender, EventArgs e)
 {
     m_tvdbHandler = new TvdbHandler(new XmlCacheProvider("C:\\test"), Resources.API_KEY);
       m_series = m_tvdbHandler.GetBasicSeries(80370, TvdbLanguage.DefaultLanguage, true);
       int count = 0;
       fanartControl1.NumberOfImages = m_series.FanartBanners.Count;
       foreach (TvdbFanartBanner fb in m_series.FanartBanners)
       {
     if(fb.IsThumbLoaded || fb.LoadThumb())
     {
       fanartControl1.SetImage(fb, count);
       count++;
     }
       }
 }
示例#8
0
 public EPG_Control_V3(string SourceDirectory)
 {
   this.sourceDirectory = SourceDirectory;
   currentTime = DateTime.Now;
   lastTime = DateTime.Now.AddHours(4);
   incrementalTime = new System.TimeSpan(0, 30, 0);
   epg_Data = new EPG_Program_Channel();
   epg_Times = new EPG_Time();
   epg_SelectedItem = new EPG_SelectedItem();
   tvdbHandler = new TvdbHandler(new XmlCacheProvider("C:\\test"), "572328F18DC4374A");
   tvdbHandler.InitCache();
   client = new TMDbClient("ecaa9ae8c8346269b53c80e2a61aa0ea");
   client.GetConfig();
   epg_ChannelIndex = 0;
   epg_ProgramIndex = 0;
 }
示例#9
0
        public static TvdbHandler GetTvdbHandler()
        {
            if (m_tvdbHandler == null)
            {
                //using caching.
                if (m_cacheProvider == null)
                {
                    //setup caching folder in App_Data.
                    string rootFolder = HttpContext.Current.Server.MapPath("~/App_Data/TVDB");
                    if (!Directory.Exists(rootFolder)) Directory.CreateDirectory(rootFolder);
                    m_cacheProvider = new XmlCacheProvider(rootFolder);
                }

                //create new tvdbHandler.
                m_tvdbHandler = new TvdbHandler(m_cacheProvider, ConfigurationManager.AppSettings["TVDB_API_KEY"]);
            }
            return m_tvdbHandler;
        }
示例#10
0
 public EPG_Control_V4(string SourceDirectory)
 {
   this.sourceDirectory = SourceDirectory;;
   if (DateTime.Now.Minute < 30)
     currentTime = DateTime.Now.AddMinutes(-DateTime.Now.Minute);
   else
     currentTime = DateTime.Now.AddMinutes(30 - DateTime.Now.Minute);
   currentSelectedTime = currentTime;
   lastTime = currentTime.AddHours(2);
   currentChannel = 0;
   lastChannel = 2;
   incrementalTime = new System.TimeSpan(0, 30, 0);
   epg_Data = new EPG_Program_Channel();
   epg_Times = new EPG_Time();
   epg_SelectedItem = new EPG_SelectedItem();
   tvdbHandler = new TvdbHandler(new XmlCacheProvider("C:\\test"), "572328F18DC4374A");
   tvdbHandler.InitCache();
   client = new TMDbClient("ecaa9ae8c8346269b53c80e2a61aa0ea");
   client.GetConfig();
 }
        public TVDBTVShowMetadataSource(IFileSystem fileSystem, string apiKey)
        {
            // Set fileSystem.
            _fileSystem = fileSystem;

            // Make cache directory.
            var assemblyName = Assembly.GetExecutingAssembly().GetName().Name;
            _tvdbCacheDirectory = _fileSystem.DirectoryInfo.FromDirectoryName(_fileSystem.Path.Combine(_fileSystem.Path.GetTempPath(), assemblyName + _fileSystem.Path.DirectorySeparatorChar +"TVDBCache"));
            if(!_tvdbCacheDirectory.Exists)
            {
                _tvdbCacheDirectory.Create();
            }

            // Initalise handler with cache.
            _tvdbHandler = new TvdbHandler(new XmlCacheProvider(_tvdbCacheDirectory.FullName), apiKey);
            if(!_tvdbHandler.IsCacheInitialised)
            {
                _tvdbHandler.InitCache();
            }
        }
示例#12
0
        public Dvd getDvdDetails(string volumeTitle)
        {
            var api = new TheMovieDB.TmdbAPI(_movieApiKey);
            var movies = api.MovieSearch(volumeTitle);
            if (movies.Length > 0)
            {
                var movie = movies[0];
                var info = api.GetMovieInfo(movie.Id);
                var tags = from c in info.Categories
                           where c.Type == "genre"
                           select c.Name;

                var returnDvd = new Dvd { Id = movie.Id, Title = movie.Name, Year = string.Format("{0:yyyy}", info.Released), Tags = tags.ToArray<string>(), Type = DvdType.Movie };
                return returnDvd;
            }
            else
            {
                var tvdb = new TvdbHandler(null, _tvApiKey);
                var tvdbSearchResult = tvdb.SearchSeries(volumeTitle);
                var seriesIds = tvdbSearchResult.ToDictionary(result => result.Id, result => result.SeriesName);

                foreach (var seriesId in seriesIds)
                {
                    var series = tvdb.GetSeries(seriesId.Key, TvdbLanguage.DefaultLanguage, true, false, false);
                    foreach (var episode in series.GetEpisodesAbsoluteOrder())
                    {
                        //Console.WriteLine("Series: {0}\n\rName: {1}\n\rId: {2}\n\rNumber: {3}\n\rGenre: {4}\n\r\n\r",
                        //                  seriesId.Value,
                        //                  episode.EpisodeName,
                        //                  episode.Id,
                        //                  episode.EpisodeNumber,
                        //                  series.GenreString);
                        //Console.WriteLine(episode.ToString());
                    }
                }

                return new Dvd() { Type = DvdType.Tv, Year = tvdbSearchResult[0].FirstAired.ToString() };
            }
        }
示例#13
0
    public EPG_Control_V2(string SourceDirectory)
    {
      this.sourceDirectory = SourceDirectory;
      epg_Data = new EPG_Program_Channel();
      epg_Times = new EPG_Time();
      epg_SelectedItem = new EPG_SelectedItem();
      tvdbHandler = new TvdbHandler(new XmlCacheProvider("C:\\test"), "572328F18DC4374A");
      tvdbHandler.InitCache();
      client = new TMDbClient("ecaa9ae8c8346269b53c80e2a61aa0ea");
      client.GetConfig();
      epg_ChannelIndex = 0;
      epg_ProgramIndex = 0;
      incTimeSpan = new TimeSpan(0, 30, 0);
      int ts = 0;

      if (DateTime.Now.Minute < 30)      
        ts = -(DateTime.Now.Minute);      
      else      
        ts = 30 - DateTime.Now.Minute;        
      
      currentTime = DateTime.Now.AddMinutes(ts);
      lastTime = currentTime.AddHours(2);
    }
示例#14
0
 void m_tvdbHandler_UpdateFinished(TvdbHandler.UpdateFinishedEventArgs _event)
 {
     UpdateFormFinishedThreadSafe(_event);
 }
示例#15
0
 void m_tvdbHandler_UpdateProgressed(TvdbHandler.UpdateProgressEventArgs _event)
 {
     UpdateFormThreadSafe(_event);
 }
示例#16
0
        void UpdateFormThreadSafe(TvdbHandler.UpdateProgressEventArgs _event)
        {
            try
              {
            if (!InvokeRequired)
            {

              switch (_event.CurrentUpdateStage)
              {
            case TvdbHandler.UpdateProgressEventArgs.UpdateStage.downloading:
              lblUpdateStage.Text = "Downloading updates";
              break;
            case TvdbHandler.UpdateProgressEventArgs.UpdateStage.seriesupdate:
              lblUpdateStage.Text = "Updating series";
              break;
            case TvdbHandler.UpdateProgressEventArgs.UpdateStage.episodesupdate:
              lblUpdateStage.Text = "Updating episode";
              break;
            case TvdbHandler.UpdateProgressEventArgs.UpdateStage.bannerupdate:
              lblUpdateStage.Text = "Updating banners";
              break;
            case TvdbHandler.UpdateProgressEventArgs.UpdateStage.finishupdate:
              lblUpdateStage.Text = "Updating Finished";
              break;
              }

              ibUpdateProgress.BarFillProcent = _event.CurrentStageProgress;
              txtUpdateProgress.Text = _event.CurrentUpdateDescription;

            }
            else
              Invoke(new UpdateFormThreadSafeDelegate(UpdateFormThreadSafe), new object[] { _event });
              }
              catch (Exception ex)
              {
            Console.WriteLine(ex.ToString());
              }
        }
示例#17
0
        void UpdateFormFinishedThreadSafe(TvdbHandler.UpdateFinishedEventArgs _event)
        {
            if (!InvokeRequired)
              {
            m_updatedEpisodes = _event.UpdatedEpisodes;
            m_updatedSeries = _event.UpdatedSeries;

            //store all updated series in a list
            foreach (int s in _event.UpdatedSeries)
            {
              m_afterUpdateList.Add(m_tvdbHandler.GetSeries(s, TvdbLanguage.DefaultLanguage, true, true, true));
            }

            for (int i = 0; i < lvCachedSeries.Items.Count; i++)
            {
              if (_event.UpdatedSeries.Contains((int)lvCachedSeries.Items[i].Tag))
              {
            lvCachedSeries.Items[i].BackColor = Color.Orange;
              }
            }
              }
              else
            Invoke(new UpdateFormFinishedThreadSafeDelegate(UpdateFormFinishedThreadSafe), new object[] { _event });
        }
示例#18
0
 void m_tvdbHandler_UpdateFinished(TvdbHandler.UpdateFinishedEventArgs _event)
 {
     UpdateFormFinishedThreadSafe(_event);
       //throw new NotImplementedException();
 }
示例#19
0
 public IEnumerable<Serie> GetSeries(string searchText)
 {
     TvdbHandler tvdbHandler = new TvdbHandler(null, _apiKey);
     var result = tvdbHandler.SearchSeries(searchText);
     return result.Select(x => new Serie { SerieId = x.Id, Name = x.SeriesName});
 }
 public SettingsWindow(TvdbHandler handler, ObservableCollection<TvdbSeries> shows)
 {
     ViewModel = new SettingsWindowViewModel(handler, shows);
     InitializeComponent();
 }
示例#21
0
        private TvdbSeries LookupShow(string name)
        {
            Reporting.Log("Looking up show: " + name);
            TvdbHandler handler = new TvdbHandler(TvdbApiKey);

            List<TvdbSearchResult> results = handler.SearchSeries(name);

            TvdbSearchResult first = results.First();
            return handler.GetBasicSeries(first.Id, TvdbLanguage.DefaultLanguage, true);
        }
示例#22
0
        private void init()
        {
            string cache = PluginSettings.TvDbLibCache;
              string tvdbid = "BBB734ABE146900D";  // mine, don't abuse it!!!
              tvdbHandler = new TvdbHandler(new XmlCacheProvider(cache),tvdbid);
              tvdbHandler.InitCache();

              seriesNameMapping = PluginSettings.TvDbSeriesMappings;
        }
示例#23
0
 private void cmdInit_Click(object sender, EventArgs e)
 {
     m_tvdbHandler = new TvdbHandler(new XmlCacheProvider("C:\\test"), "");
       m_tvdbHandler.InitCache();
       cmdEnd.Enabled = true;
 }
示例#24
0
 public TvDbProvider(EnvironmentProvider environmentProvider)
 {
     _environmentProvider = environmentProvider;
     _handler = new TvdbHandler(new XmlCacheProvider(_environmentProvider.GetCacheFolder()), TVDB_APIKEY);
 }
示例#25
0
        private void cmdInit_Click(object sender, EventArgs e)
        {
            m_tvdbHandler = new TvdbHandler(new XmlCacheProvider("C:\\test"), File.ReadAllText("api_key.txt"));
              m_tvdbHandler.InitCache();
              //m_tvdbHandler.ClearCache();
              //m_tvdbHandler.GetBasicSeries(73545, TvdbLanguage.DefaultLanguage, false);
              //TvdbSeries s = m_tvdbHandler.GetSeries(73545, TvdbLanguage.DefaultLanguage, true, true, true);

              List<TvdbLanguage> lang = m_tvdbHandler.Languages;
              cmdTest1.Enabled = true;
              cmdTestZip.Enabled = true;
              cmdGetEpisodes.Enabled = true;
              cmdEnd.Enabled = true;
              cmdSetUser.Enabled = true;
              cmdGetEpisodeAired.Enabled = true;
        }
示例#26
0
        private TvdbEpisode LookupEpisode(TVShow Show, TVSeason Season, Int32 EpisodeNumber)
        {
            TvdbHandler Handler = new TvdbHandler(TvdbApiKey);

            return Handler.GetEpisode(Show.TvdbId, Season.SeasonNumber, EpisodeNumber, TvdbEpisode.EpisodeOrdering.DefaultOrder, TvdbLanguage.DefaultLanguage);
        }
示例#27
0
        private void revertToThisRevisionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            CacheRevision rev = (CacheRevision)lbCacheSnapshots.SelectedItem;

              if (MessageBox.Show("Really revert to Revision " + rev.Name + " from " + rev.Date.ToShortDateString() + "?",
                         "Revert", MessageBoxButtons.YesNo) == DialogResult.Yes)
              {
            m_tvdbHandler.CloseCache();
            m_tvdbHandler = null;
            m_beforeUpdateList.Clear();

            if (Directory.Exists(txtCacheLocation.Text))
            {
              Directory.Delete(txtCacheLocation.Text, true);
            }

            FastZip zip = new FastZip();
            zip.ExtractZip(rev.CreateFileName(), txtCacheLocation.Text, "");

            InitTvdblibHandler();
              }
        }
 public SettingsWindowViewModel(TvdbHandler handler, ObservableCollection<TvdbSeries> shows)
 {
     TvdbHandler = handler;
     Shows = shows;
 }
示例#29
0
        /// <summary>
        /// Initialise the form
        /// </summary>
        /// <param name="_userId"></param>
        public void InitialiseForm(String _userId, ICacheProvider _provider)
        {
            //m_tvdbHandler = new Tvdb(new BinaryCacheProvider(@"cachefile.bin"), Resources.API_KEY);new XmlCacheProvider("XmlCache")

              m_tvdbHandler = new TvdbHandler(_provider, Resources.API_KEY);
              m_tvdbHandler.InitCache();

              List<TvdbLanguage> m_languages = m_tvdbHandler.Languages;

              foreach (TvdbLanguage l in m_languages)
              {
            if (l.Abbriviation.Equals("en")) m_currentLanguage = l;
            cbLanguage.Items.Add(l);
              }
              lblCurrentLanguage.Text = "[" + m_currentLanguage.ToString() + "]";

              //enable/disable community features
              if (_userId != null)
              {
            TvdbUser user = new TvdbUser("user", _userId);
            m_tvdbHandler.UserInfo = user;
            List<TvdbSeries> favList = null;
            try
            {
              user.UserPreferredLanguage = m_tvdbHandler.GetPreferredLanguage();
              favList = m_tvdbHandler.GetUserFavorites(user.UserPreferredLanguage);
            }
            catch (TvdbInvalidApiKeyException ex)
            {
              MessageBox.Show(ex.Message);
            }
            catch (TvdbNotAvailableException ex)
            {
              MessageBox.Show(ex.Message);
            }

            if (favList != null)
            {
              foreach (TvdbSeries s in favList)
              {
            if (s != null)
            {
              cbUserFavourites.Items.Add(s);
            }
              }
            }
              }
              else
              {
            cbUserFavourites.Text = "No userinfo set";
            cbUserFavourites.Enabled = false;
              }

              cmdAddRemoveFavorites.Enabled = false;
              cmdSendSeriesRating.Enabled = false;
              raterSeriesYourRating.Enabled = false;
        }
示例#30
0
 private TvdbEpisode LookupEpisode(int TvdbId, int SeasonNumber, int EpisodeNumber)
 {
     TvdbHandler handler = new TvdbHandler("572AD6335A69FAB2");
     return handler.GetEpisode(TvdbId, SeasonNumber, EpisodeNumber, TvdbEpisode.EpisodeOrdering.DefaultOrder, TvdbLanguage.DefaultLanguage);
 }