telegram-bot2 0.3.7

telegram-bot2 is a framework to write bot for Telegram
Documentation
use crate::models::MessageEntity;
use serde::{Deserialize, Serialize};

type InputFile = ();

/// This object represents the content of a media message to be sent
#[derive(Serialize, Deserialize, Clone, Debug)]
pub enum InputMedia {
    /// Represents a video to be sent.
    Video {
        /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
        media: String,
        /// Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
        thumb: InputFile,
        /// . Caption of the video to be sent, 0-1024 characters after entities parsing
        #[serde(default, skip_serializing_if = "Option::is_none")]
        caption: Option<String>,
        /// . Mode for parsing entities in the video caption. See formatting options for more details.
        #[serde(default, skip_serializing_if = "Option::is_none")]
        parse_mode: Option<String>,
        /// List of special entities that appear in the caption, which can be specified instead of parse_mode
        #[serde(default, skip_serializing_if = "Vec::is_empty")]
        caption_entities: Vec<MessageEntity>,
        /// Pass True if the video needs to be covered with a spoiler animation
        #[serde(skip_serializing_if = "Option::is_none")]
        has_spoiler: Option<bool>,
        /// . Video width
        #[serde(default, skip_serializing_if = "Option::is_none")]
        width: Option<i128>,
        /// . Video height
        #[serde(default, skip_serializing_if = "Option::is_none")]
        height: Option<i128>,
        /// . Video duration in seconds
        #[serde(default, skip_serializing_if = "Option::is_none")]
        duration: Option<i128>,
        /// . Pass True if the uploaded video is suitable for streaming
        #[serde(default, skip_serializing_if = "Option::is_none")]
        supports_streaming: Option<bool>,
    },

    /// Represents an animation file (GIF or H.264/MPEG-4 AVC video without sound) to be sent.
    Animation {
        /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
        media: String,
        /// Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
        thumb: InputFile,
        /// . Caption of the animation to be sent, 0-1024 characters after entities parsing
        #[serde(default, skip_serializing_if = "Option::is_none")]
        caption: Option<String>,
        /// . Mode for parsing entities in the animation caption. See formatting options for more details.
        #[serde(default, skip_serializing_if = "Option::is_none")]
        parse_mode: Option<String>,
        /// List of special entities that appear in the caption, which can be specified instead of parse_mode
        #[serde(default, skip_serializing_if = "Vec::is_empty")]
        caption_entities: Vec<MessageEntity>,
        /// Pass True if the animation needs to be covered with a spoiler animation
        #[serde(skip_serializing_if = "Option::is_none")]
        has_spoiler: Option<bool>,
        /// . Animation width
        #[serde(default, skip_serializing_if = "Option::is_none")]
        width: Option<i128>,
        /// . Animation height
        #[serde(default, skip_serializing_if = "Option::is_none")]
        height: Option<i128>,
        /// . Animation duration in seconds
        #[serde(default, skip_serializing_if = "Option::is_none")]
        duration: Option<i128>,
    },

    /// Represents an audio file to be treated as music to be sent.
    Audio {
        /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
        media: String,
        /// Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
        thumb: InputFile,
        /// . Caption of the audio to be sent, 0-1024 characters after entities parsing
        #[serde(default, skip_serializing_if = "Option::is_none")]
        caption: Option<String>,
        /// . Mode for parsing entities in the audio caption. See formatting options for more details.
        #[serde(default, skip_serializing_if = "Option::is_none")]
        parse_mode: Option<String>,
        /// List of special entities that appear in the caption, which can be specified instead of parse_mode
        #[serde(default, skip_serializing_if = "Vec::is_empty")]
        caption_entities: Vec<MessageEntity>,
        /// . Duration of the audio in seconds
        #[serde(default, skip_serializing_if = "Option::is_none")]
        duration: Option<i128>,
        /// . Performer of the audio
        #[serde(default, skip_serializing_if = "Option::is_none")]
        performer: Option<String>,
        /// . Title of the audio
        #[serde(default, skip_serializing_if = "Option::is_none")]
        title: Option<String>,
    },

    /// Represents a general file to be sent.
    Document {
        /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
        media: String,
        /// Thumbnail of the file sent; can be ignored if thumbnail generation for the file is supported server-side. The thumbnail should be in JPEG format and less than 200 kB in size. A thumbnail's width and height should not exceed 320. Ignored if the file is not uploaded using multipart/form-data. Thumbnails can't be reused and can be only uploaded as a new file, so you can pass “attach://<file_attach_name>” if the thumbnail was uploaded using multipart/form-data under <file_attach_name>. More information on Sending Files »
        thumb: InputFile,
        /// . Caption of the document to be sent, 0-1024 characters after entities parsing
        #[serde(default, skip_serializing_if = "Option::is_none")]
        caption: Option<String>,
        /// . Mode for parsing entities in the document caption. See formatting options for more details.
        #[serde(default, skip_serializing_if = "Option::is_none")]
        parse_mode: Option<String>,
        /// List of special entities that appear in the caption, which can be specified instead of parse_mode
        #[serde(default, skip_serializing_if = "Vec::is_empty")]
        caption_entities: Vec<MessageEntity>,
        /// . Disables automatic server-side content type detection for files uploaded using multipart/form-data. Always True, if the document is sent as part of an album.
        #[serde(default, skip_serializing_if = "Option::is_none")]
        disable_content_type_detection: Option<bool>,
    },

    /// Represents a photo to be sent
    Photo {
        /// File to send. Pass a file_id to send a file that exists on the Telegram servers (recommended), pass an HTTP URL for Telegram to get a file from the Internet, or pass “attach://<file_attach_name>” to upload a new one using multipart/form-data under <file_attach_name> name. More information on Sending Files »
        media: String,
        /// Caption of the photo to be sent, 0-1024 characters after entities parsing
        #[serde(default, skip_serializing_if = "Option::is_none")]
        caption: Option<String>,
        /// Mode for parsing entities in the photo caption. See formatting options for more details.
        #[serde(default, skip_serializing_if = "Option::is_none")]
        parse_mode: Option<String>,
        /// List of special entities that appear in the caption, which can be specified instead of parse_mode
        #[serde(default, skip_serializing_if = "Vec::is_empty")]
        caption_entities: Vec<MessageEntity>,
        /// Pass True if the photo needs to be covered with a spoiler animation
        #[serde(skip_serializing_if = "Option::is_none")]
        has_spoiler: Option<bool>,
    },
}