コード例 #1
0
        public async Task <MovieDB> GetPlayingNowMovies()
        {
            var     path   = "movie/now_playing?api_key=" + Config["MoviesDbKey"];
            MovieDB movies = await MovieProcessor.LoadMovies(path);

            return(movies);
        }
コード例 #2
0
        public async Task <MovieDB> GetUpcomingMovies()
        {
            var     path   = "movie/upcoming?api_key=" + Config["MoviesDbKey"];
            MovieDB movies = await MovieProcessor.LoadMovies(path);

            return(movies);
        }
コード例 #3
0
        public async Task <MovieDB> GetTopMovies()
        {
            var     path   = "movie/top_rated?api_key=" + Config["MoviesDbKey"];
            MovieDB movies = await MovieProcessor.LoadMovies(path);

            return(movies);
        }
コード例 #4
0
        public async Task <MovieDB> GetPopularMovies()
        {
            var path   = "movie/popular?api_key=" + Config["MoviesDbKey"];
            var movies = await MovieProcessor.LoadMovies(path);

            return(movies);
        }
コード例 #5
0
        public async Task <MovieDB> GetAllMovies()
        {
            var path   = "discover/movie?api_key=" + Config["MoviesDbKey"];
            var movies = await MovieProcessor.LoadMovies(path);

            return(movies);
        }
コード例 #6
0
        public async Task <IEnumerable <MovieModel> > GetMovies(string title, int year)
        {
            var movies = await _cache.GetOrCreateAsync($"title={title}, year={year}", async cacheEntry =>
            {
                cacheEntry.SlidingExpiration = TimeSpan.FromMinutes(60);
                return(await MovieProcessor.LoadMovie(year, title));
            });

            return(movies);
        }
コード例 #7
0
        public MovieProcessorTests()
        {
            _plexService        = Substitute.For <IPlexService>();
            _mediaItemProcessor = Substitute.For <IMediaItemProcessor>();
            var loggerFactory = Substitute.For <ILoggerFactory>();

            loggerFactory.CreateLogger <MovieProcessor>().Returns(Substitute.For <ILogger>());

            var plexSettings = new PlexSettingsBuilder().Build();

            _underTest = new MovieProcessor(_plexService, _mediaItemProcessor, plexSettings, loggerFactory);
        }
コード例 #8
0
        public async Task <MovieDetails> GetMovieDetails(int?id)
        {
            if (id == null)
            {
                return(null);
            }

            var movieId = (int)id;
            var path    = "movie/" + movieId +
                          "?api_key=" + Config["MoviesDbKey"];
            MovieDetails movie = await MovieProcessor.LoadMovieDetails(path);

            return(movie);
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: jamerst/AutoTag
        private async Task OnExecuteAsync()
        {
            if (version)
            {
                Console.WriteLine(Assembly.GetEntryAssembly().GetCustomAttribute <AssemblyInformationalVersionAttribute>().InformationalVersion);
                Environment.Exit(0);
            }

            Console.WriteLine($"AutoTag v{Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion}");
            Console.WriteLine("https://jtattersall.net");
            settings = new AutoTagSettings(configPath);

            if (tv)
            {
                settings.config.mode = AutoTagConfig.Modes.TV;
            }
            else if (movie)
            {
                settings.config.mode = AutoTagConfig.Modes.Movie;
            }
            if (noRename)
            {
                settings.config.renameFiles = false;
            }
            if (noTag)
            {
                settings.config.tagFiles = false;
            }
            if (noCoverArt)
            {
                settings.config.addCoverArt = false;
            }
            if (manualMode)
            {
                settings.config.manualMode = true;
            }
            if (!string.IsNullOrEmpty(tvRenamePattern))
            {
                settings.config.tvRenamePattern = tvRenamePattern;
            }
            if (!string.IsNullOrEmpty(movieRenamePattern))
            {
                settings.config.movieRenamePattern = movieRenamePattern;
            }
            if (!string.IsNullOrEmpty(pattern))
            {
                settings.config.parsePattern = pattern;
            }
            if (windowsSafe)
            {
                settings.config.windowsSafe = true;
            }
            if (extendedTagging)
            {
                settings.config.extendedTagging = true;
            }
            if (verbose)
            {
                settings.config.verbose = true;
            }
            if (setDefault)
            {
                settings.Save();
            }

            if (!RemainingArguments.Any())
            {
                Console.Error.WriteLine("No files provided");
                Environment.Exit(1);
            }

            IProcessor processor;

            if (settings.config.mode == AutoTagConfig.Modes.TV)
            {
                processor = new TVProcessor(Keys.TMDBKey);
            }
            else
            {
                processor = new MovieProcessor(Keys.TMDBKey);
            }

            AddFiles(RemainingArguments);

            if (!files.Any())
            {
                Console.Error.WriteLine("No files found");
                Environment.Exit(1);
            }

            files.Sort((x, y) => x.Path.CompareTo(y.Path));

            for (index = 0; index < files.Count; index++)
            {
                success &= await processor.Process(files[index].Path, p => {}, SetStatus, ChooseResult, settings.config);
            }

            Console.ResetColor();

            if (success)
            {
                if (warnings == 0)
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine($"\n\n{(files.Count() > 1 ? $"All {files.Count()} files": "File")} successfully processed.");
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine($"\n\n{(files.Count() > 1 ? $"All {files.Count()} files": "File")} successfully processed with {warnings} warning{(warnings > 1 ? "s" : "")}.");
                }
                Console.ResetColor();
                Environment.Exit(0);
            }
            else
            {
                int failedFiles = files.Where(f => !f.Success).Count();

                if (failedFiles < files.Count())
                {
                    if (warnings == 0)
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine($"\n\n{files.Count() - failedFiles} file{(files.Count() - failedFiles > 1 ? "s" : "")} successfully processed.");
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine($"\n\n{files.Count() - failedFiles} file{(files.Count() - failedFiles > 1 ? "s" : "")} successfully processed with {warnings} warning{(warnings > 1 ? "s" : "")}.");
                    }
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    Console.Error.WriteLine($"Errors encountered for {failedFiles} file{(failedFiles > 1 ? "s" : "")}:");
                }
                else
                {
                    Console.Error.WriteLine("\n\nErrors encountered for all files:");
                }

                foreach (TaggingFile file in files.Where(f => !f.Success))
                {
                    Console.ForegroundColor = ConsoleColor.Magenta;
                    Console.Error.WriteLine($"{file.Path}:");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Error.WriteLine($"    {file.Status}\n");
                }

                Console.ResetColor();
                Environment.Exit(1);
            }
        }
コード例 #10
0
 public MoviesController(AppDbContext db)
 {
     _db            = db;
     movieProcessor = new MovieProcessor();
 }
コード例 #11
0
        private async Task OnExecuteAsync()
        {
            if (version)
            {
                Console.WriteLine(Assembly.GetEntryAssembly().GetCustomAttribute <AssemblyInformationalVersionAttribute>().InformationalVersion);
                Environment.Exit(0);
            }

            Console.WriteLine($"AutoTag v{Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion}");
            Console.WriteLine("https://jtattersall.net");
            settings = new AutoTagSettings(configPath);

            if (tv)
            {
                settings.config.mode = AutoTagConfig.Modes.TV;
            }
            else if (movie)
            {
                settings.config.mode = AutoTagConfig.Modes.Movie;
            }
            if (noRename)
            {
                settings.config.renameFiles = false;
            }
            if (noTag)
            {
                settings.config.tagFiles = false;
            }
            if (noCoverArt)
            {
                settings.config.addCoverArt = false;
            }
            if (manualMode)
            {
                settings.config.manualMode = true;
            }
            if (!string.IsNullOrEmpty(tvRenamePattern))
            {
                settings.config.tvRenamePattern = tvRenamePattern;
            }
            if (!string.IsNullOrEmpty(movieRenamePattern))
            {
                settings.config.movieRenamePattern = movieRenamePattern;
            }
            if (!string.IsNullOrEmpty(pattern))
            {
                settings.config.parsePattern = pattern;
            }
            if (windowsSafe)
            {
                settings.config.windowsSafe = true;
            }
            if (verbose)
            {
                settings.config.verbose = true;
            }
            if (setDefault)
            {
                settings.Save();
            }

            if (RemainingArguments.Length == 0)
            {
                Console.Error.WriteLine("No files provided");
                Environment.Exit(1);
            }

            IProcessor processor;

            if (settings.config.mode == AutoTagConfig.Modes.TV)
            {
                processor = new TVProcessor("TQLC3N5YDI1AQVJF");
            }
            else
            {
                processor = new MovieProcessor("b342b6005f86daf016533bf0b72535bc");
            }

            AddFiles(RemainingArguments);
            files.Sort((x, y) => x.Path.CompareTo(y.Path));

            Action <string> setPath = p => { return; };
            Action <string, MessageType> setStatus = (s, t) => SetStatus(s, t);

            Func <List <Tuple <string, string> >, int> choose = (results) => ChooseResult(results);

            for (index = 0; index < files.Count; index++)
            {
                success = success & await processor.process(files[index].Path, setPath, setStatus, choose, settings.config);
            }

            Console.ResetColor();

            if (success)
            {
                if (warnings == 0)
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine($"\n\n{(files.Count() > 1 ? $"All {files.Count()} files": "File")} successfully processed.");
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine($"\n\n{(files.Count() > 1 ? $"All {files.Count()} files": "File")} successfully processed with {warnings} warning{(warnings > 1 ? "s" : "")}.");
                }
                Console.ResetColor();
                Environment.Exit(0);
            }
            else
            {
                int failedFiles = files.Where(f => !f.Success).Count();

                if (failedFiles < files.Count())
                {
                    if (warnings == 0)
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine($"\n\n{files.Count() - failedFiles} file{(files.Count() - failedFiles > 1 ? "s" : "")} successfully processed.");
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine($"\n\n{files.Count() - failedFiles} file{(files.Count() - failedFiles > 1 ? "s" : "")} successfully processed with {warnings} warning{(warnings > 1 ? "s" : "")}.");
                    }
                    Console.ForegroundColor = ConsoleColor.DarkRed;
                    Console.Error.WriteLine($"Errors encountered for {failedFiles} file{(failedFiles > 1 ? "s" : "")}:");
                }
                else
                {
                    Console.Error.WriteLine("\n\nErrors encountered for all files:");
                }

                foreach (TaggingFile file in files.Where(f => !f.Success))
                {
                    Console.ForegroundColor = ConsoleColor.Magenta;
                    Console.Error.WriteLine($"{file.Path}:");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.Error.WriteLine($"    {file.Status}\n");
                }

                Console.ResetColor();
                Environment.Exit(1);
            }
        }
コード例 #12
0
 private async Task LoadMovie(int movieId = 0)
 {
     Movies = new BindableCollection <MovieModel>(await MovieProcessor.LoadMovie(SearchYear, SearchTitle));
     NotifyOfPropertyChange(() => Movies);
 }
コード例 #13
0
        public async Task <MovieModel> MovieSearch(string url)
        {
            MovieModel res = await MovieProcessor.GetStarWarsMovieInfo(url);

            return(res);
        }