Example #1
0
 public void Boxfrage(IrcClient connection, string nick, bool check_db = true)
 {
     if (check_db && ConfigHelper.GetBoolean("BoxFrage", false))
     {
         return;
     }
     try
     {
         using (var context = new BotContext())
         {
             User u = context.GetUser(nick);
             UserKeyValueEntry entry = context.GetStorageOrCreate(u, "frag_asked");
             if (check_db)
             {
                 if (!ConfigHelper.GetBoolean("BoxFrage", false) || entry.Value == "true")
                 {
                     return;
                 }
                 Thread.Sleep(10000);
             }
             connection.SendMessage(SendType.Message, nick, $"Hallo {nick}, ich interessiere mich sehr für Fritz!Boxen, wenn du eine oder mehrere hast kannst du sie mir mit !boxadd deine box, mitteilen, falls du dies nicht bereits getan hast :).");
             connection.SendMessage(SendType.Message, nick, "Pro !boxadd bitte nur eine Box nennen (nur die Boxversion) z.b. !boxadd 7270v1 oder !boxadd 7170. Um die anderen im Channel nicht zu stören, sende es mir doch bitte per query/private Nachricht (z.b. /msg FritzBot !boxadd 7270)");
             entry.Value = "true";
             context.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         Log.Error(ex, "Da ist etwas beim erfragen der Box schiefgelaufen");
     }
 }
        public override void SendNotification(User user, string message)
        {
            string receiver = null;

            using (var context = new BotContext())
            {
                UserKeyValueEntry entry = context.GetStorage(user, PluginID);
                if (entry != null)
                {
                    receiver = entry.Value;
                }
            }
            if (receiver == null)
            {
                return;
            }

            SmtpClient  client = new SmtpClient();
            MailAddress from   = new MailAddress(ConfigHelper.GetString("SMTPFrom", ""), "FritzBot");

            MailAddress to          = new MailAddress(receiver);
            MailMessage mailMessage = new MailMessage(from, to);

            mailMessage.Subject = "FritzBot Notification";
            mailMessage.Body    = message;

            client.Send(mailMessage);
        }
 public virtual void ParseSubscriptionSetup(IrcMessage theMessage)
 {
     if (theMessage.CommandArgs.Count < 3)
     {
         theMessage.Answer("Zu wenig Parameter, probier mal: !subscribe setup <SubscriptionProvider> <Einstellung>");
         return;
     }
     using (var context = new BotContext())
     {
         UserKeyValueEntry entry = context.GetStorageOrCreate(theMessage.Nickname, PluginId);
         entry.Value = theMessage.CommandArgs[2];
         context.SaveChanges();
     }
     theMessage.Answer("Einstellungen erfolgreich gespeichert");
 }
Example #4
0
 public override void AddSubscription(IrcMessage theMessage, PluginBase plugin)
 {
     using (var context = new BotContext())
     {
         UserKeyValueEntry entry = context.GetStorage(theMessage.Nickname, "pushover_token");
         if (String.IsNullOrEmpty(entry?.Value))
         {
             theMessage.Answer("Du musst diesen SubscriptionProvider zuerst Konfigurieren (!subscribe setup)");
         }
         else
         {
             base.AddSubscription(theMessage, plugin);
         }
     }
 }
        public override void SendNotification(User user, string message)
        {
            using (var context = new BotContext())
            {
                List <string> names = context.Nicknames.Where(x => x.User.Id == user.Id).Select(x => x.Name).ToList();

                foreach (var connection in ServerManager.Servers)
                {
                    foreach (var channel in connection.IrcClient.GetChannels().Select(connection.IrcClient.GetChannel))
                    {
                        var userInChannel = channel.Users.Keys.Intersect(names).FirstOrDefault();
                        if (userInChannel != null)
                        {
                            UserKeyValueEntry entry = context.GetStorage(user, PluginId);

                            connection.IrcClient.SendMessage((entry?.Value ?? "PRIVMSG") == "PRIVMSG" ? SendType.Message : SendType.Notice, userInChannel, message);
                        }
                    }
                }
            }
        }