but safer

This commit is contained in:
psykose 2024-10-31 21:54:33 +01:00
parent b3b0160497
commit 2e4778f2f9

View file

@ -49,22 +49,28 @@ pub struct Client {
impl Client { impl Client {
pub fn new(url: &str, username: &str, token: &str, salt: &str) -> Result<Self, Error> { pub fn new(url: &str, username: &str, token: &str, salt: &str) -> Result<Self, Error> {
let base_url = reqwest::Url::parse_with_params(
url,
&[
("u", username),
("t", token),
("s", salt),
("v", "1.16.1"),
("c", "eu.callcc.audrey"),
("f", "json"),
],
)
.map_err(|err| Error::UrlParseError(err.to_string()))?;
if base_url.scheme() != "http" && base_url.scheme() != "https" {
return Err(Error::UrlParseError("Url scheme is not HTTP(s)".into()));
}
Ok(Client { Ok(Client {
client: reqwest::Client::builder() client: reqwest::Client::builder()
.user_agent("audrey/linux") // Audrey.Const.user_agent .user_agent("audrey/linux") // Audrey.Const.user_agent
.build()?, .build()?,
base_url: reqwest::Url::parse_with_params( base_url,
url,
&[
("u", username),
("t", token),
("s", salt),
("v", "1.16.1"),
("c", "eu.callcc.audrey"),
("f", "json"),
],
)
.map_err(|err| Error::UrlParseError(err.to_string()))?,
}) })
} }