示例#1
0
        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;
        }
示例#2
0
        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);
            }
        }