Exemple #1
0
        private ProxyCheckJob MakeProxyCheckJob(ProxyCheckJobOptions options)
        {
            var job = new ProxyCheckJob(settingsService, pluginRepo, logger)
            {
                StartCondition    = options.StartCondition,
                Bots              = options.Bots,
                CheckOnlyUntested = options.CheckOnlyUntested,
                Url        = options.Target.Url,
                SuccessKey = options.Target.SuccessKey,
                Timeout    = TimeSpan.FromMilliseconds(options.TimeoutMilliseconds)
            };

            job.GeoProvider = new DBIPProxyGeolocationProvider("dbip-country-lite.mmdb");
            job.Proxies     = proxyReloadService.Reload(options.GroupId, job.OwnerId).Result;

            // Update the stats
            var proxies = options.CheckOnlyUntested
                ? job.Proxies.Where(p => p.WorkingStatus == ProxyWorkingStatus.Untested)
                : job.Proxies;

            job.Total       = proxies.Count();
            job.Tested      = proxies.Count(p => p.WorkingStatus != ProxyWorkingStatus.Untested);
            job.Working     = proxies.Count(p => p.WorkingStatus == ProxyWorkingStatus.Working);
            job.NotWorking  = proxies.Count(p => p.WorkingStatus == ProxyWorkingStatus.NotWorking);
            job.ProxyOutput = new DatabaseProxyCheckOutput(proxyRepo);

            return(job);
        }
Exemple #2
0
 private JobType GetJobType(Job job)
 {
     return(job switch
     {
         MultiRunJob _ => JobType.MultiRun,
         ProxyCheckJob _ => JobType.ProxyCheck,
         RipJob _ => JobType.Ripper,
         SpiderJob _ => JobType.Spider,
         PuppeteerUnitTestJob _ => JobType.PuppeteerUnitTest,
         _ => throw new NotImplementedException()
     });