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; } }
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"); } }
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"); } } }