summaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/api')
-rw-r--r--src/api/guzzle.rs20
-rw-r--r--src/api/mod.rs29
-rw-r--r--src/api/shiggy.rs20
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)
-}