diff options
Diffstat (limited to 'src/api')
| -rw-r--r-- | src/api/guzzle.rs | 20 | ||||
| -rw-r--r-- | src/api/mod.rs | 29 | ||||
| -rw-r--r-- | src/api/shiggy.rs | 20 |
3 files changed, 0 insertions, 69 deletions
diff --git a/src/api/guzzle.rs b/src/api/guzzle.rs deleted file mode 100644 index 9ad6ad6..0000000 --- a/src/api/guzzle.rs +++ /dev/null @@ -1,20 +0,0 @@ -use eyre::Result; -use log::debug; -use serde::{Deserialize, Serialize}; - -#[derive(Serialize, Deserialize)] -struct RandomTeawieResponse { - url: String, -} - -// TODO: read this from an env var -const GUZZLE: &str = "https://api.getchoo.com"; -const RANDOM_TEAWIE: &str = "/random_teawie"; - -pub async fn random_teawie() -> Result<String> { - let url = format!("{GUZZLE}{RANDOM_TEAWIE}"); - debug!("Making request to {url}"); - let json: RandomTeawieResponse = super::get_json(&url).await?; - - Ok(json.url) -} diff --git a/src/api/mod.rs b/src/api/mod.rs deleted file mode 100644 index dac9209..0000000 --- a/src/api/mod.rs +++ /dev/null @@ -1,29 +0,0 @@ -use std::sync::OnceLock; - -use eyre::Result; -use reqwest::Client; -use serde::de::DeserializeOwned; - -pub mod guzzle; -pub mod shiggy; - -pub fn client() -> &'static Client { - static USER_AGENT: OnceLock<String> = OnceLock::new(); - static CLIENT: OnceLock<Client> = OnceLock::new(); - - let user_agent = USER_AGENT.get_or_init(|| { - let version = option_env!("CARGO_PKG_VERSION").unwrap_or("development"); - - format!("teawieBot/{version}") - }); - - CLIENT.get_or_init(|| Client::builder().user_agent(user_agent).build().unwrap()) -} - -async fn get_json<T: DeserializeOwned>(url: &str) -> Result<T> { - let resp = client().get(url).send().await?; - resp.error_for_status_ref()?; - let json = resp.json().await?; - - Ok(json) -} diff --git a/src/api/shiggy.rs b/src/api/shiggy.rs deleted file mode 100644 index d6a6238..0000000 --- a/src/api/shiggy.rs +++ /dev/null @@ -1,20 +0,0 @@ -use eyre::Result; -use log::debug; -use serde::Deserialize; - -const SHIGGY: &str = "https://safebooru.donmai.us"; -const RANDOM_SHIGGY: &str = "/posts/random.json?tags=kemomimi-chan_(naga_u)+naga_u&only=file_url"; - -#[derive(Deserialize)] -struct SafebooruResponse { - file_url: String, -} - -#[allow(clippy::module_name_repetitions)] -pub async fn random_shiggy() -> Result<String> { - let url = format!("{SHIGGY}{RANDOM_SHIGGY}"); - debug!("Making request to {url}"); - - let resp: SafebooruResponse = super::get_json(&url).await?; - Ok(resp.file_url) -} |
