diff --git a/packages/app-lib/src/lib.rs b/packages/app-lib/src/lib.rs index 45da6fbc92..6f62495ecc 100644 --- a/packages/app-lib/src/lib.rs +++ b/packages/app-lib/src/lib.rs @@ -26,8 +26,13 @@ pub use event::{ pub use logger::start_logger; pub use state::State; -pub const LAUNCHER_USER_AGENT: &str = concat!( - "modrinth/theseus/", - env!("CARGO_PKG_VERSION"), - " (support@modrinth.com)" -); +pub fn launcher_user_agent() -> String { + const LAUNCHER_BASE_USER_AGENT: &str = + concat!("modrinth/theseus/", env!("CARGO_PKG_VERSION"),); + + format!( + "{} ({}; support@modrinth.com)", + LAUNCHER_BASE_USER_AGENT, + std::env::consts::OS + ) +} diff --git a/packages/app-lib/src/state/friends.rs b/packages/app-lib/src/state/friends.rs index ad28ffeba4..41487df8cd 100644 --- a/packages/app-lib/src/state/friends.rs +++ b/packages/app-lib/src/state/friends.rs @@ -1,5 +1,4 @@ use crate::ErrorKind; -use crate::LAUNCHER_USER_AGENT; use crate::data::ModrinthCredentials; use crate::event::FriendPayload; use crate::event::emit::emit_friend; @@ -85,7 +84,7 @@ impl FriendsSocket { request.headers_mut().insert( "User-Agent", - HeaderValue::from_str(LAUNCHER_USER_AGENT).unwrap(), + HeaderValue::from_str(&crate::launcher_user_agent()).unwrap(), ); let res = connect_async(request).await; diff --git a/packages/app-lib/src/util/fetch.rs b/packages/app-lib/src/util/fetch.rs index fafba22152..3ed2389615 100644 --- a/packages/app-lib/src/util/fetch.rs +++ b/packages/app-lib/src/util/fetch.rs @@ -1,7 +1,6 @@ //! Functions for fetching information from the Internet use super::io::{self, IOError}; use crate::ErrorKind; -use crate::LAUNCHER_USER_AGENT; use crate::event::LoadingBarId; use crate::event::emit::emit_loading; use bytes::Bytes; @@ -21,8 +20,10 @@ pub struct FetchSemaphore(pub Semaphore); pub static REQWEST_CLIENT: LazyLock = LazyLock::new(|| { let mut headers = reqwest::header::HeaderMap::new(); + let header = - reqwest::header::HeaderValue::from_str(LAUNCHER_USER_AGENT).unwrap(); + reqwest::header::HeaderValue::from_str(&crate::launcher_user_agent()) + .unwrap(); headers.insert(reqwest::header::USER_AGENT, header); reqwest::Client::builder() .tcp_keepalive(Some(time::Duration::from_secs(10)))