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); }
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() });