public void TestEnricherMethods()
        {
            var tvDbService = new TvDbService(Config.Instance.CacheFolder, Config.Instance.ApiKey);
            var enricher = new TvdbLibAccess(Config.Instance, EpisodeMatchMethodLoader.GetMatchMethods(), tvDbService);
            this.CreateTestData();

            bool pass = true;
            foreach (var testProgram in this.testPrograms)
            {
                try
                {
                    var series = enricher.GetTvdbSeries(enricher.getSeriesId(testProgram.Title), false);
                    enricher.EnrichProgram(testProgram, series);
                    if (testProgram.EpisodeNumberDisplay == testProgram.ExpectedEpisodeNumberDisplay)
                    {
                        Console.WriteLine(string.Format(CultureInfo.CurrentCulture, "Correctly matched {0} - {1}", testProgram.Title, testProgram.EpisodeNumberDisplay));
                    }
                    else
                    {
                        Console.WriteLine(string.Format(CultureInfo.CurrentCulture, "Unable to match {0} - {1}", testProgram.Title, testProgram.SubTitle));
                        pass = false;
                    }

                }
                catch (Exception exception)
                {
                    pass = false;
                    Console.WriteLine(string.Format(CultureInfo.CurrentCulture, "Couldn't match {0} - {1}", testProgram.Title, testProgram.SubTitle));
                    Console.WriteLine(exception.Message);
                }
            }
            //
            Assert.True(pass, "Test failed!");
        }
示例#2
0
        public void TestEnricherMethods()
        {
            var tvDbService = new TvDbService(Config.Instance.CacheFolder, Config.Instance.ApiKey);
            var enricher    = new TvdbLibAccess(Config.Instance, EpisodeMatchMethodLoader.GetMatchMethods(), tvDbService);

            this.CreateTestData();

            bool pass = true;

            foreach (var testProgram in this.testPrograms)
            {
                try
                {
                    var series = enricher.GetTvdbSeries(enricher.getSeriesId(testProgram.Title), false);
                    enricher.EnrichProgram(testProgram, series);
                    if (testProgram.EpisodeNumberDisplay == testProgram.ExpectedEpisodeNumberDisplay)
                    {
                        Console.WriteLine(string.Format(CultureInfo.CurrentCulture, "Correctly matched {0} - {1}", testProgram.Title, testProgram.EpisodeNumberDisplay));
                    }
                    else
                    {
                        Console.WriteLine(string.Format(CultureInfo.CurrentCulture, "Unable to match {0} - {1}", testProgram.Title, testProgram.SubTitle));
                        pass = false;
                    }
                }
                catch (Exception exception)
                {
                    pass = false;
                    Console.WriteLine(string.Format(CultureInfo.CurrentCulture, "Couldn't match {0} - {1}", testProgram.Title, testProgram.SubTitle));
                    Console.WriteLine(exception.Message);
                }
            }
            //
            Assert.True(pass, "Test failed!");
        }
        public void SeriesWithPunctuationsAreMatchedCorrectly()
        {
            var matchMethods = new List<IEpisodeMatchMethod>();

            var tvDbService = new TvDbService("tvdbCache", Config.Instance.ApiKey);
            var tvdbLib = new TvdbLibAccess(Config.Instance, matchMethods, tvDbService);

            var seriesID = tvdbLib.getSeriesId("American Dad");

            seriesID.ShouldEqual(73141);
        }
示例#4
0
        public void SeriesWithPunctuationsAreMatchedCorrectly()
        {
            var matchMethods = new List <IEpisodeMatchMethod>();

            var tvDbService = new TvDbService("tvdbCache", Config.Instance.ApiKey);
            var tvdbLib     = new TvdbLibAccess(Config.Instance, matchMethods, tvDbService);

            var seriesID = tvdbLib.getSeriesId("American Dad");

            seriesID.ShouldEqual(73141);
        }
示例#5
0
        public void TestMappingNameWithID()
        {
            var lawOrderProgram = new TestProgram("Law & Order: Special Victims Unit", "Identity", 0, "S06E12");
            var seriesNameMap   = new Dictionary <string, string>(1);

            seriesNameMap.Add("Law & Order: Special Victims Unit", "id=75692");
            var mockConfig = new Moq.Mock <IConfiguration>();

            mockConfig.Setup(x => x.getSeriesNameMap()).Returns(seriesNameMap);
            var tvDbApi  = new TvDbService(GetWorkingDirectory(), Config.Instance.ApiKey);
            var enricher = new TvdbLibAccess(mockConfig.Object, EpisodeMatchMethodLoader.GetMatchMethods(), tvDbApi);
            var series   = enricher.GetTvdbSeries(enricher.getSeriesId(lawOrderProgram.Title), false);

            enricher.EnrichProgram(lawOrderProgram, series);
            Assert.True(lawOrderProgram.EpisodeIsEnriched());
        }
示例#6
0
        public void TestMappingRegex()
        {
            var lawOrderProgram = new TestProgram("Stargate Atlantis123", "Common Ground", 0, "S03E07");
            var seriesNameMap   = new Dictionary <string, string>(1);

            seriesNameMap.Add("regex=Stargate Atl.*", "Stargate Atlantis");
            var mockConfig = new Moq.Mock <IConfiguration>();

            mockConfig.Setup(x => x.getSeriesNameMap()).Returns(seriesNameMap);
            var tvDbApi  = new TvDbService(GetWorkingDirectory(), Config.Instance.ApiKey);
            var enricher = new TvdbLibAccess(mockConfig.Object, EpisodeMatchMethodLoader.GetMatchMethods(), tvDbApi);
            var series   = enricher.GetTvdbSeries(enricher.getSeriesId(lawOrderProgram.Title), false);

            enricher.EnrichProgram(lawOrderProgram, series);
            Assert.True(lawOrderProgram.EpisodeIsEnriched());
        }
示例#7
0
        public void CheckTvDb()
        {
            //http://thetvdb.com/api/GetSeries.php?seriesname=The+Daily+Show
            //http://thetvdb.com/api/5D2D188E86E07F4F/series/71256/default/15/64
            // "The Daily Show 2010 05 06 Mario Batali";
            var episode = new Episode
            {
                ShowName = "The Daily Show",
                AirDate = DateTime.Parse("2010-05-06"),
            };
            var service = new TvDbService();

            service.GetEpisodeName(episode);

            Expect(episode.EpisodeName, Is.EqualTo("Mario Batali"));
        }
示例#8
0
        public void TestBlackSails()
        {
            // Arrange
            var program       = new TestProgram("Black Sails", "XVIII.", 0, "S02E10");
            var seriesNameMap = new Dictionary <string, string>(1);
            //seriesNameMap.Add("Blue Bloods", "id=164981");
            var mockConfig = new Moq.Mock <IConfiguration>();

            mockConfig.Setup(x => x.getSeriesNameMap()).Returns(seriesNameMap);
            mockConfig.Setup(x => x.UpdateMatchedEpisodes).Returns(true);
            mockConfig.Setup(x => x.UpdateSubtitlesParameter).Returns(true);
            mockConfig.Setup(x => x.GetProperty(Moq.It.Is <string>((c) => c == "TvDbLanguage"))).Returns("en");
            var tvDbApi  = new TvDbService(GetWorkingDirectory(), Config.Instance.ApiKey);
            var enricher = new TvdbLibAccess(mockConfig.Object, EpisodeMatchMethodLoader.GetMatchMethods(), tvDbApi);
            var series   = enricher.GetTvdbSeries(enricher.getSeriesId(program.Title), false);

            // Act
            enricher.EnrichProgram(program, series);
            // Assert
            program.Assert();
        }
示例#9
0
        public void TestAgathaChristiesMarple()
        {
            // Arrange
            var program       = new TestProgram("Agatha Christie's Marple", "Murder at the Vicarage", 0, "S01E02");
            var seriesNameMap = new Dictionary <string, string>(1);

            seriesNameMap.Add("Agatha Christie's Marple", "id=78895");
            var mockConfig = new Moq.Mock <IConfiguration>();

            mockConfig.Setup(x => x.getSeriesNameMap()).Returns(seriesNameMap);
            mockConfig.Setup(x => x.UpdateMatchedEpisodes).Returns(true);
            mockConfig.Setup(x => x.UpdateSubtitlesParameter).Returns(true);
            var tvDbApi  = new TvDbService(GetWorkingDirectory(), Config.Instance.ApiKey);
            var enricher = new TvdbLibAccess(mockConfig.Object, EpisodeMatchMethodLoader.GetMatchMethods(), tvDbApi);
            var series   = enricher.GetTvdbSeries(enricher.getSeriesId(program.Title), false);

            // Act
            enricher.EnrichProgram(program, series);
            // Assert
            program.Assert();
        }
        public static void Enrich(Object state, ElapsedEventArgs eventArgs)
        {
            try
            {
                lock (lockThis)
                {
                    BusyEnriching = true;
                }
                int ping = Proxies.CoreService.Ping(Constants.RestApiVersion).Result;
                if (ping > 0)
                {
                    log.DebugFormat("Ping {0}", ping);
                }

                var matchMethods  = EpisodeMatchMethodLoader.GetMatchMethods();
                var tvDbApi       = new TvDbService(config.CacheFolder, config.ApiKey);
                var tvdbLibAccess = new TvdbLibAccess(config, matchMethods, tvDbApi);
                var enricher      = new Enricher(config, tvdbLibAccess, matchMethods);
                enricher.EnrichUpcomingProgramsAsync().Wait();
            }
            catch (Exception exception)
            {
                log.Error("Error enriching", exception);
            }
            finally
            {
                lock (lockThis)
                {
                    BusyEnriching = false;
                }

                if (!enrichTimer.Enabled)
                {
                    enrichTimer.Interval = TimeSpan.FromHours(waitTime).TotalMilliseconds;
                    enrichTimer.Start();
                }
            }
        }
 public void TestMappingNameWithID()
 {
     var lawOrderProgram = new TestProgram("Law & Order: Special Victims Unit", "Identity", 0, "S06E12");
     var seriesNameMap = new Dictionary<string, string>(1);
     seriesNameMap.Add("Law & Order: Special Victims Unit", "id=75692");
     var mockConfig = new Moq.Mock<IConfiguration>();
     mockConfig.Setup(x => x.getSeriesNameMap()).Returns(seriesNameMap);
     var tvDbApi = new TvDbService(GetWorkingDirectory(), Config.Instance.ApiKey);
     var enricher = new TvdbLibAccess(mockConfig.Object, EpisodeMatchMethodLoader.GetMatchMethods(), tvDbApi);
     var series = enricher.GetTvdbSeries(enricher.getSeriesId(lawOrderProgram.Title), false);
     enricher.EnrichProgram(lawOrderProgram, series);
     Assert.True(lawOrderProgram.EpisodeIsEnriched());
 }
 public void TestBlackSails()
 {
     // Arrange
     var program = new TestProgram("Black Sails", "XVIII.", 0, "S02E10");
     var seriesNameMap = new Dictionary<string, string>(1);
     //seriesNameMap.Add("Blue Bloods", "id=164981");
     var mockConfig = new Moq.Mock<IConfiguration>();
     mockConfig.Setup(x => x.getSeriesNameMap()).Returns(seriesNameMap);
     mockConfig.Setup(x => x.UpdateMatchedEpisodes).Returns(true);
     mockConfig.Setup(x => x.UpdateSubtitlesParameter).Returns(true);
     mockConfig.Setup(x => x.GetProperty(Moq.It.Is<string>((c) => c == "TvDbLanguage"))).Returns("en");
     var tvDbApi = new TvDbService(GetWorkingDirectory(), Config.Instance.ApiKey);
     var enricher = new TvdbLibAccess(mockConfig.Object, EpisodeMatchMethodLoader.GetMatchMethods(), tvDbApi);
     var series = enricher.GetTvdbSeries(enricher.getSeriesId(program.Title), false);
     // Act
     enricher.EnrichProgram(program, series);
     // Assert
     program.Assert();
 }        
 public void TestAgathaChristiesMarple()
 {
     // Arrange
     var program = new TestProgram("Agatha Christie's Marple", "Murder at the Vicarage", 0, "S01E02");
     var seriesNameMap = new Dictionary<string, string>(1);
     seriesNameMap.Add("Agatha Christie's Marple", "id=78895");
     var mockConfig = new Moq.Mock<IConfiguration>();
     mockConfig.Setup(x => x.getSeriesNameMap()).Returns(seriesNameMap);
     mockConfig.Setup(x => x.UpdateMatchedEpisodes).Returns(true);
     mockConfig.Setup(x => x.UpdateSubtitlesParameter).Returns(true);
     var tvDbApi = new TvDbService(GetWorkingDirectory(), Config.Instance.ApiKey);
     var enricher = new TvdbLibAccess(mockConfig.Object, EpisodeMatchMethodLoader.GetMatchMethods(), tvDbApi);
     var series = enricher.GetTvdbSeries(enricher.getSeriesId(program.Title), false);
     // Act
     enricher.EnrichProgram(program, series);
     // Assert
     program.Assert();
 }
 public void TestRegularMapping()
 {
     var lawOrderProgram = new TestProgram("Stargate Atlantis123", "Common Ground", 0, "S03E07");
     var seriesNameMap = new Dictionary<string, string>(1);
     seriesNameMap.Add("Stargate Atlantis123", "Stargate Atlantis");
     var mockConfig = new Moq.Mock<IConfiguration>();
     mockConfig.Setup(x => x.getSeriesNameMap()).Returns(seriesNameMap);
     //
     var tvDbApi = new TvDbService(GetWorkingDirectory(), Config.Instance.ApiKey);
     var enricher = new TvdbLibAccess(mockConfig.Object, EpisodeMatchMethodLoader.GetMatchMethods(), tvDbApi);
     var series = enricher.GetTvdbSeries(enricher.getSeriesId(lawOrderProgram.Title), false);
     enricher.EnrichProgram(lawOrderProgram, series);
     Assert.True(lawOrderProgram.EpisodeIsEnriched());
 }
        public static void Enrich(Object state, ElapsedEventArgs eventArgs)
        {
            try
            {
                lock (lockThis)
                {
                    BusyEnriching = true;
                }
                int ping = Proxies.CoreService.Ping(Constants.RestApiVersion).Result;
                if (ping > 0)
                {
                    log.DebugFormat("Ping {0}", ping);
                }

                var matchMethods = EpisodeMatchMethodLoader.GetMatchMethods();
                var tvDbApi = new TvDbService(config.CacheFolder, config.ApiKey);
                var tvdbLibAccess = new TvdbLibAccess(config, matchMethods, tvDbApi);
                var enricher = new Enricher(config, tvdbLibAccess, matchMethods);
                enricher.EnrichUpcomingProgramsAsync().Wait();
            }
            catch (Exception exception)
            {
                log.Error("Error enriching", exception);
            }
            finally
            {
                lock (lockThis)
                {
                    BusyEnriching = false;
                }

                if (!enrichTimer.Enabled)
                {
                    enrichTimer.Interval = TimeSpan.FromHours(waitTime).TotalMilliseconds;
                    enrichTimer.Start();
                }
            }
        }