示例#1
0
        public void Run(IrcMessage theMessage)
        {
            switch (theMessage.CommandArgs.FirstOrDefault())
            {
            case "add":
                SubscriptionAdd(theMessage);
                return;

            case "available":
                SubscriptionsAvailable(theMessage);
                return;

            case "list":
                SubscriptionsList(theMessage);
                return;

            case "setup":
                SetupSubscription(theMessage);
                return;

            case "remove":
                RemoveSubscription(theMessage);
                return;

            case "help":
                HelpSubscription(theMessage);
                return;

            default:
                theMessage.Answer("Das kommt mir nicht bekannt vor...");
                theMessage.AnswerHelp(this);
                return;
            }
        }
示例#2
0
        public void Run(IrcMessage theMessage)
        {
            if (theMessage.CommandArgs.Count < 2)
            {
                theMessage.AnswerHelp(this);
                return;
            }
            PluginInfo bgtask = PluginManager.Get(theMessage.CommandArgs[0]);

            if (bgtask?.IsBackgroundTask ?? false)
            {
                if (theMessage.CommandArgs[1].Equals("start", StringComparison.OrdinalIgnoreCase))
                {
                    bgtask.Start();
                    theMessage.Answer("Task erfolgreich gestartet");
                }
                else if (theMessage.CommandArgs[1].Equals("stop", StringComparison.OrdinalIgnoreCase))
                {
                    bgtask.Stop();
                    theMessage.Answer("Task erfolgreich angehalten");
                }
                else
                {
                    theMessage.Answer("Ich habe die Aktion die auf den Task angewandt werden soll nicht verstanden");
                }
            }
            else
            {
                theMessage.Answer($"Ich habe keinen Task namens {theMessage.CommandArgs[0]} finden können");
            }
        }
示例#3
0
        public void Run(IrcMessage theMessage)
        {
            string channel;

            if (theMessage.CommandArgs.Count < 2 | !Int32.TryParse(theMessage.CommandArgs.FirstOrDefault(), out int tage))
            {
                if (theMessage.IsPrivate)
                {
                    theMessage.Answer("Da du mir Privat schreibst, kann ich den Channel nicht erraten. Verwende: !bots <Tage> <Channel>");
                    return;
                }
                channel = theMessage.Source;
            }
            else if (theMessage.CommandArgs.Count == 2)
            {
                channel = theMessage.CommandArgs[1];
            }
            else
            {
                theMessage.AnswerHelp(this);
                return;
            }

            if (!theMessage.Data.Irc.JoinedChannels.Contains(channel))
            {
                theMessage.Answer("In diesem Channel befinde ich mich nicht und kann daher keine Auskunft geben.");
                return;
            }

            using (var context = new BotContext())
            {
                var UserImChannel = theMessage.Data.Irc.GetChannel(channel).Users.Values.Select(x =>
                {
                    User u          = context.GetUser(x.Nick);
                    SeenEntry entry = context.SeenEntries.FirstOrDefault(s => s.User.Id == u.Id);
                    return(new { Nickname = x.Nick, User = u, SeenEntry = entry });
                }).ToList();

                string wahrscheinlichInaktiv = UserImChannel.Where(x => x.User == null || x.SeenEntry == null).Select(x => x.Nickname).Join(", ");
                string bestimmtInaktiv       = UserImChannel.Where(x => x.SeenEntry != null && x.SeenEntry.LastMessaged < DateTime.Now.AddDays(-tage)).Select(x => x.Nickname).Join(", ");

                if (!String.IsNullOrWhiteSpace(wahrscheinlichInaktiv))
                {
                    theMessage.Answer($"User die wahrscheinlich inaktiv sind: {wahrscheinlichInaktiv}");
                }

                if (!String.IsNullOrWhiteSpace(bestimmtInaktiv))
                {
                    theMessage.Answer($"User die definitiv länger als {tage} Tage inaktiv sind: {bestimmtInaktiv}");
                }

                if (String.IsNullOrWhiteSpace(wahrscheinlichInaktiv) && String.IsNullOrWhiteSpace(bestimmtInaktiv))
                {
                    theMessage.Answer("Keinen Benutzer gefunden der in diese Kriterien fällt");
                }
            }
        }