Update app.py
Browse files
app.py
CHANGED
@@ -72,13 +72,29 @@ async def extract_and_transform_proxies(input_text):
|
|
72 |
|
73 |
return "\n".join(transformed_proxies) if transformed_proxies else "未找到有效的SS或Trojan代理配置"
|
74 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
75 |
async def handle_request(request):
|
76 |
if request.path == '/':
|
77 |
query_params = parse_qs(request.query_string)
|
78 |
if 'url' in query_params:
|
79 |
url = query_params['url'][0]
|
80 |
-
timestamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
81 |
-
print(f"{timestamp} - {request.remote} - GET /?url={url}")
|
82 |
try:
|
83 |
async with aiohttp.ClientSession() as session:
|
84 |
input_text = await fetch_url(url, session)
|
@@ -101,11 +117,11 @@ async def handle_request(request):
|
|
101 |
return web.Response(text="Not Found", status=404)
|
102 |
|
103 |
async def init_app():
|
104 |
-
app = web.Application()
|
105 |
app.router.add_get('/', handle_request)
|
106 |
return app
|
107 |
|
108 |
if __name__ == "__main__":
|
109 |
print(f"===== Application Startup at {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')} =====")
|
110 |
print("Server running on port 8080")
|
111 |
-
web.run_app(init_app(), port=8080)
|
|
|
72 |
|
73 |
return "\n".join(transformed_proxies) if transformed_proxies else "未找到有效的SS或Trojan代理配置"
|
74 |
|
75 |
+
async def log_request(request, response):
|
76 |
+
timestamp = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
77 |
+
client_ip = request.remote
|
78 |
+
request_line = f"{request.method} {request.path}"
|
79 |
+
if request.query_string:
|
80 |
+
request_line += f"?{request.query_string}"
|
81 |
+
status_code = response.status
|
82 |
+
content_length = response.content_length
|
83 |
+
|
84 |
+
log_message = f"{timestamp} - {client_ip} - \"{request_line}\" {status_code} {content_length}"
|
85 |
+
print(log_message, flush=True)
|
86 |
+
|
87 |
+
@web.middleware
|
88 |
+
async def logging_middleware(request, handler):
|
89 |
+
response = await handler(request)
|
90 |
+
await log_request(request, response)
|
91 |
+
return response
|
92 |
+
|
93 |
async def handle_request(request):
|
94 |
if request.path == '/':
|
95 |
query_params = parse_qs(request.query_string)
|
96 |
if 'url' in query_params:
|
97 |
url = query_params['url'][0]
|
|
|
|
|
98 |
try:
|
99 |
async with aiohttp.ClientSession() as session:
|
100 |
input_text = await fetch_url(url, session)
|
|
|
117 |
return web.Response(text="Not Found", status=404)
|
118 |
|
119 |
async def init_app():
|
120 |
+
app = web.Application(middlewares=[logging_middleware])
|
121 |
app.router.add_get('/', handle_request)
|
122 |
return app
|
123 |
|
124 |
if __name__ == "__main__":
|
125 |
print(f"===== Application Startup at {datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')} =====")
|
126 |
print("Server running on port 8080")
|
127 |
+
web.run_app(init_app(), port=8080, print=lambda _: None) # Disable default startup message
|