示例#1
0
 private void tsmEnableSMTPNotifications_Click(object sender, EventArgs e)
 {
     tsmEnableSMTPNotifications.Checked       = !tsmEnableSMTPNotifications.Checked;
     Settings.Default.EnableSmtpNotifications = tsmEnableSMTPNotifications.Checked;
     Settings.Default.Save();
     if (Settings.Default.EnableSmtpNotifications)
     {
         var CurrSettings = SmtpDetails.LoadFromSettings();
         if (!CurrSettings.IsValid)
         {
             ShowSmtpDialog();
         }
     }
 }
示例#2
0
 private void SendSmtpNotification(SmtpDetails SmtpSettings, string StampedMessage)
 {
     using (var Client = new SmtpClient()) {
         Client.UseDefaultCredentials = false;
         Client.Credentials           = new NetworkCredential(SmtpSettings.Username, SmtpSettings.Password);
         Client.Host           = SmtpSettings.SmtpServer;
         Client.Port           = SmtpSettings.SmtpPort;
         Client.EnableSsl      = true;
         Client.DeliveryMethod = SmtpDeliveryMethod.Network;
         using (var Message = new MailMessage(SmtpSettings.FromEmail, SmtpSettings.Target)) {
             Message.Subject = "Path of Exile Whisper Notification";
             // Limit messages to around 120 characters, some phone providers don't like more.
             Message.Body = StampedMessage;
             if (Message.Body.Length + Message.Subject.Length > 120)
             {
                 Message.Body = Message.Body.Substring(0, 120 - Message.Subject.Length) + "..";
             }
             Client.Send(Message);
         }
     };
 }
示例#3
0
		private void SendSmtpNotification(SmtpDetails SmtpSettings, string StampedMessage) {
			using(var Client = new SmtpClient()) {
				Client.UseDefaultCredentials = false;
				Client.Credentials = new NetworkCredential(SmtpSettings.Username, SmtpSettings.Password);
				Client.Host = SmtpSettings.SmtpServer;
				Client.Port = SmtpSettings.SmtpPort;
				Client.EnableSsl = true;
				Client.DeliveryMethod = SmtpDeliveryMethod.Network;
				string FromAddress = SmtpSettings.Username + "@" + GuessHost(SmtpSettings.SmtpServer);
				using(var Message = new MailMessage(FromAddress, SmtpSettings.Target)) {
					Message.Subject = "Path of Exile Whisper Notification";
					// Limit messages to around 120 characters, some phone providers don't like more.
					Message.Body = StampedMessage;
					if(Message.Body.Length + Message.Subject.Length > 120)
						Message.Body = Message.Body.Substring(0, 120 - Message.Subject.Length) + "..";
					Client.Send(Message);
				}
			};
		}
		private void ConfigureSmtpDialog_Load(object sender, EventArgs e) {
			this.Details = SmtpDetails.LoadFromSettings();
			propSettings.SelectedObject = Details;
			propSettings.PropertyValueChanged += propSettings_PropertyValueChanged;
		}
 private void ConfigureSmtpDialog_Load(object sender, EventArgs e)
 {
     this.Details = SmtpDetails.LoadFromSettings();
     propSettings.SelectedObject        = Details;
     propSettings.PropertyValueChanged += propSettings_PropertyValueChanged;
 }
示例#6
0
        void ProcessMessage(MessageData obj)
        {
            if (obj.MessageType == LogMessageType.Party && !Settings.Default.LogPartyMessages)
            {
                return;
            }
            if (Settings.Default.NotifyMinimizedOnly && IsPoeActive())
            {
                if (!IdleManager.IsUserIdle)
                {
                    // If the user isn't idle, replay the message if they do go idle.
                    IdleManager.AddIdleAction(() => ProcessMessage(obj));
                    return;
                }
                // Otherwise, they are idle, so process the message anyways.
            }
            string StampedMessage = "[" + obj.Date.ToShortTimeString() + "]" + (obj.Sender == null ? "" : (" " + LogMonitor.ChatSymbolForMessageType(obj.MessageType) + obj.Sender)) + ": " + obj.Message;
            string Title          = "Path of Exile " + obj.MessageType;

            Invoke(new Action(() => AppendMessage(StampedMessage)));
            if (Settings.Default.TrayNotifications)
            {
                Invoke(new Action(() => {
                    NotificationIcon.Visible = true;
                    NotificationIcon.ShowBalloonTip(5000, Title, (obj.Sender == null ? "" : (obj.Sender + ": ")) + obj.Message, ToolTipIcon.Info);
                }));
            }
            if (Settings.Default.EnableSound)
            {
                try {
                    this.SoundPlayer.Play();
                } catch (Exception ex) {
                    AppendMessage("<Error playing sound. This usually occurs due to the Content folder being missing.\r\n  Additional Info: " + ex.Message + ">");
                }
            }
            if (Settings.Default.EnableSmtpNotifications)
            {
                // Feels wasteful to always reload, but really it should only take a millisecond or less.
                var SmtpSettings = SmtpDetails.LoadFromSettings();
                var SmtpAct      = CheckedAction("SMTP", () => SendSmtpNotification(SmtpSettings, StampedMessage));
                if (!SmtpSettings.NotifyOnlyIfIdle)
                {
                    SmtpAct();
                }
                else
                {
                    IdleManager.AddIdleAction(SmtpAct);
                }
            }
            if (Settings.Default.EnablePushbullet)
            {
                var PbSettings = PushBulletDetails.LoadFromSettings();
                var PbAct      = CheckedAction("PushBullet", () => {
                    var Client = new PushBulletClient(PbSettings);
                    Client.SendPush(Title, StampedMessage);
                });
                if (!PbSettings.NotifyOnlyIfIdle)
                {
                    PbAct();
                }
                else
                {
                    IdleManager.AddIdleAction(PbAct);
                }
            }
        }
示例#7
0
 private void PlayNotificationsForMessage(MessageData Message, bool AssumeInactive)
 {
     if (Settings.Default.NotifyMinimizedOnly && IsPoeActive())
     {
         if (!IdleManager.IsUserIdle)
         {
             // If the user isn't yet idle, replay the message if they do go idle.
             IdleManager.AddIdleAction(() => PlayNotificationsForMessage(Message, AssumeInactive));
             return;
         }
         // Otherwise, they are idle, so process the message anyways.
     }
     if (Settings.Default.TrayNotifications)
     {
         NotificationIcon.Visible = true;
         NotificationIcon.ShowBalloonTip(5000, Message.Title, (Message.Sender == null ? "" : (Message.Sender + ": ")) + Message.Message, ToolTipIcon.Info);
     }
     if (Settings.Default.EnableSound)
     {
         try {
             this.SoundPlayer.Play();
         } catch (Exception ex) {
             LogMessage("<Error playing sound. This usually occurs due to the Content folder being missing.\r\n  Additional Info: " + ex.Message + ">", null, LogMessageType.Status);
         }
     }
     if (Settings.Default.EnableSmtpNotifications)
     {
         var SmtpSettings = SmtpDetails.LoadFromSettings();
         var SmtpAct      = CheckedAction("SMTP", () => SendSmtpNotification(SmtpSettings, Message.DisplayMessage));
         if (!SmtpSettings.NotifyOnlyIfIdle || AssumeInactive)
         {
             SmtpAct();
         }
         else
         {
             IdleManager.AddIdleAction(SmtpAct);
         }
     }
     if (Settings.Default.EnablePushbullet)
     {
         var   PbSettings = PushBulletDetails.LoadFromSettings();
         Regex Pattern    = null;
         Match Matches    = null;
         if (!String.IsNullOrWhiteSpace(PbSettings.NotifyOnlyIfMatches))
         {
             Pattern = new Regex(PbSettings.NotifyOnlyIfMatches);
             Matches = Pattern.Match(Message.Message);
         }
         if (Pattern == null || ((Pattern != null) && Matches.Success))
         {
             var PbAct = CheckedAction("PushBullet", () => {
                 var Client = new PushBulletClient(PbSettings);
                 Client.SendPush(Message.Title, Message.DisplayMessage);
             });
             if (AssumeInactive || !PbSettings.NotifyOnlyIfIdle)
             {
                 PbAct();
             }
             else
             {
                 IdleManager.AddIdleAction(PbAct);
             }
         }
     }
     if (Settings.Default.FlashTaskbar && (!IsPoeActive() || AssumeInactive))
     {
         var PoeProcess = GetPoeProcess();
         if (PoeProcess != null)
         {
             var FlashAct = CheckedAction("Taskbar Flash", () => WindowFlasher.FlashWindow(PoeProcess.MainWindowHandle, FlashStyle.All));
             FlashAct();
         }
         else
         {
             LogMessage("<Could not find the PoE process to flash the taskbar>", null, LogMessageType.Status);
         }
     }
 }