Struct serenity::model::Attachment
[−]
[src]
pub struct Attachment { pub id: String, pub filename: String, pub height: Option<u64>, pub proxy_url: String, pub size: u64, pub url: String, pub width: Option<u64>, }
A file uploaded with a message. Not to be confused with Embed
s.
Fields
id: String
The unique ID given to this attachment.
filename: String
The filename of the file that was uploaded. This is equivalent to what the uploader had their file named.
height: Option<u64>
If the attachment is an image, then the height of the image is provided.
proxy_url: String
The proxy URL.
size: u64
The size of the file in bytes.
url: String
The URL of the uploaded attachment.
width: Option<u64>
If the attachment is an image, then the width of the image is provided.
Methods
impl Attachment
[src]
fn dimensions(&self) -> Option<(u64, u64)>
[src]
If this attachment is an image, then a tuple of the width and height in pixels is returned.
fn download(&self) -> Result<Vec<u8>>
[src]
Downloads the attachment, returning back a vector of bytes.
Examples
Download all of the attachments associated with a Message
:
use serenity::prelude::*; use serenity::model::*; use std::env; use std::fs::File; use std::io::Write; use std::path::Path; struct Handler; impl EventHandler for Handler { fn on_message(&self, _: Context, message: Message) { for attachment in message.attachments { let content = match attachment.download() { Ok(content) => content, Err(why) => { println!("Error downloading attachment: {:?}", why); let _ = message.channel_id.say("Error downloading attachment"); return; }, }; let mut file = match File::create(&attachment.filename) { Ok(file) => file, Err(why) => { println!("Error creating file: {:?}", why); let _ = message.channel_id.say("Error creating file"); return; }, }; if let Err(why) = file.write(&content) { println!("Error writing to file: {:?}", why); return; } let _ = message.channel_id.say(&format!("Saved {:?}", attachment.filename)); } } fn on_ready(&self, _: Context, ready: Ready) { println!("{} is connected!", ready.user.name); } } let token = env::var("DISCORD_TOKEN").expect("token in environment"); let mut client = Client::new(&token, Handler); client.start().unwrap();
Errors
Returns an Error::Io
when there is a problem reading the contents
of the HTTP response.
Returns an Error::Hyper
when there is a problem retrieving the
attachment.
Trait Implementations
impl Clone for Attachment
[src]
fn clone(&self) -> Attachment
[src]
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more