public void MainProgram() { bool isDatabaseAvailable = Database.CheckAvailability(); if (!isDatabaseAvailable) { throw new Exception("Cannot connect to database, please check if the database server is running."); } WriteToConsole("Database connection established."); string searchQuery = ConfigurationManager.AppSettings["searchQuery"]; string url = string.Format(urlBase, Uri.EscapeDataString(searchQuery)); string torrentHash = GetTorrentHashFromUrl(url); while (true) { string torrentAnnounceInfo = GetTorrentInfoFromTracker(torrentHash); TorrentAnnounceInfo parsedTorrentAnnounceInfo = ParseTorrentInfo(torrentAnnounceInfo, torrentHash); InsertInfoToDatabase(parsedTorrentAnnounceInfo); WriteToConsole("Added info to database, will check again {0} seconds.", intervalSeconds); Thread.Sleep(oneMinuteMillis); } }
public static void Insert(TorrentAnnounceInfo parsedTorrentAnnounceInfo) { string query = "INSERT INTO [Casual].[dbo].[TorrentPeerState] ([TorrentHash], [Datetime], [Seed], [Leech], [Peers], [FullText], [Interval], [MinInterval])" + "\n" + "VALUES (@TorrentHash, @Datetime, @Seed, @Leech, @Peers, @FullText, @Interval, @MinInterval)"; List <SqlParameter> parameters = new List <SqlParameter>(); parameters.Add(new SqlParameter("TorrentHash", parsedTorrentAnnounceInfo.TorrentHash)); parameters.Add(new SqlParameter("Datetime", DateTime.Now)); parameters.Add(new SqlParameter("Seed", parsedTorrentAnnounceInfo.Complete)); parameters.Add(new SqlParameter("Leech", parsedTorrentAnnounceInfo.Incomplete)); parameters.Add(new SqlParameter("Peers", parsedTorrentAnnounceInfo.Peers)); parameters.Add(new SqlParameter("FullText", parsedTorrentAnnounceInfo.FullText)); parameters.Add(new SqlParameter("Interval", parsedTorrentAnnounceInfo.Interval)); parameters.Add(new SqlParameter("MinInterval", parsedTorrentAnnounceInfo.MinInterval)); RunQueryUpdateOneRow(query, parameters); }
private static void InsertInfoToDatabase(TorrentAnnounceInfo parsedTorrentAnnounceInfo) { Database.Insert(parsedTorrentAnnounceInfo); }