Esempio n. 1
0
        public static void FilterCollections(TMDBSnapshot tmdbSnapshot, ILogger logger)
        {
            logger.LogInformation($"TMDBDataCollector filtering collections started at: {DateTime.Now}");

            if (tmdbSnapshot != null)
            {
                FilterCollection(tmdbSnapshot.PopularShowsAndMovies);
                FilterCollection(tmdbSnapshot.ComedyShowsAndMovies);
                FilterCollection(tmdbSnapshot.DramaShowsAndMovies);
                FilterCollection(tmdbSnapshot.ActionAdventureShowsAndMovies);
                FilterCollection(tmdbSnapshot.AnimationShowsAndMovies);
                FilterCollection(tmdbSnapshot.ScifiShowsAndMovies);
                FilterCollection(tmdbSnapshot.CrimeShowsAndMovies);
                FilterCollection(tmdbSnapshot.MysteryShowsAndMovies);
                FilterCollection(tmdbSnapshot.ThrillerShowsAndMovies);
                FilterCollection(tmdbSnapshot.HorrorShowsAndMovies);
                FilterCollection(tmdbSnapshot.FamilyShowsAndMovies);
                FilterCollection(tmdbSnapshot.KidsShowsAndMovies);
                FilterCollection(tmdbSnapshot.WesternShowsAndMovies);
                FilterCollection(tmdbSnapshot.FantasyMovies);
                FilterCollection(tmdbSnapshot.HistoryShowsAndMovies);
                FilterCollection(tmdbSnapshot.RomanceShowsAndMovies);
                FilterCollection(tmdbSnapshot.WarShowsAndMovies);
                FilterCollection(tmdbSnapshot.DocumentaryShowsAndMovies);
                FilterCollection(tmdbSnapshot.SitcomShows);
                FilterCollection(tmdbSnapshot.AnthologyShows);
                FilterCollection(tmdbSnapshot.AnimeShowsAndMovies);
                FilterCollection(tmdbSnapshot.TeenDramaShowsAndMovies);
                FilterCollection(tmdbSnapshot.HistoricalDramaShowsAndMovies);
                FilterCollection(tmdbSnapshot.WorkplaceComedyShowsAndMovies);
                FilterCollection(tmdbSnapshot.MedicalDramaShowsAndMovies);
            }

            logger.LogInformation($"TMDBDataCollector filtering collections finished at: {DateTime.Now}");
        }
Esempio n. 2
0
 private static void WriteIntoDatabase(TMDBSnapshot tmdbSnapshot, ILogger logger)
 {
     logger.LogInformation($"TMDBDataCollector writing data into database started at: {DateTime.Now}");
     using IDatabaseService databaseService = new DatabaseServiceImpl(_databaseConnection);
     databaseService.SaveCollectedDataToDatabase(tmdbSnapshot);
     logger.LogInformation($"TMDBDataCollector writing data into database finished at: {DateTime.Now}");
 }
Esempio n. 3
0
        public static async Task Run([TimerTrigger("0 0 */4 * * *" /* runs every fourth hour */
#if DEBUG
                                                   , RunOnStartup = true
#endif
                                                   )] TimerInfo myTimer, ILogger log)
        {
            _tmdbApiKey         = Environment.GetEnvironmentVariable("tmdb_api_key");
            _databaseConnection = Environment.GetEnvironmentVariable("database_connection");
            _tmdbService        = new TMDBServiceImpl(_tmdbApiKey, log);

            log.LogInformation($"TMDBDataCollector function started at: {DateTime.Now}");

            List <LocalizationCodes> localizationCodes = GetLocalizationCodes(log);
            await _tmdbService.InitializeAsync();

            if (localizationCodes != null)
            {
                foreach (LocalizationCodes entry in localizationCodes)
                {
                    _tmdbService.Clear();
                    _tmdbSnapshot = await DataCollector.CollectDataAsync(_tmdbService, log, entry.LanguageCode, entry.RegionCode);

                    WriteIntoDatabase(_tmdbSnapshot, log);
                }
            }

            log.LogInformation($"TMDBDataCollector function finished at: {DateTime.Now}");
        }
Esempio n. 4
0
        private static void CreateRandomizedJSONCollection(TMDBSnapshot tmdbSnapshot, ILogger logger)
        {
            logger.LogInformation($"DataCollector creating json collection started at: {DateTime.Now}");
            RandomizedJSONSnapshot jsonSnapshot = CreateRandomizedCollection(tmdbSnapshot);
            string json = JsonConvert.SerializeObject(jsonSnapshot);
            var    compressionService = new CompressionServiceImpl();
            string compressedJsonData = compressionService.CompressJSONAsBase64(json);

            tmdbSnapshot.CompressedBase64JSONData = compressedJsonData;
            logger.LogInformation($"DataCollector creating json collection finished at: {DateTime.Now}");
        }
        public void SaveCollectedDataToDatabase(TMDBSnapshot tmdbSnapshot)
        {
            var snapshot = new Snapshots
            {
                LanguageCode             = tmdbSnapshot.LanguageCode,
                RegionCode               = tmdbSnapshot.RegionCode,
                CompressedBase64JSONData = tmdbSnapshot.CompressedBase64JSONData
            };

            _context.Snapshots.Add(snapshot);
            _context.SaveChanges();
        }
Esempio n. 6
0
        private static RandomizedJSONSnapshot CreateRandomizedCollection(TMDBSnapshot tmdbSnapshot)
        {
            var jsonSnapshot = new RandomizedJSONSnapshot
            {
                Configuration = tmdbSnapshot.Configuration,
                ShowGenres    = tmdbSnapshot.ShowGenres,
                MovieGenres   = tmdbSnapshot.MovieGenres,
                ActionAdventureShowsAndMovies = tmdbSnapshot.ActionAdventureShowsAndMovies,
                AnimationShowsAndMovies       = tmdbSnapshot.AnimationShowsAndMovies,
                AnimeShowsAndMovies           = tmdbSnapshot.AnimeShowsAndMovies,
                AnthologyShows                = tmdbSnapshot.AnthologyShows,
                ComedyShowsAndMovies          = tmdbSnapshot.ComedyShowsAndMovies,
                CrimeShowsAndMovies           = tmdbSnapshot.CrimeShowsAndMovies,
                DocumentaryShowsAndMovies     = tmdbSnapshot.DocumentaryShowsAndMovies,
                DramaShowsAndMovies           = tmdbSnapshot.DramaShowsAndMovies,
                FamilyShowsAndMovies          = tmdbSnapshot.FamilyShowsAndMovies,
                FantasyMovies                 = tmdbSnapshot.FantasyMovies,
                HistoricalDramaShowsAndMovies = tmdbSnapshot.HistoricalDramaShowsAndMovies,
                HistoryShowsAndMovies         = tmdbSnapshot.HistoryShowsAndMovies,
                HorrorShowsAndMovies          = tmdbSnapshot.HorrorShowsAndMovies,
                KidsShowsAndMovies            = tmdbSnapshot.KidsShowsAndMovies,
                MedicalDramaShowsAndMovies    = tmdbSnapshot.MedicalDramaShowsAndMovies,
                MysteryShowsAndMovies         = tmdbSnapshot.MysteryShowsAndMovies,
                RomanceShowsAndMovies         = tmdbSnapshot.RomanceShowsAndMovies,
                ScifiShowsAndMovies           = tmdbSnapshot.ScifiShowsAndMovies,
                SitcomShows                   = tmdbSnapshot.SitcomShows,
                TeenDramaShowsAndMovies       = tmdbSnapshot.TeenDramaShowsAndMovies,
                ThrillerShowsAndMovies        = tmdbSnapshot.ThrillerShowsAndMovies,
                PopularShowsAndMovies         = tmdbSnapshot.PopularShowsAndMovies,
                WarShowsAndMovies             = tmdbSnapshot.WarShowsAndMovies,
                WesternShowsAndMovies         = tmdbSnapshot.WesternShowsAndMovies,
                WorkplaceComedyShowsAndMovies = tmdbSnapshot.WorkplaceComedyShowsAndMovies
            };

            jsonSnapshot.ActionAdventureShowsAndMovies.Shuffle();
            jsonSnapshot.AnimationShowsAndMovies.Shuffle();
            jsonSnapshot.AnimeShowsAndMovies.Shuffle();
            jsonSnapshot.AnthologyShows.Shuffle();
            jsonSnapshot.ComedyShowsAndMovies.Shuffle();
            jsonSnapshot.CrimeShowsAndMovies.Shuffle();
            jsonSnapshot.DocumentaryShowsAndMovies.Shuffle();
            jsonSnapshot.DramaShowsAndMovies.Shuffle();
            jsonSnapshot.FamilyShowsAndMovies.Shuffle();
            jsonSnapshot.FantasyMovies.Shuffle();
            jsonSnapshot.HistoricalDramaShowsAndMovies.Shuffle();
            jsonSnapshot.HistoryShowsAndMovies.Shuffle();
            jsonSnapshot.HorrorShowsAndMovies.Shuffle();
            jsonSnapshot.KidsShowsAndMovies.Shuffle();
            jsonSnapshot.MedicalDramaShowsAndMovies.Shuffle();
            jsonSnapshot.MysteryShowsAndMovies.Shuffle();
            jsonSnapshot.RomanceShowsAndMovies.Shuffle();
            jsonSnapshot.ScifiShowsAndMovies.Shuffle();
            jsonSnapshot.SitcomShows.Shuffle();
            jsonSnapshot.TeenDramaShowsAndMovies.Shuffle();
            jsonSnapshot.ThrillerShowsAndMovies.Shuffle();
            jsonSnapshot.PopularShowsAndMovies.Shuffle();
            jsonSnapshot.WarShowsAndMovies.Shuffle();
            jsonSnapshot.WesternShowsAndMovies.Shuffle();
            jsonSnapshot.WorkplaceComedyShowsAndMovies.Shuffle();

            return(jsonSnapshot);
        }
Esempio n. 7
0
        public static async Task <TMDBSnapshot> CollectDataAsync(ITMDBService tmdbService, ILogger logger, string languageCode, string regionCode)
        {
            logger.LogInformation($"DataCollector collecting data for language \"{languageCode}\" started at: {DateTime.Now}");

            var tmdbSnapshot = new TMDBSnapshot
            {
                LanguageCode = languageCode,
                RegionCode   = regionCode
            };

            tmdbSnapshot.Configuration         = tmdbService.Configuration;
            tmdbSnapshot.ShowGenres            = (await tmdbService.GetShowGenresAsync(languageCode)).Values.ToList();
            tmdbSnapshot.MovieGenres           = (await tmdbService.GetMovieGenresAsync(languageCode)).Values.ToList();
            tmdbSnapshot.PopularShowsAndMovies = await tmdbService.GetPopularShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.ComedyShowsAndMovies = await tmdbService.GetComedyShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.DramaShowsAndMovies = await tmdbService.GetDramaShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.ActionAdventureShowsAndMovies = await tmdbService.GetActionAndAdventureShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.AnimationShowsAndMovies = await tmdbService.GetAnimationShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.ScifiShowsAndMovies = await tmdbService.GetScifiShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.CrimeShowsAndMovies = await tmdbService.GetCrimeShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.MysteryShowsAndMovies = await tmdbService.GetMysteryShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.ThrillerShowsAndMovies = await tmdbService.GetThrillerShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.HorrorShowsAndMovies = await tmdbService.GetHorrorShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.FamilyShowsAndMovies = await tmdbService.GetFamilyShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.KidsShowsAndMovies = await tmdbService.GetKidsShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.WesternShowsAndMovies = await tmdbService.GetWesternShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.FantasyMovies = await tmdbService.GetFantasyMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.HistoryShowsAndMovies = await tmdbService.GetHistoryShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.RomanceShowsAndMovies = await tmdbService.GetHistoryShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.WarShowsAndMovies = await tmdbService.GetWarShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.DocumentaryShowsAndMovies = await tmdbService.GetDocumentaryShowsAndMovies(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.SitcomShows = await tmdbService.GetSitcomShowsAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.AnthologyShows = await tmdbService.GetAnthologyShowsAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.AnimeShowsAndMovies = await tmdbService.GetAnimeShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.TeenDramaShowsAndMovies = await tmdbService.GetTeenDramaShowsAndMoviesAsync(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.HistoricalDramaShowsAndMovies = await tmdbService.GetHistoricalDramaShowsAndMovies(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.WorkplaceComedyShowsAndMovies = await tmdbService.GetWorkplaceComedyShowsAndMovies(languageCode, regionCode, NUMBER_OF_PAGES);

            tmdbSnapshot.MedicalDramaShowsAndMovies = await tmdbService.GetMedicalDramaShowsAndMovies(languageCode, regionCode, NUMBER_OF_PAGES);

            CollectionFilter.FilterCollections(tmdbSnapshot, logger);
            CreateRandomizedJSONCollection(tmdbSnapshot, logger);

            logger.LogInformation($"DataCollector collecting data for language \"{languageCode}\" finished at: {DateTime.Now}");
            return(tmdbSnapshot);
        }