Beispiel #1
0
        static void HandleMessage(Message m)
        {
            if (m.Text == null) return;

            MessageTarget target = ((MessageTarget) m.Chat ?? m.From);

            if (m.Text.ToLower() == "bots are dumb")
            {
                string messageToSend = "You're dumb, " + m.From.Username + "!";

                bot.SendMessage(target, messageToSend);
            }

            if (m.Text.ToLower() == "who are you talking to?")
            {
                bot.SendMessage(target, "You, dummy!", false, m);
            }

            if (m.Text.ToLower() == "hey")
            {
                bot.SendMessage(target, "Say that to my face, @"+m.From.Username, false, m, new ForceReplyOptions(true));
            }

            if (m.Text.Contains("/cc"))
            {
                bot.ForwardMessage(m, m.From);
            }

            if (m.Text.ToLower() == "hold on a second")
            {
                bot.SendChatAction(target, ChatAction.Typing);
                Thread.Sleep(1500);
                bot.SendMessage(target, "...okay, now what?");
            }

            if (m.Text.ToLower() == "hurt me plenty")
            {
                bot.SendPhoto(target, new FileStream("doomimage.png", FileMode.Open), "RIP AND TEAR", "doomimage.png");
            }
        }
        /// <summary>
        /// Sends a message to the given target (user or group chat)
        /// </summary>
        /// <param name="target">A User or GroupChat</param>
        /// <param name="messageText">The text of the message</param>
        /// <param name="disableLinkPreview">Whether or not to disable link previews</param>
        /// <param name="replyTarget">The message to reply to</param>
        /// <param name="forceReplyOptions">Specifies that the message must be replied to, and what users must reply</param>
        /// <returns>The message that was sent.</returns>
        public Message SendMessage(MessageTarget target, string messageText, bool disableLinkPreview = false, Message replyTarget = null, ForceReplyOptions forceReplyOptions = null)
        {
            var request = new RestRequest("sendMessage", Method.POST)
            {
                RootElement = "result"
            };

            request.AddParameter("chat_id", target.Id);
            request.AddParameter("text", messageText);
            request.AddParameter("disable_web_page_preview", disableLinkPreview);

            if (replyTarget != null)
            {
                request.AddParameter("reply_to_message_id", replyTarget.MessageId);
            }

            if (forceReplyOptions != null)
            {
                request.AddParameter("reply_markup", SimpleJson.SerializeObject(forceReplyOptions));
            }

            var result = _client.Execute<Message>(request);
            return result.Data;
        }
        /// <summary>
        /// Forward a message from one chat to another.
        /// </summary>
        /// <param name="message">The message to forward.</param>
        /// <param name="target">The user/group to send to.</param>
        /// <returns>The message that was forwarded</returns>
        public Message ForwardMessage(Message message, MessageTarget target)
        {
            var request = new RestRequest("forwardMessage", Method.POST)
            {
                RootElement = "result"
            };

            request.AddParameter("chat_id", target.Id);
            request.AddParameter("from_chat_id", (message.Chat == null ? message.From.Id : message.Chat.Id));
            request.AddParameter("message_id", message.MessageId);

            var result = _client.Execute<Message>(request);
            return result.Data;
        }