예제 #1
0
        private void bgTraktSync_DoWork(object sender, DoWorkEventArgs e)
        {
            MPTVSeriesLog.Write("Trakt: Synchronize Start");

            buttonManualSync.Text = cButtonCancelSync;
            ConfigurationForm.GetInstance().EnableImportButtonState(false);

            List <DBSeries> seriesList = DBSeries.Get(new SQLCondition());

            int progress = 0;

            foreach (DBSeries series in seriesList)
            {
                if (bgTraktSync.CancellationPending)
                {
                    return;
                }

                if (series[DBSeries.cID] <= 0)
                {
                    continue;
                }

                List <DBEpisode> episodesUnSeen  = TraktHandler.GetEpisodesToSync(series, TraktSyncModes.unseen);
                List <DBEpisode> episodesLibrary = TraktHandler.GetEpisodesToSync(series, TraktSyncModes.library);
                List <DBEpisode> episodesSeen    = TraktHandler.GetEpisodesToSync(series, TraktSyncModes.seen);

                // remove any seen episodes from library episode list as 'seen' counts as being part of the library
                // dont want to hit the server unnecessarily
                episodesLibrary.RemoveAll(eps => episodesSeen.Contains(eps));

                // sync UnSeen
                TraktHandler.SynchronizeLibrary(episodesUnSeen, TraktSyncModes.unseen);

                // sync library
                TraktHandler.SynchronizeLibrary(episodesLibrary, TraktSyncModes.library);

                // sync Seen
                TraktHandler.SynchronizeLibrary(episodesSeen, TraktSyncModes.seen);

                int percentage = Convert.ToInt32((double)(100 * progress++) / seriesList.Count());
                bgTraktSync.ReportProgress(percentage);
            }

            MPTVSeriesLog.Write("Trakt: Synchronize Complete");
        }
예제 #2
0
 private void bgTraktSync_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     progressTraktSync.Value = 100;
     buttonManualSync.Text   = cButtonFinishSync;
     ConfigurationForm.GetInstance().EnableImportButtonState(true);
 }