mirror of
https://github.com/mii443/vrchatapi-rust.git
synced 2025-12-03 11:08:19 +00:00
Add actual Rate-Limiting
This commit is contained in:
17
generate.sh
17
generate.sh
@@ -21,10 +21,23 @@ find src -type f -exec sed -i '/VRChat API Banner/d' {} \;
|
||||
# Remove openapi version in every file
|
||||
find src -type f -exec sed -i '/The version of the OpenAPI document/d' {} \;
|
||||
|
||||
# Cookie storage
|
||||
sed -i 's/Client::new()/Client::builder().cookie_store(true).build().unwrap()/g' src/apis/configuration.rs
|
||||
# Cookie storage & Rate Limiting
|
||||
sed -i 's/reqwest::Client::new()/std::sync::Arc::new(reqwest::Client::builder().cookie_store(true).build().unwrap())/g' src/apis/configuration.rs
|
||||
sed -i 's/features = \["json", "multipart"\]/features = \["json", "cookies", "multipart"\]/g' Cargo.toml
|
||||
|
||||
shopt -s extglob
|
||||
sed -i 's/Configuration/Configuration<impl std::ops::Deref<Target = reqwest::Client> + Clone + core::fmt::Debug>/g' src/apis/!(configuration).rs
|
||||
shopt -u extglob
|
||||
|
||||
sed -i 's/struct Configuration/struct Configuration<T>/g' src/apis/configuration.rs
|
||||
sed -i 's/pub client: reqwest::Client,/pub client: T,/g' src/apis/configuration.rs
|
||||
sed -i 's/impl Configuration/impl <T> Configuration<T>/g' src/apis/configuration.rs
|
||||
sed -i 's/fn new() -> Configuration/fn new() -> Configuration<std::sync::Arc<reqwest::Client>>/g' src/apis/configuration.rs
|
||||
sed -i 's/impl Default for Configuration/impl Default for Configuration<std::sync::Arc<reqwest::Client>>/g' src/apis/configuration.rs
|
||||
|
||||
|
||||
#cat patches/Adjustable-Client.rs >> src/apis/configuration.rs
|
||||
|
||||
#Fix example
|
||||
printf "\n[dev-dependencies]\ntokio = { version = '1', features = ['macros', 'rt-multi-thread'] }" >> Cargo.toml
|
||||
|
||||
|
||||
10
patches/Adjustable-Client.rs
Normal file
10
patches/Adjustable-Client.rs
Normal file
@@ -0,0 +1,10 @@
|
||||
#[derive(Debug)]
|
||||
struct ClientWrapper(reqwest::Client);
|
||||
impl std::ops::Deref for ClientWrapper{
|
||||
type Target = reqwest::Client;
|
||||
fn deref(&self) -> &Self::Target {
|
||||
&self.0
|
||||
}
|
||||
}
|
||||
pub trait Client: std::ops::Deref + std::fmt::Debug {}
|
||||
impl<T:std::ops::Deref + std::fmt::Debug> Client for T {}
|
||||
Reference in New Issue
Block a user