@@ -4,27 +4,22 @@ use std::str::FromStr;
4
4
5
5
use core:: fmt:: Debug ;
6
6
7
+ use chatgpt_proxy_server:: * ;
7
8
use hyper:: server:: conn:: AddrStream ;
8
9
use hyper:: service:: { make_service_fn, service_fn} ;
9
10
use hyper:: { Body , Client , Request , Response , Server , Uri } ;
10
11
use hyper_tls:: HttpsConnector ;
11
12
use lazy_static:: lazy_static;
12
13
13
- // import lib.rs
14
- mod lib;
15
-
16
- // create config struct
17
-
18
14
use dotenv;
19
15
use tokio:: sync:: Mutex ;
20
16
21
- # [ derive ( Debug ) ]
17
+ // create config struct
22
18
struct Config {
23
19
chatgpt_url : String ,
24
20
ratelimit : u32 ,
25
21
}
26
22
27
-
28
23
lazy_static ! {
29
24
static ref CONFIG : Config = {
30
25
dotenv:: dotenv( ) . ok( ) ;
@@ -51,14 +46,17 @@ impl Debug for CONFIG {
51
46
}
52
47
53
48
lazy_static ! {
54
- static ref RATE_LIMITER : Mutex <lib:: RateLimiter > = Mutex :: new( lib:: RateLimiter :: new(
55
- CONFIG . ratelimit
56
- ) ) ;
49
+ static ref RATE_LIMITER : Mutex <RateLimiter > = Mutex :: new( RateLimiter :: new( CONFIG . ratelimit) ) ;
57
50
}
58
51
59
52
async fn proxy ( req : Request < Body > ) -> Result < Response < Body > , hyper:: Error > {
60
- let client_ip = & req. extensions ( ) . get :: < SocketAddr > ( ) . unwrap ( ) . ip ( ) . to_string ( ) ;
61
- // Read Client IP read form header or client
53
+ let client_ip = & req
54
+ . extensions ( )
55
+ . get :: < SocketAddr > ( )
56
+ . unwrap ( )
57
+ . ip ( )
58
+ . to_string ( ) ;
59
+ // Read Client IP read form header or client
62
60
let real_ip = req
63
61
. headers ( )
64
62
. get ( "X-Forwarded-For" )
@@ -129,9 +127,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
129
127
} ) )
130
128
}
131
129
} ) ;
132
- let server = Server :: bind ( & addr) . serve (
133
- service
134
- ) ;
130
+ let server = Server :: bind ( & addr) . serve ( service) ;
135
131
// print config
136
132
println ! ( "Config: {:?}" , CONFIG ) ;
137
133
println ! ( "Listening on http://{}" , addr) ;
0 commit comments