Esempio n. 1
0
        private Task SendNotificationInternal(UserNotification request, CancellationToken cancellationToken)
        {
            var options = GetOptions(request.User);

            var mail = new MailMessage(options.EmailFrom, options.EmailTo)
            {
                Subject = "Media Browser: " + request.Name,
                Body = request.Description
            };

            var client = new SmtpClient
            {
                Host = options.Server,
                Port = options.Port,
                DeliveryMethod = SmtpDeliveryMethod.Network,
                UseDefaultCredentials = false
            };

            if (options.SSL) client.EnableSsl = true;

            _logger.Debug("Emailing {0} with subject {1}", options.EmailTo, mail.Subject);

            if (options.UseCredentials)
            {
                var pw = _encryption.DecryptString(options.PwData);
                client.Credentials = new NetworkCredential(options.Username, pw);
            }

            return client.SendMailAsync(mail);
        }
Esempio n. 2
0
        public Task SendNotification(UserNotification request, CancellationToken cancellationToken)
        {
            var options = GetOptions(request.User);

            var parameters = new Dictionary<string, string>
            {
                {"apikey", options.Token},
                {"application", "Media Browser"}
            };

            if (string.IsNullOrEmpty(request.Description))
            {
                parameters.Add("event", request.Name);
                parameters.Add("description", "-");
            }
            else
            {
                parameters.Add("event", request.Name);
                parameters.Add("description", request.Description);
            }

            _logger.Debug("NotifyMyAndroid to {0} - {1} - {2}", options.Token, request.Name, request.Description);

            return _httpClient.Post("https://www.notifymyandroid.com/publicapi/notify", parameters, cancellationToken);
        }
Esempio n. 3
0
        public Task SendNotification(UserNotification request, CancellationToken cancellationToken)
        {
            var options = GetOptions(request.User);

            var parameters = new Dictionary<string, string>
                {
                    {"token", options.Token},
                    {"user", options.UserKey},
                };

            if (!string.IsNullOrEmpty(options.DeviceName))
                parameters.Add("device", options.DeviceName);

            if (string.IsNullOrEmpty(request.Description))
                parameters.Add("message", request.Name);
            else
            {
                parameters.Add("title", request.Name);
                parameters.Add("message", request.Description);
            }

            _logger.Debug("PushOver to Token : {0} - {1} - {2}", options.Token, options.UserKey, request.Description);

            return _httpClient.Post("https://api.pushover.net/1/messages.json", parameters, cancellationToken);
        }
        public Task SendNotification(UserNotification request, CancellationToken cancellationToken)
        {
            return _repo.AddNotification(new Notification
            {
                Date = request.Date,
                Description = request.Description,
                Level = request.Level,
                Name = request.Name,
                Url = request.Url,
                UserId = request.User.Id.ToString("N")

            }, cancellationToken);
        }
Esempio n. 5
0
        public async Task SendNotification(UserNotification request, CancellationToken cancellationToken)
        {
            await _resourcePool.WaitAsync(cancellationToken).ConfigureAwait(false);

            try
            {
                await SendNotificationInternal(request, cancellationToken).ConfigureAwait(false);
            }
            finally
            {
                _resourcePool.Release();
            }
        }
Esempio n. 6
0
        public Task SendNotification(UserNotification request, CancellationToken cancellationToken)
        {
            var options = GetOptions(request.User);

            var parameters = new Dictionary<string, string>
                {
                    {"AuthorizationToken", options.Token},
                };

            if (string.IsNullOrEmpty(request.Description))
            {
                parameters.Add("Body", request.Name);
            }
            else
            {
                parameters.Add("Title", request.Name);
                parameters.Add("Body", request.Description);
            }

            _logger.Debug("PushAlot to {0}", options.Token);

            return _httpClient.Post("https://pushalot.com/api/sendmessage", parameters, cancellationToken);
        }
Esempio n. 7
0
        public Task SendNotification(UserNotification request, CancellationToken cancellationToken)
        {
            var options = GetOptions(request.User);

            var parameters = new Dictionary<string, string>
                {
                   // {"device_iden", options.DeviceId},
                    {"type", "note"},
                    {"title", request.Name},
                    {"body", request.Description}
                };

            _logger.Debug("PushBullet to Token : {0} - {1} - {2}", options.Token, options.DeviceId, request.Description);
            var _httpRequest = new HttpRequestOptions();
            string authInfo = options.Token;
            authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));

            _httpRequest.RequestHeaders["Authorization"] = "Basic " + authInfo;

            _httpRequest.Url = "https://api.pushbullet.com/v2/pushes";

            return _httpClient.Post(_httpRequest, parameters);
        }
Esempio n. 8
0
        public Task SendNotification(UserNotification request, CancellationToken cancellationToken)
        {
            var options = GetOptions(request.User);

            var parameters = new Dictionary<string, string>
            {
                {"apikey", options.Token},
                {"application", "Emby"}
            };

            if (string.IsNullOrEmpty(request.Description))
            {
                parameters.Add("event", request.Name);
            }
            else
            {
                parameters.Add("event", request.Name);
                parameters.Add("description", request.Description);
            }

            _logger.Debug("Prowl to {0} - {1} - {2}", options.Token, request.Name, request.Description);

            return _httpClient.Post("https://api.prowlapp.com/publicapi/add", parameters, cancellationToken);
        }
        private async Task SendNotification(NotificationRequest request,
            INotificationService service,
            string title,
            string description,
            User user,
            CancellationToken cancellationToken)
        {
            var notification = new UserNotification
            {
                Date = request.Date,
                Description = description,
                Level = request.Level,
                Name = title,
                Url = request.Url,
                User = user
            };

            _logger.Debug("Sending notification via {0} to user {1}", service.Name, user.Name);

            try
            {
                await service.SendNotification(notification, cancellationToken).ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                _logger.ErrorException("Error sending notification to {0}", ex, service.Name);
            }
        }