fix: delete broken 0x0

This commit is contained in:
MedzikUser 2022-09-05 20:51:50 +02:00
parent f5c70e4f4f
commit 8ddfeb3c19
No known key found for this signature in database
GPG Key ID: A5FAC1E185C112DB
2 changed files with 0 additions and 95 deletions

View File

@ -99,9 +99,3 @@ mod imgur;
#[cfg(feature = "imgur")]
pub use imgur::*;
#[cfg(feature = "null_pointer")]
mod null_pointer;
#[cfg(feature = "null_pointer")]
pub use null_pointer::*;

View File

@ -1,89 +0,0 @@
use std::collections::HashMap;
use reqwest::{Client, Method};
use crate::{Error, Result};
#[derive(Debug, Clone)]
/// The Null Pointer instance for https://0x0.st
pub struct NullPointer {
client: Client,
url: String,
}
impl NullPointer {
/// Create a new [NullPointer] instance.
/// ```rs
/// use imgurs::NullPointer;
///
/// let client = NullPointer::new("https://0x0.st");
/// ```
pub fn new(url: &str) -> Self {
let client = reqwest::Client::new();
Self {
client,
url: url.to_string(),
}
}
/// Upload image to Imgur
/// ```no_run
/// use imgurs::NullPointer;
///
/// #[tokio::main]
/// async fn main() {
/// let client = NullPointer::new("https://0x0.st");
///
/// client.upload("path/to/file.png").await.expect("failed to upload image");
/// }
/// ```
pub async fn upload(&self, path: &str) -> Result<String> {
let mut bytes = Vec::new();
// check if the specified file exists if not then check if it is a url
if std::path::Path::new(path).exists() {
bytes = std::fs::read(path)?;
}
// validate url adress
else {
Err(Error::InvalidUrlOrFile(path.to_string()))?;
}
// send request to imgur api
// get http client
let client = &self.client;
// create Request buidler
let mut req = client.request(Method::POST, &self.url);
// add `Authorization` and `User-Agent` to Request
req = req.header(
"User-Agent",
format!("Imgur/{:?}", env!("CARGO_PKG_VERSION")),
);
let part = reqwest::multipart::Part::bytes(bytes);
let form = reqwest::multipart::Form::new().part("file", part);
req = req.multipart(form);
// build Request
let req = req.build()?;
// send Request
let res = client.execute(req).await?;
// get response http code
let status = res.status();
// check if an error has occurred
if status.is_client_error() || status.is_server_error() {
let body = res.text().await?;
return Err(Error::ApiError(status.as_u16(), body));
}
Ok(res.json().await?)
}
}