public static void LoadConfig() { if (File.Exists("IRCStatistician.conf")) { AppLog.WriteLine(1, "STATUS", "Loading configuration from IRCStatistician.conf"); string CurLine; StreamReader ConfigFile = new StreamReader("IRCStatistician.conf"); while ((CurLine = ConfigFile.ReadLine()) != null) { if (CurLine.Substring(0, 1) != "#") { string[] CurLineSplit = CurLine.Split(new char[1] { '=' }, 2); AppLog.WriteLine(4, "CONFIG", "Configuration Option: " + CurLineSplit[0] + " = " + CurLineSplit[1]); switch (CurLineSplit[0].ToLower()) { case "sqlserverhost": m_SQLServerHost = CurLineSplit[1]; break; case "sqlserverport": m_SQLServerPort = Convert.ToInt32(CurLineSplit[1]); break; case "sqlusername": m_SQLUsername = CurLineSplit[1]; break; case "sqlpassword": m_SQLPassword = CurLineSplit[1]; break; case "sqldatabase": m_SQLDatabase = CurLineSplit[1]; break; case "sqltableprefix": m_SQLTablePrefix = CurLineSplit[1]; break; case "resolution": m_Resolution = Convert.ToInt32(CurLineSplit[1]); break; default: AppLog.WriteLine(1, "ERROR", "Unknown Configuration Option: " + CurLineSplit[0] + " = " + CurLineSplit[1]); break; } } } } else { AppLog.WriteLine(1, "ERROR", "No Configuration File Found. Did you copy IRCStatistician.sample.conf and change the settings?"); } }
public void ProcessLog(string Data) { TextReader LogTextReader = new StringReader(Data); string CurLine; int i = 0; DateTime StartOfDay = DateTime.MinValue; DateTime Timestamp = DateTime.MinValue; while ((CurLine = LogTextReader.ReadLine()) != null) { if (CurLine.Substring(0, 1) == "#") { if (CurLine.Substring(0, 15) == "# Opened (UTC):") { string DayStr = CurLine.Substring(16); StartOfDay = Convert.ToDateTime(DayStr.Substring(0, DayStr.IndexOf(' '))); } // Is a comment } else { string TimeNum = CurLine.Substring(0, CurLine.IndexOf(' ')); Timestamp = StartOfDay.AddMilliseconds(Convert.ToDouble(TimeNum)); // The will return the number of whole Config.Resolution chunks that have passed since Jan 1 2014. uint TimeframeID = (uint)(((Timestamp - new DateTime(2014, 1, 1)).TotalSeconds) / Config.Resolution); CurLine = CurLine.Substring(TimeNum.Length + 1); if (CurLine.Substring(0, 1) == ":") { CurLine = CurLine.Substring(1); string[] ParameterSplit = CurLine.Split(" ".ToCharArray(), 3, StringSplitOptions.RemoveEmptyEntries); Sender Sender = IRCFunctions.ParseSender(ParameterSplit[0]); string Command = ParameterSplit[1]; string Parameters = ParameterSplit[2]; Network.Parse(Timestamp, TimeframeID, Sender, Command, Parameters); } else if (CurLine.Substring(0, 4) == "PING") { // Do anything here? } else { AppLog.WriteLine(5, "DEBUG", "Unknown Line Format: " + CurLine); } } i++; } }