work on implementing message attachment sending

This commit is contained in:
bitfl0wer 2023-05-11 23:35:36 +02:00
parent 4c83e190b8
commit 7eaa8a96b7
No known key found for this signature in database
GPG Key ID: 84BBB60DF895ABF2
3 changed files with 77 additions and 16 deletions

View File

@ -143,6 +143,8 @@ pub mod messages {
#[cfg(test)]
mod test {
use std::borrow::Cow;
use crate::{
api::{AuthUsername, LoginSchema},
instance::Instance,
@ -163,7 +165,6 @@ mod test {
None,
None,
None,
None,
);
let mut instance = Instance::new(
crate::URLBundle {
@ -194,4 +195,68 @@ mod test {
.await
.unwrap();
}
#[tokio::test]
async fn send_message_two() {
let channel_id = "1104413094102290492".to_string();
let attachment = crate::api::types::PartialDiscordFileAttachment {
id: None,
filename: Some("test".to_string()),
description: None,
content_type: None,
size: None,
url: None,
proxy_url: None,
width: None,
height: None,
ephemeral: Some(false),
duration_secs: None,
waveform: None,
content: vec![8],
};
let mut message = crate::api::schemas::MessageSendSchema::new(
None,
Some("ashjkdhjksdfgjsdfzjkhsdvhjksdf".to_string()),
None,
None,
None,
None,
None,
None,
None,
Some(vec![attachment.clone()]),
);
let mut instance = Instance::new(
crate::URLBundle {
api: "http://localhost:3001/api".to_string(),
wss: "ws://localhost:3001/".to_string(),
cdn: "http://localhost:3001".to_string(),
},
LimitedRequester::new().await,
)
.await
.unwrap();
let login_schema: LoginSchema = LoginSchema::new(
AuthUsername::new("user1@gmail.com".to_string()).unwrap(),
"user".to_string(),
None,
None,
None,
None,
)
.unwrap();
let login_result = instance.login_account(&login_schema).await.unwrap();
let token = login_result.token;
let settings = login_result.settings;
let limits = instance.limits.clone();
let mut user = crate::api::types::User::new(&mut instance, token, limits, settings, None);
let vec_attach = vec![attachment.clone()];
let arg = Some(&vec_attach);
let response = user
.send_message(&mut message, &channel_id, arg)
.await
.unwrap();
}
}

View File

@ -257,8 +257,6 @@ pub struct MessageSendSchema {
message_reference: Option<super::MessageReference>,
components: Option<Vec<super::Component>>,
sticker_ids: Option<Vec<String>>,
#[serde(flatten)]
files: Option<HashMap<String, Vec<u8>>>,
attachments: Option<Vec<super::PartialDiscordFileAttachment>>,
}
@ -274,7 +272,6 @@ impl MessageSendSchema {
message_reference: Option<super::MessageReference>,
components: Option<Vec<super::Component>>,
sticker_ids: Option<Vec<String>>,
files: Option<HashMap<String, Vec<u8>>>,
attachments: Option<Vec<super::PartialDiscordFileAttachment>>,
) -> MessageSendSchema {
MessageSendSchema {
@ -287,7 +284,6 @@ impl MessageSendSchema {
message_reference,
components,
sticker_ids,
files,
attachments,
}
}

View File

@ -843,21 +843,21 @@ pub struct DiscordFileAttachment {
content: Vec<u8>,
}
#[derive(Debug, Serialize, Deserialize)]
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct PartialDiscordFileAttachment {
pub id: Option<i16>,
pub filename: Option<String>,
description: Option<String>,
content_type: Option<String>,
size: Option<i64>,
url: Option<String>,
proxy_url: Option<String>,
height: Option<i32>,
width: Option<i32>,
ephemeral: Option<bool>,
duration_secs: Option<f32>,
waveform: Option<String>,
pub description: Option<String>,
pub content_type: Option<String>,
pub size: Option<i64>,
pub url: Option<String>,
pub proxy_url: Option<String>,
pub height: Option<i32>,
pub width: Option<i32>,
pub ephemeral: Option<bool>,
pub duration_secs: Option<f32>,
pub waveform: Option<String>,
#[serde(skip_serializing)]
pub content: Vec<u8>,
}