コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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");
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: kjartab/geonorge
        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"
            });
        }
コード例 #4
0
ファイル: Function1.cs プロジェクト: kjartab/geonorge
        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);
            }
        }
コード例 #5
0
        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();
            }
        }