Exemple #1
0
        private static void TriggerAlerts(string source, string target, Models.Rate rate90, Models.Rate rate4, Models.Rate rateRsi, Models.Rate last)
        {
            MessengerMessageSender  sender     = new MessengerMessageSender(new JsonMessengerSerializer());
            ConfigurationRepository repository = new ConfigurationRepository();

            //if (rateRsi.Value < 30)
            {
                var configs = repository.Get().Result;
                foreach (var config in configs)
                {
                    if (config.Source == source && config.Target == target)
                    {
                        var userId    = config.FacebookId;
                        var recipient = new MessengerUser();
                        recipient.Id = userId;
                        var configId = config.Id.ToString();
                        var response = new MessengerMessage();
                        response.Attachment         = new MessengerAttachment();
                        response.Attachment.Type    = "template";
                        response.Attachment.Payload = new MessengerPayload();
                        response.Attachment.Payload.TemplateType = "button";
                        response.Attachment.Payload.Text         = $"hi, we have found a good rate for your transfer: {source} to {target} is now {last.Value}. Tap the button below to do the transfer";
                        response.Attachment.Payload.Buttons      = new List <MessengerButton>();
                        var linkButton = new MessengerButton();
                        linkButton.Url   = $"https://transfer-buddy.herokuapp.com/Transfers/Create?configId={config.Id}";
                        linkButton.Title = "Transfer";
                        linkButton.Type  = "web_url";
                        response.Attachment.Payload.Buttons.Add(linkButton);
                        sender.SendAsync(response, recipient, "EAAaZCDGRPBJ4BAMVFRSRvqM8ytvC6ZAZCryE6xw5GImYZByvVpkIDhSpltas8CuclkcqZClTneXVzwMQqTeZCS5Gs3lf0sCLpiy977fg6bkGuNEESUysoPKKeJNGuW9WDZARKRw45J14A9BcustEzBsIvmbrUZCtVgZAohzKtG0w5DgZDZD").Wait();
                    }
                }
            }
        }
        public async Task <MessengerResponse> SendAsync(MessengerMessage message, MessengerUser recipient, String accessToken)
        {
            var url     = String.Format(UrlTemplate, accessToken);
            var request = new MessengerSendMessageRequest {
                Recipient = recipient, Message = message
            };

            var content = new StringContent(serializer.Serialize(request));

            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            try
            {
                var response = await client.PostAsync(url, content);

                var result = new MessengerResponse
                {
                    Succeed     = response.IsSuccessStatusCode,
                    RawResponse = await response.Content.ReadAsStringAsync()
                };

                return(result);
            }
            catch (Exception exc)
            {
                throw new MessengerException(exc);
            }
        }
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int    toId = request.GetInteger();
            string text = request.GetString();

            if (string.IsNullOrWhiteSpace(text))
            {
                return;
            }

            Relationship friend = session.Info.Relationships.FindByUser(toId);

            if (friend != null)
            {
                MessengerMessage message = new MessengerMessage()
                {
                    From           = session.Info,
                    UnfilteredText = text,
                    Text           = Wordfilter.Filter(text),
                    Timestamp      = DateTime.Now,
                };

                var friendSession = ClientManager.GetByInfo(friend.Friend);
                friendSession?.Router.GetComposer <ConsoleChatMessageComposer>().Compose(session, message);
                message.Read = friendSession != null;

                // TODO Store for offline
                // TODO Store for chatlog
            }
        }
 public MessageUnsentEventArgs(MessengerUser user, MessengerMessage message, MessengerThread thread, DateTime at)
 {
     User    = user;
     Message = message;
     Thread  = thread;
     At      = at;
 }
Exemple #5
0
        public async Task <MessengerResponse> SendAsync(MessengerMessage message, MessengerUser recipient, String accessToken)
        {
            var url     = String.Format(UrlTemplate, accessToken);
            var request = new MessengerSendMessageRequest {
                Recipient = recipient, Message = message
            };
            var strings = serializer.Serialize(request);

#if DEBUG
            System.Console.WriteLine(strings);
#endif

            /*if (message.Attachments != null && message.Attachments.Count > 0)
             *  throw new Exception(strings);*/

            var content = new StringContent(strings);

            content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            try
            {
                var response = await client.PostAsync(url, content);

                var result = new MessengerResponse
                {
                    Succeed     = response.IsSuccessStatusCode,
                    RawResponse = await response.Content.ReadAsStringAsync()
                };

                return(result);
            }
            catch (Exception exc)
            {
                throw new MessengerException(exc);
            }
        }
        /// <summary>
        /// Sends text to the user.
        /// </summary>
        /// <param name="recipient">The messenger user.</param>
        /// <param name="text">The text.</param>
        /// <returns>A task.</returns>
        public async Task SendTextAsync(MessengerUser recipient, string text)
        {
            var response = new MessengerMessage {
                Text = text
            };

            await this.Processor.MessageSender.SendAsync(response, recipient);
        }
        private void OnMessageReceived(FB_MessageEvent messageArgs)
        {
            var user = GetUser(messageArgs.author);

            var message = new MessengerMessage(messageArgs.message);

            OnMessageReceived(user, message);
        }
        private void OnMessageReply(FB_MessageReplyEvent messageReplyEvent)
        {
            var user    = GetUser(messageReplyEvent.author);
            var message = new MessengerMessage(messageReplyEvent.message);
            var replyTo = new MessengerMessage(messageReplyEvent.replied_to);

            OnMessageReceived(user, message, replyTo);
        }
Exemple #9
0
        public Task <MessengerResponse> SendAsync(MessengerMessage message, MessengerUser recipient, String accessToken)
        {
            var request = new MessengerSendMessageRequest {
                Recipient = recipient, Message = message
            };

            return(SendMessage(request, accessToken));
        }
Exemple #10
0
        private void HandleMessage(MessengerMessage message)
        {
            InvokeAsync(() =>
            {
                messages.Add(message);

                StateHasChanged();
            });
        }
        private void OnMessageUnsent(FB_UnsendEvent unsendEvent)
        {
            var user    = GetUser(unsendEvent.author);
            var message = new MessengerMessage(unsendEvent.message);
            var thread  = new MessengerThread(unsendEvent.thread);
            var at      = DateTimeOffset.FromUnixTimeSeconds(unsendEvent.at).DateTime;

            OnMessageUnsent(user, message, thread, at);
        }
 public override void Compose(Yupi.Protocol.ISender session, MessengerMessage msg)
 {
     using (ServerMessage message = Pool.GetMessageBuffer(Id))
     {
         message.AppendInteger(msg.From.Id);
         message.AppendString(msg.Text);
         message.AppendInteger((int)msg.Diff().TotalSeconds);
         session.Send(message);
     }
 }
        /// <summary>
        /// Sends a picture to the user.
        /// </summary>
        /// <param name="recipient">The messenger user.</param>
        /// <param name="url">The picture url.</param>
        /// <returns>A task.</returns>
        public async Task SendPictureAsync(MessengerUser recipient, string url)
        {
            var response = new MessengerMessage();

            response.Attachment             = new MessengerAttachment();
            response.Attachment.Type        = "image";
            response.Attachment.Payload     = new MessengerPayload();
            response.Attachment.Payload.Url = url;
            await this.Processor.MessageSender.SendAsync(response, recipient);
        }
        private Task <MessengerResponse> HandleEntry(MessengerEntry entry)
        {
            var messaging = entry.Messaging.First();
            var text      = messaging.Message.Text;
            var response  = new MessengerMessage {
                Text = text
            };

            return(messageSender.SendAsync(response, messaging.Sender));
        }
        public IActionResult Create(TransferConfig config)
        {
            CreateTransfer(config).Wait();

            MessengerMessage message = new MessengerMessage();

            message.Text = "the transfer was completed successfully :)";
            MessengerUser user = new MessengerUser();

            user.Id = config.FacebookId;

            var result = messengerService.MessageSender.SendAsync(message, user).Result;

            return(RedirectToAction("TransferSuccess"));
        }
        public async Task Reply(string SenderId, string textInput)
        {
            var Sender = await _messengerProfile.GetUserProfileAsync(SenderId);

            var checkInput = _context.MesBotEntities.FirstOrDefault(x => CheckChat(textInput, x.Exception));

            if (checkInput == null)
            {
                var text     = "Cậu nói gì vậy mình hông hiểu gì hớt -.-";
                var response = new MessengerMessage {
                    Text = text
                };
                await messageSender.SendAsync(response, new MessengerUser { Id = SenderId });
            }
            else
            {
                if (checkInput.Type == 1)
                {
                    var weather = await _weatherService.GetWeatherFromCity(checkInput.ReplyText);

                    if (weather != null)
                    {
                        var response = new MessengerMessage {
                            Text = $"Dự báo thời tiết hôm nay {DateTime.UtcNow.ToString("dd.MM.yyyy H:mm:ss")}, khu vực {weather.name} NĐ là: {weather.main.temp}, NĐ cao nhất: {weather.main.temp_max}, thấp nhất: {weather.main.temp_max} có{weather.weather[0].description} <3 From Khoapiterrr with love :* "
                        };
                        await messageSender.SendAsync(response, new MessengerUser { Id = SenderId });
                    }
                    else
                    {
                        var text     = "Ơ sao mình k thấy thành phố đó nhỉ :( xin loi nha";
                        var response = new MessengerMessage {
                            Text = text
                        };
                        await messageSender.SendAsync(response, new MessengerUser { Id = SenderId });
                    }
                }
                else if (checkInput.Type == 2)
                {
                    var text     = checkInput.ReplyText.Replace("@firstname", Sender.Result.FirstName);
                    var response = new MessengerMessage {
                        Text = text
                    };
                    await messageSender.SendAsync(response, new MessengerUser { Id = SenderId });
                }
            }
        }
Exemple #17
0
        public async Task HandleMessage([FromBody] MessengerObject obj)
        {
            foreach (var entry in obj.Entries)
            {
                var mesaging = entry.Messaging;

                foreach (var message in mesaging)
                {
                    var senderId = message.Sender.Id;
                    if (message.Message != null)
                    {
                        if (!string.IsNullOrEmpty(message.Message.Text))
                        {
                            try
                            {
                                var checkSend = await SendDBTT(message);

                                RecurringJob.AddOrUpdate(senderId,
                                                         () => SendDBTT(message),
                                                         Cron.Hourly);
                                var jobId = BackgroundJob.Schedule(
                                    () => RecurringJob.RemoveIfExists(senderId),
                                    TimeSpan.FromDays(1));
                            }
                            catch (Exception ex)
                            {
                                var response = new MessengerMessage {
                                    Text = "Xin lỗi page mình có vấn đề rồi :'( ... " + ex.Message
                                };
                                await messageSender.SendAsync(response, message.Sender);
                            }
                        }
                        else
                        {
                            var response = new MessengerMessage {
                                Text = "Hi chào cậu , mình đợi cậu từ chiều ơ...mà cậu đừng gửi file, ảnh linh tinh cho tớ spam tớ ghét  đấy <3"
                            };
                            await messageSender.SendAsync(response, message.Sender);
                        }
                    }
                }
            }
        }
Exemple #18
0
        public async Task <bool> SendDBTT(MessengerMessaging mes)
        {
            var weather = await _weatherService.GetWeatherFromCity(CommonHelper.ConvertUtf8ConvertNotReplcae(mes.Message.Text));

            if (weather != null)
            {
                var response = new MessengerMessage {
                    Text = $"DBTT {DateTime.UtcNow.ToString("dd.MM.yyyy")}, tại {weather.name} NĐ là: {weather.main.temp}, NĐ cao nhất: {weather.main.temp_max}, thấp nhất: {weather.main.temp_max} có {weather.weather[0].description} <3 From Khoapiterrr with love"
                };
                _ = messageSender.SendAsync(response, new MessengerUser {
                    Id = mes.Sender.Id
                });
                try
                {
                    var Sender = await _messengerProfile.GetUserProfileAsync(mes.Sender.Id);

                    _context.ViewWeatherHistoryApi.Add(new Entity.ViewWeatherHistoryApi
                    {
                        City        = weather.name,
                        CreatedDate = DateTime.UtcNow,
                        FacebookId  = mes.Sender.Id,
                        Name        = Sender.Result.FirstName + " " + Sender.Result.LastName,
                        Temperature = weather.main.temp.ToString()
                    });
                    _context.SaveChanges();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                return(true);
            }
            _ = messageSender.SendAsync(new MessengerMessage {
                Text = "Xin lỗi bạn, mình không tìm thấy thành phố của bạn. Vui lòng gõ chính xác"
            }, new MessengerUser {
                Id = mes.Sender.Id
            });
            return(false);
        }
        /// <summary>
        /// Seds a button to the user.
        /// </summary>
        /// <param name="recipient">The messenger user.</param>
        /// <param name="text">The text.</param>
        /// <param name="buttons">The buttons.</param>
        /// <returns>A task.</returns>
        public async Task SendTextWithButtonsAsync(MessengerUser recipient, string text, IEnumerable <MessengerButtonBase> buttons)
        {
            var response = new MessengerMessage();

            response.Attachment         = new MessengerAttachment();
            response.Attachment.Type    = "template";
            response.Attachment.Payload = new MessengerPayload();
            response.Attachment.Payload.TemplateType = "button";
            response.Attachment.Payload.Text         = text;
            response.Attachment.Payload.Buttons      = new List <MessengerButton>();

            foreach (var button in buttons)
            {
                var payloadButton = new MessengerButton();

                if (button is MessengerLinkButton)
                {
                    var linkButton = button as MessengerLinkButton;
                    payloadButton.Url   = linkButton.Url;
                    payloadButton.Title = linkButton.Title;
                    payloadButton.Type  = linkButton.Type;
                }

                if (button is MessengerChatButton)
                {
                    var chatButton = button as MessengerChatButton;
                    payloadButton.Payload = chatButton.Payload;
                    payloadButton.Title   = chatButton.Title;
                    payloadButton.Type    = chatButton.Type;
                }

                response.Attachment.Payload.Buttons.Add(payloadButton);
            }

            await this.Processor.MessageSender.SendAsync(response, recipient);
        }
Exemple #20
0
 /// <inheritdoc cref="IHxMessengerService.AddMessage(MessengerMessage)" />
 public void AddMessage(MessengerMessage message)
 {
     OnMessage?.Invoke(message);
 }
Exemple #21
0
 public EncryptedMessageReceivedEventArgs(string decryptedText, MessengerUser user, MessengerMessage message, MessengerMessage replyTo = null)
     : base(user, message, replyTo)
 {
     DecryptedText = decryptedText;
 }
 public MessengerUser GetUser(MessengerMessage message)
 {
     return(GetUser(message.AuthorId));
 }
 public MessageReceivedEventArgs(MessengerUser user, MessengerMessage message, MessengerMessage replyTo = null)
 {
     User    = user;
     Message = message;
     ReplyTo = replyTo;
 }
 public async Task <MessengerThread> GetThreadAsync(MessengerMessage message)
 {
     return(await GetThreadAsync(message.ThreadId));
 }
Exemple #25
0
 private void EvaluateMessages(MessengerMessage obj)
 {
     if (obj == MessengerMessage.GoBack)
         _navigationService.GoBack();
 }
        protected virtual void OnMessageUnsent(MessengerUser user, MessengerMessage message, MessengerThread thread, DateTime at)
        {
            var args = new MessageUnsentEventArgs(user, message, thread, at);

            MessageUnsent?.Invoke(this, args);
        }
Exemple #27
0
 public Task <MessengerResponse> SendAsync(MessengerMessage message, MessengerUser recipient)
 {
     return(SendAsync(message, recipient, MessengerConfig.AccessToken));
 }
        protected virtual void OnMessageReceived(MessengerUser user, MessengerMessage message, MessengerMessage replyTo = null)
        {
            var args = new MessageReceivedEventArgs(user, message, replyTo);

            MessageReceived?.Invoke(this, args);
        }
Exemple #29
0
 /// <summary>
 /// Receive notification from <see cref="HxToast"/> when message is hidden.
 /// </summary>
 private void HandleToastHidden(MessengerMessage message)
 {
     messages.Remove(message);
 }
Exemple #30
0
        protected virtual void OnEncryptedMessageReceived(string decrypted, MessengerUser user, MessengerMessage message, MessengerMessage replyTo = null)
        {
            var args = new EncryptedMessageReceivedEventArgs(decrypted, user, message, replyTo);

            EncryptedMessageReceived?.Invoke(this, args);
        }