Exemplo n.º 1
0
    void Replace(ReplaceAction replace, string channel, string invoker)
    {
        foreach (var item in history.GetMessages(channel))
        {
            string replacedMsg;
            switch (replace.TryReplace(item.Message, out replacedMsg))
            {
            case ReplaceResult.NoMatch:
                continue;

            case ReplaceResult.RegexTimeout:
                irc.SendNotice(invoker, "Your regular expression timed out.");
                return;

            case ReplaceResult.Success:
                if (FoulPlay(replacedMsg))
                {
                    irc.SendNotice(invoker, "Replaced message was too long, not outputting to prevent spam.");
                }
                else
                {
                    irc.SendMessage(channel, "<{0}> {1}", item.Nick, replacedMsg);
                }
                return;
            } // switch
        }     // foreach
    }
Exemplo n.º 2
0
    void Set(string nick, IEnumerable <string> args)
    {
        var name =
            args.GetEndArg(out string dateStr)
            .ToJoined(JoinedOptions.TrimRemove);

        if (TryGetDate(dateStr, out DateTime date))
        {
            var unit = new TimeLeftUnit(name, date);

            lock (_locker)
            {
                storage.Set(name, unit);
                storage.Serialize(loc);
            }
            irc.SendNotice(nick, "Set \"{0}\" :: {1}", name, date.ToString(dateFmt));
        }
    }
Exemplo n.º 3
0
    public void Read(ITriggerMsg e)
    {
        // tell-read [amount]
        var inbox = inboxes.Get(e.Nick);
        var tells = inbox.Read(Amount(e.GetArg()));

        if (tells.Length > 0)
        {
            foreach (TellEntry tellMsg in tells)
            {
                irc.SendNotice(e.Nick, FormatTell(tellMsg));
            }

            irc.SendNotice(e.Nick, " ----- {0} message(s) remaining.", inbox.MessagesCount);
            inboxes.Save(inbox);
        }
        else
        {
            irc.SendNotice(e.Nick, "No messages to read.");
        }
    }
Exemplo n.º 4
0
    void Add(string channel, string nick, string patternsStr, int?assocPat)
    {
        var patterns = InputTools.GetPatterns(patternsStr);

        int amount = 0;

        if (assocPat == null)
        {
            foreach (var pattern in patterns)
            {
                if (feedPatterns.Add(channel, pattern) != -1)
                {
                    amount++;
                }
            }

            irc.SendNotice(nick, "Added {0} pattern(s)", amount);
        }
        else if (assocPat >= 0)
        {
            foreach (var pattern in patterns)
            {
                if (feedPatterns.AddExclude(channel, assocPat.Value, pattern) != -1)
                {
                    amount++;
                }
            }

            irc.SendNotice(nick, "Added {0} exclude pattern(s)", amount);
        }
        else
        {
            foreach (var pattern in patterns)
            {
                if (feedPatterns.AddGlobalExclude(channel, pattern) != -1)
                {
                    amount++;
                }
            }

            irc.SendNotice(nick, "Added {0} global exclude pattern(s)", amount);
        }
    }