Пример #1
0
        /// <summary>
        /// Adds the given name to _items and calls SaveItem() and UpdateARList()
        /// </summary>
        /// <param name="name">name of the new item</param>
        internal void AddNew(string name)
        {
            if (_items.ContainsKey(name))
            {
                SaveItem(name);
                return;
            }

            AutoResponseItem item = new AutoResponseItem();

            _items.Add(name, item);
            this.SaveItem(name);
            this.UpdateARList();
        }
Пример #2
0
        /// <summary>
        /// Updates clb_chat_arList
        /// </summary>
        private void UpdateARList()
        {
            int i = 0;

            AutoResponseItem[] items = new AutoResponseItem[_items.Count];
            _items.Values.CopyTo(items, 0);

            // clear lis
            _b.GUI.clb_chat_arList.Items.Clear();

            foreach (AutoResponseItem item in items)
            {
                _b.GUI.clb_chat_arList.Items.Add(item.Name);
                _b.GUI.clb_chat_arList.SetItemChecked(i, item.IsActive());
                i++;
            }
        }
Пример #3
0
        /// <summary>
        /// Checks all auto response items if any matches.
        /// </summary>
        /// <param name="msgIN">message to check</param>
        /// <param name="cl"></param>
        /// <returns>message(s)</returns>
        internal string[] Process(ChatMessage msgIN, GuiChatLobby cl)
        {
            // check if auto response is activated
            if (!_b.GUI.cb_chat_arEnable.Checked)
            {
                return(null);
            }

            // check if msg is too old
            System.Diagnostics.Debug.WriteLineIf(DEBUG, "rec msg: " + msgIN.send_time + " - now: " + Processor.conv_Date2Timestam(DateTime.UtcNow));
            if (msgIN.send_time < Processor.conv_Date2Timestam(DateTime.UtcNow) - 60)
            {
                return(null);
            }

            // check if there are any items
            if (_items.Count == 0)
            {
                this.SetupBasicItems();
            }

            List <string> msgOUT = new List <string>();
            string        s      = "";

            AutoResponseItem[] items = new AutoResponseItem[_items.Count];
            _items.Values.CopyTo(items, 0);

            foreach (AutoResponseItem item in items)
            {
                if (item.IsActive() && !item.IsLobbyBlacklisted(cl.ID))
                {
                    s = item.Process(msgIN);
                }

                if (s != "")
                {
                    msgOUT.Add(s);
                    s = "";
                }
            }
            return(msgOUT.ToArray());
        }
Пример #4
0
        /// <summary>
        /// Adds /time, /date and /manual command
        /// </summary>
        private void SetupBasicItems()
        {
            string name;

            // add /time command
            name = "time";
            if (!_items.Keys.Contains <string>(name))
            {
                ResponseFunctionDelegate timeDelegate = delegate(string s)
                {
                    return(System.DateTime.UtcNow.ToLongTimeString() + " (UTC)");
                };
                AutoResponseItem time = new AutoResponseItem(name, "time", "", '/', true, false, false, timeDelegate);
                //time.Enable();
                _items.Add(name, time);
            }

            // add /date command
            name = "date";
            if (!_items.Keys.Contains <string>(name))
            {
                ResponseFunctionDelegate dateDelegate = delegate(string s)
                {
                    return(System.DateTime.UtcNow.ToShortDateString() + " (UTC)");
                };
                AutoResponseItem date = new AutoResponseItem(name, "date", "", '/', true, false, false, dateDelegate);
                //date.Enable();
                _items.Add(name, date);
            }

            // add /manual command
            name = "manual EN";
            if (!_items.Keys.Contains <string>(name))
            {
                string s = "";
                //s += "German: <a href=\"retroshare://file?name=RetroShare_Manual_German_2012_12_12.pdf&size=221437&hash=271cc46798434ffbc6163daae86cce475621c952\">RetroShare_Manual_German_2012_12_12.pdf</a> \r";
                s += "English: <a href=\"retroshare://file?name=RetroShare_Manual_English_2012_12_12_UNFINISHED.pdf&size=183421&hash=b7196b802271946e979279f56e4dea4c1cdac9d0\">RetroShare_Manual_English_2012_12_12_UNFINISHED.pdf</a>";
                AutoResponseItem manual = new AutoResponseItem(name, "manual", s, '/', true, false, false);
                //manual.Enable();
                _items.Add(name, manual);
            }
            name = "manual DE";
            if (!_items.Keys.Contains <string>(name))
            {
                string s = "";
                s += "German: <a href=\"retroshare://file?name=RetroShare_Manual_German_2012_12_12.pdf&size=221437&hash=271cc46798434ffbc6163daae86cce475621c952\">RetroShare_Manual_German_2012_12_12.pdf</a> \r";
                //s += "English: <a href=\"retroshare://file?name=RetroShare_Manual_English_2012_12_12_UNFINISHED.pdf&size=183421&hash=b7196b802271946e979279f56e4dea4c1cdac9d0\">RetroShare_Manual_English_2012_12_12_UNFINISHED.pdf</a>";
                AutoResponseItem manual = new AutoResponseItem(name, "manual", s, '/', true, false, false);
                //manual.Enable();
                _items.Add(name, manual);
            }

            // add /insult command
            //name = "insult";
            //if (!_items.Keys.Contains<string>(name))
            //{
            //    ResponseFunctionDelegate insultDelegate = delegate(string msg)
            //    {
            //        string[] a = msg.Split(' ');
            //        if (a == null || a.Length < 2)
            //            return "";
            //        return ("@" + a[1] + ": " + Processor.GetRandomInsult());
            //    };
            //    AutoResponseItem insult = new AutoResponseItem(name, "insult", "", '/', false, true, false, insultDelegate);
            //    //insult.Enable();
            //    _items.Add(name, insult);
            //}
        }