mirror of
https://gitlab.com/xmpp-rs/xmpp-rs.git
synced 2024-07-12 22:21:53 +00:00
Move upload_file_with to upload::send module
This commit is contained in:
parent
97f4232db7
commit
f95d968a9f
3 changed files with 33 additions and 15 deletions
|
@ -9,13 +9,11 @@
|
||||||
use futures::stream::StreamExt;
|
use futures::stream::StreamExt;
|
||||||
use std::path::{Path, PathBuf};
|
use std::path::{Path, PathBuf};
|
||||||
use std::sync::{Arc, RwLock};
|
use std::sync::{Arc, RwLock};
|
||||||
use tokio::fs::File;
|
|
||||||
pub use tokio_xmpp::parsers;
|
pub use tokio_xmpp::parsers;
|
||||||
use tokio_xmpp::parsers::{
|
use tokio_xmpp::parsers::{
|
||||||
caps::{compute_disco, hash_caps, Caps},
|
caps::{compute_disco, hash_caps, Caps},
|
||||||
disco::{DiscoInfoQuery, DiscoInfoResult},
|
disco::{DiscoInfoQuery, DiscoInfoResult},
|
||||||
hashes::Algo,
|
hashes::Algo,
|
||||||
http_upload::SlotRequest,
|
|
||||||
iq::Iq,
|
iq::Iq,
|
||||||
message::{Body, Message, MessageType},
|
message::{Body, Message, MessageType},
|
||||||
muc::{user::MucUser, Muc},
|
muc::{user::MucUser, Muc},
|
||||||
|
@ -235,19 +233,7 @@ impl Agent {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn upload_file_with(&mut self, service: &str, path: &Path) {
|
pub async fn upload_file_with(&mut self, service: &str, path: &Path) {
|
||||||
let name = path.file_name().unwrap().to_str().unwrap().to_string();
|
upload::send::upload_file_with(self, service, path).await
|
||||||
let file = File::open(path).await.unwrap();
|
|
||||||
let size = file.metadata().await.unwrap().len();
|
|
||||||
let slot_request = SlotRequest {
|
|
||||||
filename: name,
|
|
||||||
size: size,
|
|
||||||
content_type: None,
|
|
||||||
};
|
|
||||||
let to = service.parse::<Jid>().unwrap();
|
|
||||||
let request = Iq::from_get("upload1", slot_request).with_to(to.clone());
|
|
||||||
self.uploads
|
|
||||||
.push((String::from("upload1"), to, path.to_path_buf()));
|
|
||||||
self.client.send_stanza(request.into()).await.unwrap();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,3 +5,4 @@
|
||||||
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
pub mod receive;
|
pub mod receive;
|
||||||
|
pub mod send;
|
||||||
|
|
31
xmpp/src/upload/send.rs
Normal file
31
xmpp/src/upload/send.rs
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
// Copyright (c) 2023 xmpp-rs contributors.
|
||||||
|
//
|
||||||
|
// This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
// License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
|
||||||
|
use std::path::Path;
|
||||||
|
use tokio::fs::File;
|
||||||
|
use tokio_xmpp::{
|
||||||
|
parsers::{http_upload::SlotRequest, iq::Iq},
|
||||||
|
Jid,
|
||||||
|
};
|
||||||
|
|
||||||
|
use crate::Agent;
|
||||||
|
|
||||||
|
pub async fn upload_file_with(agent: &mut Agent, service: &str, path: &Path) {
|
||||||
|
let name = path.file_name().unwrap().to_str().unwrap().to_string();
|
||||||
|
let file = File::open(path).await.unwrap();
|
||||||
|
let size = file.metadata().await.unwrap().len();
|
||||||
|
let slot_request = SlotRequest {
|
||||||
|
filename: name,
|
||||||
|
size: size,
|
||||||
|
content_type: None,
|
||||||
|
};
|
||||||
|
let to = service.parse::<Jid>().unwrap();
|
||||||
|
let request = Iq::from_get("upload1", slot_request).with_to(to.clone());
|
||||||
|
agent
|
||||||
|
.uploads
|
||||||
|
.push((String::from("upload1"), to, path.to_path_buf()));
|
||||||
|
agent.client.send_stanza(request.into()).await.unwrap();
|
||||||
|
}
|
Loading…
Reference in a new issue