예제 #1
0
        private static void Do(Options options)
        {
            try
            {
                configReader = new ConfigReader(CONFIG_PATH);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Couldn't read RSS configuration. Reason: " + ex.Message);
                Console.ReadKey();
                return;
            }

            string feedUrl = options.FeedURL ?? configReader.FeedURL;

            if (!IncidentDatabase.Instance.Init())
            {
                Console.WriteLine("Couldn't connect to database. See debug output for details.");
                Console.ReadKey();
                return;
            }

            OldEntryUpdater  oldEntryUpdater = new OldEntryUpdater(options.UpdateOldMaxAge, false);
            RssFeedProcessor feedProcessor   = new RssFeedProcessor(feedUrl);
            int oldEntryUpdaterTimer         = 0;
            int feedProcessorTimer           = 0;

            do
            {
                if ((oldEntryUpdaterTimer == 0) && !options.NoUpdateOld)
                {
                    oldEntryUpdater.Do();
                }
                if ((feedProcessorTimer == 0) && !options.NoProcessNews)
                {
                    feedProcessor.Do();
                }
                oldEntryUpdaterTimer++;
                feedProcessorTimer++;
                if (oldEntryUpdaterTimer == options.UpdateOldFrequency)
                {
                    oldEntryUpdaterTimer = 0;
                }
                if (feedProcessorTimer == options.ProcessNewsFrequency)
                {
                    feedProcessorTimer = 0;
                }
                if (!options.RunOnce)
                {
                    Thread.Sleep(60000);
                }
            } while (!options.RunOnce);

            IncidentDatabase.Instance.DeInit();
        }
        public void Remove_Whitespace_From_Start_Url()
        {
            // Arrange
            string url      = " https://owain.codes/something";
            string expected = "https://owain.codes/something";

            // Act
            RssFeedProcessor test = new RssFeedProcessor(url);


            // Assert
            string actual = test.CleanupLink(url);

            Assert.AreEqual(expected, actual, "URL hasn't been cleaned up");
        }