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