diff --git a/apps/yourcloud/src/chatbot.rs b/apps/yourcloud/src/chatbot.rs index 443aa93..bd43ede 100644 --- a/apps/yourcloud/src/chatbot.rs +++ b/apps/yourcloud/src/chatbot.rs @@ -3,7 +3,7 @@ // TODO: handle messages // TODO: data persistence? (sqlite? sled?) -use std::{any::Any, fmt, future}; +use std::{any::Any, future}; use discord::model::{ChannelId, Event, Message, ReadyEvent}; use tokio::sync::Mutex; diff --git a/apps/yourcloud/src/config.rs b/apps/yourcloud/src/config.rs index f2b66c3..1bf8444 100644 --- a/apps/yourcloud/src/config.rs +++ b/apps/yourcloud/src/config.rs @@ -30,10 +30,6 @@ pub struct Config { pub open_ai: Option, } -pub struct ConfigLoadResult { - pub config: Config, -} - const CONFIG_FILE_PATH: &str = "./conf.toml"; const ENCRYPTED_CONFIG_FILE_PATH: &str = "./conf.toml.sops"; const TMP_CONFIG_FILE_NAME: &str = "yourcloud-conf.toml"; diff --git a/apps/yourcloud/src/minecraft_server_status.rs b/apps/yourcloud/src/minecraft_server_status.rs index 5450c82..749653b 100644 --- a/apps/yourcloud/src/minecraft_server_status.rs +++ b/apps/yourcloud/src/minecraft_server_status.rs @@ -1,5 +1,7 @@ +#![allow(dead_code)] + use crate::prelude::*; -use http_client::{Client, HeaderMap, HeaderValue, Url}; +use http_client::{Client, Url}; use serde_with::skip_serializing_none; use std::collections::HashMap; @@ -92,12 +94,7 @@ pub struct ServerStatus { impl MinecraftServerStatus { pub fn try_new() -> Result { - let mut headers = HeaderMap::new(); - headers.insert("content-type", HeaderValue::from_str("application/json")?); - headers.insert("accepts", HeaderValue::from_str("application/json")?); - - let client = Client::named("http_client@api.mcsrvstat.us") - .with_default_headers(headers) + let client = Client::builder() .with_url(Url::parse("https://api.mcsrvstat.us/3")?) .build()?; diff --git a/libs/http_client/src/lib.rs b/libs/http_client/src/lib.rs index 5ac9087..3fe3e71 100644 --- a/libs/http_client/src/lib.rs +++ b/libs/http_client/src/lib.rs @@ -76,6 +76,10 @@ impl Builder { builder = builder.default_headers(headers); } + if let Some(ref mut base_url) = self.base_url { + base_url.set_path(&format!("{}{}", base_url.path().trim_end_matches('/'), "/")); + } + let mut middleware_builder = reqwest_middleware::ClientBuilder::new(builder.build()?); if let Some(middleware) = self.middleware { @@ -84,17 +88,18 @@ impl Builder { } } - if let Some(otel_name) = self.name { + if let Some(otel_name) = self.name.or_else(|| { + self.base_url + .as_ref() + .map(|u| u.host_str().map(|h| format!("http_client@{}", h))) + .flatten() + }) { middleware_builder = middleware_builder.with_init(Extension(OtelName(otel_name.into()))); } let client = middleware_builder.build(); - if let Some(ref mut base_url) = self.base_url { - base_url.set_path(&format!("{}{}", base_url.path().trim_end_matches('/'), "/")); - } - Ok(Client { client, base_url: self.base_url, @@ -184,7 +189,13 @@ impl Client { #[instrument] pub async fn get_json(&self, rel_url_path: &str) -> Result { - Ok(self.get(rel_url_path).await?.json().await?) + Ok(self + .build_request(Method::GET, rel_url_path)? + .header("accepts", "application/json") + .send() + .await? + .json() + .await?) } // this is a lib, so add new stuff sparingly!