public void WriteStatus(string nick, string host, string place, Item.Action action, string newnick = "", string reason = "") { Item user = null; lock (GlobalList) { foreach (Item xx in GlobalList) { if (nick.ToUpper() == xx.nick.ToUpper()) { user = xx; break; } } if (user == null) { user = new Item(nick, host, place, action, null, newnick, reason); GlobalList.Add(user); } else { user.nick = nick; user.LastAc = action; user.LastSeen = DateTime.Now; user.hostname = host; user.lastplace = place; user.quit = reason; user.newnick = newnick; } } save = true; }
public void LoadData() { SearchHostThread = new Thread(StartRegex) { Name = "Module:Seen/SearchHostThread" }; Core.ThreadManager.RegisterThread(SearchHostThread); SearchHostThread.Start(); try { Core.RecoverFile(Variables.ConfigurationDirectory + Path.DirectorySeparatorChar + "seen.db"); if (File.Exists(Variables.ConfigurationDirectory + Path.DirectorySeparatorChar + "seen.db")) { GlobalList = new List <Item>(); lock (GlobalList) { XmlDocument stat = new XmlDocument(); stat.Load(Variables.ConfigurationDirectory + Path.DirectorySeparatorChar + "seen.db"); uint invalid = 0; if (stat.ChildNodes[0].ChildNodes.Count > 0) { foreach (XmlNode curr in stat.ChildNodes[0].ChildNodes) { try { string nick = curr.Attributes["nick"].Value; Item.Action action = Item.Action.Exit; switch (curr.Attributes["action"].Value) { case "Join": action = Item.Action.Join; break; case "Part": action = Item.Action.Part; break; case "Talk": action = Item.Action.Talk; break; case "Kick": action = Item.Action.Kick; break; case "Nick": action = Item.Action.Nick; break; default: invalid++; continue; } string new_nick = ""; string Reason = curr.Attributes["reason"].Value; if (action == Item.Action.Nick) { new_nick = curr.Attributes["newnick"].Value; if (new_nick.Length == 0) { invalid++; continue; } } Item User = new Item(nick, curr.Attributes[1].Value, curr.Attributes[2].Value, action, curr.Attributes[4].Value, new_nick, Reason); GlobalList.Add(User); } catch (Exception fail) { HandleException(fail); } } if (invalid > 0) { ErrorLog("Removed " + invalid.ToString() + " malformed lines"); } } } } } catch (Exception f) { HandleException(f); } }