Пример #1
0
        protected override void InternalRunWorker(object arg)
        {
            _log.Info("Processing: " + arg);
            TmdbResult newData = null;

            try
            {
                var name = _guessit.RealGuessName(Path.GetFileName(arg.ToString()));
                if (name?.ImdbId != null)
                {
                    newData = _tmdb.GetByImdbId(name.ImdbId);
                }
                else if (name?.Title != null)
                {
                    newData = _tmdb.GetByTmdbId(_tmdb.SearchMovies(name.Title, name.Year).First());
                }
            }
            catch (Exception e)
            {
                _log.Error(e, "Process error: " + arg);
            }

            newData = newData ?? _tmdb.GetByFilename(Path.GetFileName(arg.ToString()));
            var result = new MovieEntryFacade(newData, arg.ToString());

            _log.Info("Processed: " + arg);
            IncrementWorkDone();
            OnProgressChanged(this, new ProgressChangedEventArgs(GetPercentage(), new  DirectoryAnalyzeWorkerState
            {
                Entry = result
            }));
        }
Пример #2
0
        protected override void InternalRunWorker(object arg)
        {
            _log.Debug("Task started.");
            OnRunWorkerStarted(this, EventArgs.Empty);

            try
            {
                OnProgressChanged(this, new ProgressChangedEventArgs(-1, null));
                var name  = _guessit.RealGuessName(Path.GetFileName(FullPath));
                var found = _tmdb.SearchMovies(name.Title, 0);

                var movieTitles = found.Select(movieId => _tmdb.GetByTmdbId(movieId))
                                  .ToDictionary(result => result.Id.ToString());
                var movieTitleSelection = movieTitles.Values.Select(x => $"{x.Id}:   {x.Title} ({x.Year})").ToArray();

                var choose = View.ShowComboBoxInput("Select alternative.", movieTitleSelection, out string choosenName);
                if (choose != DialogResult.OK)
                {
                    goto finish;
                }

                foreach (var movieTitle in movieTitles)
                {
                    if (movieTitle.Value.Id.ToString() == choosenName.Split(':')[0])
                    {
                        OnProgressChanged(this, new ProgressChangedEventArgs(-1, new ResearchMovieWorkerState
                        {
                            Entry = new MovieEntryFacade(movieTitle.Value, FullPath),
                            Index = Index
                        }));
                    }
                }

finish:
                _log.Debug("Task finished.");
                OnRunWorkerCompleted(this, new RunWorkerCompletedEventArgs(null, null, false));
            }
            catch (Exception e)
            {
                _log.Error(e, "Task finished with error.");
                OnRunWorkerCompleted(this, new RunWorkerCompletedEventArgs(null, e, true));
            }
        }