Example #1
0
 public PrivateAPIController(PisstaubeDbContextFactory contextFactory,
                             Storage storage, BeatmapSearchEngine searchEngine, Crawler crawler, Cleaner cleaner,
                             PisstaubeCacheDbContextFactory cache, Kaesereibe reibe)
 {
     _contextFactory = contextFactory;
     _storage        = storage;
     _searchEngine   = searchEngine;
     _crawler        = crawler;
     _cleaner        = cleaner;
     _cache          = cache;
     _reibe          = reibe;
 }
Example #2
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env,
                              Crawler crawler, APIAccess apiv2, Kaesereibe reibe, BeatmapSearchEngine searchEngine, BMUpdater bmUpdater)
        {
            if (Environment.GetEnvironmentVariable("LOG_LEVEL") != null)
            {
                if (Enum.TryParse(Environment.GetEnvironmentVariable("LOG_LEVEL"), out LogLevel level))
                {
                    Logger.Level = level;
                }
            }

            Logger.Storage = dataStorage.GetStorageForDirectory("logs");

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseHsts();
            }

            if (searchEngine.Search("test") == null)
            {
                Logger.LogPrint("Failed to Connect to ElasticSearch!", LoggingTarget.Network, LogLevel.Error);
                Environment.Exit(0);
            }

            apiv2.Login(Environment.GetEnvironmentVariable("OSU_EMAIL"), Environment.GetEnvironmentVariable("OSU_PASSWORD"));

            DogStatsd.Configure(new StatsdConfig {
                Prefix = "pisstaube"
            });

            DogStatsd.ServiceCheck("crawler.is_crawling", Status.UNKNOWN);

            if (Environment.GetEnvironmentVariable("CRAWLER_DISABLED") != "true")
            {
                crawler.BeginCrawling();
            }
            else
            {
                DogStatsd.ServiceCheck("crawler.is_crawling", Status.CRITICAL);
            }

            if (Environment.GetEnvironmentVariable("CHEESEGULL_CRAWLER_DISABLED") != "true")
            {
                reibe.BeginCrawling();
            }
            else
            {
                DogStatsd.ServiceCheck("kaesereibe.is_crawling", Status.CRITICAL);
            }

            if (!Directory.Exists("data"))
            {
                Directory.CreateDirectory("data");
            }

            if (!Directory.Exists("data/cache"))
            {
                Directory.CreateDirectory("data/cache");
            }

            DogStatsd.ServiceCheck("is_active", Status.OK);

            if (Environment.GetEnvironmentVariable("UPDATER_DISABLED") != "true")
            {
                bmUpdater.BeginUpdaterAsync();
            }

            app.UseMvc(routes => routes.MapRoute("default", "{controller=Home}/{action=Index}/{id?}"));
        }