private void CreateSiteWatcher(string site, double interval, string wantedText) { SiteWatcher siteWatcher = new SiteWatcher(site, interval, wantedText, "CloudflareBanger.py"); siteWatcher.OnAdvAvaiable += SiteWatcher_OnAdvAvaiable; siteWatcher.StartWatcher(); int attempts = 4; int totalSteps = Convert.ToInt32(interval) * 1000 * attempts; int counter = 0; int step = 100; while (true) { counter += step; Thread.Sleep(step); if (_isEventCalled || counter > totalSteps) { break; } } if (siteWatcher.IsWorking) { siteWatcher.StopWatcher(); } }
private void StartSiteWatcher() { SiteWatcher siteWatcher = new SiteWatcher(Config.WatchedSite, Config.Interval, Config.WantedText, Config.CloudflareBangerScriptPath); siteWatcher.OnAdvAvaiable += SiteWatcher_OnAdvAvaiable; siteWatcher.StartWatcher(); Console.WriteLine("Site watcher working"); }
static async Task FullRun() { var siteWatcher = new SiteWatcher(); var res = await siteWatcher.Crawl("geonorge/Basisdata/MatrikkelenAdresse/", areaTargets : new List <string> { "0000" }, acceptedDataFormats : new List <string> { "postgis" }); }
public static async Task Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, ILogger log) { log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}"); var siteWatcher = new SiteWatcher(); foreach (var config in watchConfigs) { var res = await siteWatcher.Crawl(config.RelativePath); } }
public async Task CheckFileUri(string id) { var store = new PostgresEventStore <DiffPatchEvent, EventTypes, JToken>(null); var patcher = new JsonDiffPatcher <Adresse>(); _adresseEvsoApi = new DiffPatchEventSourceApi <Adresse>(store, patcher); var current = await _adresseEvsoApi.GetCurrentAggregate(id); var watcher = new SiteWatcher(); await watcher.Crawl(id); var ev = patcher.GenerateEvent(id, null, current.Resource); switch (ev.EventType) { case EventTypes.Ignored: // log nothing happened break; case EventTypes.Created: // shouldnt really happen..? break; case EventTypes.Deleted: // 404 from the service.. prompt user input - e.g. should all docs be marked as deleted? break; case EventTypes.Updated: var res = await _adresseEvsoApi.EffectuateEvent(ev); if (res.StatusCode == System.Net.HttpStatusCode.Created) { await QueueDownloadDiffTask(ev); } break; default: throw new ArgumentOutOfRangeException(); } }