diff --git a/Cargo.lock b/Cargo.lock index 9559a83..7f5ba59 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1084,7 +1084,7 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "streamshare" -version = "1.0.0" +version = "1.1.0" dependencies = [ "futures", "reqwest", diff --git a/Cargo.toml b/Cargo.toml index db3928c..f573ba0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "streamshare" -version = "1.0.0" +version = "1.1.0" edition = "2021" description = "Upload to streamshare library" license = "MIT" diff --git a/README.md b/README.md index d084b94..2b032d2 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ Upload files to [streamshare](https://streamshare.wireway.ch) #### Example: +Upload: ```rust match upload(&file_path).await { Ok((file_identifier, _deletion_token)) => { @@ -18,3 +19,11 @@ match upload(&file_path).await { Err(e) => eprintln!("Error: {}", e), } ``` + +Delete: +```rust +match streamshare::delete(identifier, deltoken).await { + Ok(_) => println!("File deleted successfully"), + Err(e) => eprintln!("Error deleting file: {}", e), +} +``` diff --git a/src/lib.rs b/src/lib.rs index fdbf151..d3c70ba 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,11 +1,14 @@ -use tokio::fs; -use tokio::io::AsyncReadExt; -use std::path::Path; +use futures::{SinkExt, StreamExt}; use reqwest::Client; use serde::Deserialize; +use std::path::Path; +use tokio::fs; use tokio::fs::File; -use tokio_tungstenite::{connect_async, tungstenite::{self, Message}}; -use futures::{SinkExt, StreamExt}; +use tokio::io::AsyncReadExt; +use tokio_tungstenite::{ + connect_async, + tungstenite::{self, Message}, +}; #[derive(Deserialize)] #[serde(rename_all = "camelCase")] @@ -81,5 +84,23 @@ pub async fn upload(file_path: &str) -> Result<(String, String), Box Result<(), Box> { + let client = Client::new(); + let delete_url = format!( + "https://streamshare.wireway.ch/api/delete/{}/{}", + identifier, deltoken + ); + + let res = client.delete(&delete_url).send().await?; + if res.status().is_success() { + Ok(()) + } else { + Err(format!("Failed to delete file: {}", res.status()).into()) + } }