/// <summary> /// changes or sets the chat photo of the given chat. bot must be channel admin or in a "all admin" chat /// </summary> /// <returns>true on success</returns> public bool SetChatPhoto(Chat chat, InputFile photo) { Require(chat, photo); var reply = _communicator.GetMultiPartReply <SetChatPhotoReply>("setChatPhoto", new MultiPartStringParameter("chat_id", chat.Id.ToString()), photo.GetMultiPartParameter("photo")); return(reply.Ok && reply.Success); }
/// <summary> /// sends a video note to the chat /// </summary> /// <returns>on success, the sent message is returned</returns> public Message SendVideoNote(Chat chat, InputFile videoNote, long duration = long.MinValue, long length = long.MinValue, InputFile thumb = null, bool disableNotification = false, Message replyToMessage = null) { Require(chat, videoNote); var parameters = new List <MultiPartParameter>() { new MultiPartStringParameter("chat_id", chat.Id.ToString()), videoNote.GetMultiPartParameter("video_note") }; if (duration > long.MinValue) { parameters.Add(new MultiPartStringParameter("duration", duration.ToString())); } if (length > long.MinValue) { parameters.Add(new MultiPartStringParameter("length", length.ToString())); } if (thumb != null) { parameters.Add(thumb.GetMultiPartParameter("thumb")); } if (disableNotification) { parameters.Add(new MultiPartStringParameter("disable_notification", disableNotification.ToString())); } if (replyToMessage != null) { parameters.Add(new MultiPartStringParameter("reply_to_message_id", replyToMessage.MessageId.ToString())); } var result = _communicator.GetMultiPartReply <SendVideoNoteReply>("sendVideoNote", parameters.ToArray()); if (result.Ok) { return(result.SentMessage); } else { return(null); } }
/// <summary> /// sends a voice message to the chat /// </summary> /// <returns>on success, the sent mesage is returned</returns> public Message SendVoice(Chat chat, InputFile voice, string caption = null, MarkdownStyles markdownStyle = MarkdownStyles.None, long duration = long.MinValue, bool disableNotification = false, Message replyToMessage = null) { Require(chat, voice); var parameters = new List <MultiPartParameter>() { new MultiPartStringParameter("chat_id", chat.Id.ToString()), voice.GetMultiPartParameter("voice") }; if (!string.IsNullOrEmpty(caption)) { parameters.Add(new MultiPartStringParameter("caption", caption)); } if (markdownStyle != MarkdownStyles.None) { parameters.Add(new MultiPartStringParameter("parse_mode", Enum.GetName(typeof(MarkdownStyles), markdownStyle))); } if (duration > long.MinValue) { parameters.Add(new MultiPartStringParameter("duration", duration.ToString())); } if (disableNotification) { parameters.Add(new MultiPartStringParameter("disable_notification", disableNotification.ToString())); } if (replyToMessage != null) { parameters.Add(new MultiPartStringParameter("reply_to_message_id", replyToMessage.MessageId.ToString())); } var result = _communicator.GetMultiPartReply <SendVoiceReply>("sendVoice", parameters.ToArray()); if (result.Ok) { return(result.SentMessage); } else { return(null); } }
/// <summary> /// sends a video to the chat /// </summary> /// <returns>on success, the sent message is returned</returns> public Message SendAnimation(Chat chat, InputFile animation, long duration = long.MinValue, long width = long.MinValue, long height = long.MinValue, InputFile thumb = null, string caption = null, MarkdownStyles markdownStyle = MarkdownStyles.None, bool supportsStreaming = false, bool disableNotification = false, Message replyToMessage = null) { Require(chat, animation); var parameters = new List <MultiPartParameter>() { new MultiPartStringParameter("chat_id", chat.Id.ToString()), animation.GetMultiPartParameter("animation") }; if (duration > long.MinValue) { parameters.Add(new MultiPartStringParameter("duration", duration.ToString())); } if (width > long.MinValue) { parameters.Add(new MultiPartStringParameter("width", duration.ToString())); } if (height > long.MinValue) { parameters.Add(new MultiPartStringParameter("height", duration.ToString())); } if (thumb != null) { parameters.Add(thumb.GetMultiPartParameter("thumb")); } if (!string.IsNullOrEmpty(caption)) { parameters.Add(new MultiPartStringParameter("caption", caption)); } if (markdownStyle != MarkdownStyles.None) { parameters.Add(new MultiPartStringParameter("parse_mode", Enum.GetName(typeof(MarkdownStyles), markdownStyle))); } if (disableNotification) { parameters.Add(new MultiPartStringParameter("disable_notification", disableNotification.ToString())); } if (replyToMessage != null) { parameters.Add(new MultiPartStringParameter("reply_to_message_id", replyToMessage.MessageId.ToString())); } var result = _communicator.GetMultiPartReply <SendAnimationReply>("sendAnimation", parameters.ToArray()); if (result.Ok) { return(result.SentMessage); } else { return(null); } }
/// <summary> /// sends an audio file to the chat /// </summary> /// <returns>on success, the sent Message is returned</returns> public Message SendAudio(Chat chat, InputFile audio, string caption = null, MarkdownStyles markdownStyle = MarkdownStyles.None, long duration = long.MinValue, string performer = null, string title = null, InputFile thumb = null, bool disableNotification = false, Message replyToMessage = null) { Require(chat, audio); var parameters = new List <MultiPartParameter> { new MultiPartStringParameter("chat_id", chat.Id.ToString()), audio.GetMultiPartParameter("audio") }; if (!string.IsNullOrEmpty(caption)) { parameters.Add(new MultiPartStringParameter("caption", caption)); } if (markdownStyle != MarkdownStyles.None) { parameters.Add(new MultiPartStringParameter("parse_mode", Enum.GetName(typeof(MarkdownStyles), markdownStyle))); } if (duration > long.MinValue) { parameters.Add(new MultiPartStringParameter("duration", duration.ToString())); } if (!string.IsNullOrEmpty(performer)) { parameters.Add(new MultiPartStringParameter("performer", performer)); } if (!string.IsNullOrEmpty(title)) { parameters.Add(new MultiPartStringParameter("title", title)); } if (thumb != null) { parameters.Add(thumb.GetMultiPartParameter("thumb")); } if (disableNotification) { parameters.Add(new MultiPartStringParameter("disable_notification", disableNotification.ToString())); } if (replyToMessage != null) { parameters.Add(new MultiPartStringParameter("reply_to_message_id", replyToMessage.MessageId.ToString())); } var result = _communicator.GetMultiPartReply <SendAudioReply>("sendAudio", parameters.ToArray()); if (result.Ok) { return(result.SentMessage); } else { return(null); } }