summaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
authorseth <[email protected]>2024-08-09 23:35:41 -0400
committerGitHub <[email protected]>2024-08-09 23:35:41 -0400
commitb643a6a235b0c1c9902b97421f24eff2b0d0a5ac (patch)
tree350794c0e9330fb77367838313bc6bb97278a0aa /src/api
parent372780546b508684839916e5ad54c9e90456a94f (diff)
tree-wide: end of summer cleanup (#214)
* api: refactor & rename module to http * client: split from main.rs * tree-wide: use eyre::Report as error * nix: alejandra -> nixfmt * nix: start using treefmt-nix * nix: simplify flake * nix: refactor derivation & docker image * nix: remove overlay * ci: update & cleanup workflows * commands: assign all commands automatically * commands/copypasta: remove * http/teawie: update response struct for upstream rust rewrite * handlers: rename modules to events; flatten * crates: rename self to teawie-bot * nix: fenix -> rust-overlay i want a specific rust version grrrrrrr * ci: pin rust to 1.79 this is what our nix dev shell uses and what we can compile on. it seems the time crate doesn't like v1.80 of the compiler :( * ci: always run release gates * nix: fix static toolchain * nix: rust-overlay -> nixpkgs * ci: adopt actions-rust-lang actions * nix: use docker arch names for containers * crates/time: 0.3.30 -> 0.3.36 fixes building on rust 1.80.0
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)
-}