slimshadow commited on
Commit
ac09d69
·
verified ·
1 Parent(s): 15c9046

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -27
app.py CHANGED
@@ -1,27 +1,26 @@
1
- from fastapi import FastAPI, Request
2
- from fastapi.responses import Response
3
- import requests
4
-
5
- app = FastAPI()
6
-
7
- @app.get("/")
8
- async function handleRequest(request: Request):
9
- target_url = request.query_params.get('url')
10
- if not target_url:
11
- return Response(content="Missing 'url' query parameter", status_code=400)
12
-
13
- try:
14
- resp = requests.get(target_url, headers={'User-Agent': 'Mozilla/5.0'})
15
- excluded_headers = ['content-encoding', 'content-length', 'transfer-encoding', 'connection']
16
- headers = {k: v for k, v in resp.headers.items() if k.lower() not in excluded_headers}
17
-
18
- content_type = resp.headers.get('content-type')
19
- if content_type and 'text/html' in content_type:
20
- text = resp.text
21
- text = text.replace('href="/', f'href="?url={target_url}/')
22
- text = text.replace('src="/', f'src="?url={target_url}/')
23
- return Response(content=text, headers=headers, status_code=resp.status_code)
24
-
25
- return Response(content=resp.content, headers=headers, status_code=resp.status_code)
26
- except Exception as e:
27
- return Response(content=f"Error fetching {target_url}: {str(e)}", status_code=500)
 
1
+ from fastapi import FastAPI, Request, Response
2
+ import requests
3
+
4
+ app = FastAPI()
5
+
6
+ @app.get("/")
7
+ async def proxy(request: Request):
8
+ target_url = request.query_params.get('url')
9
+ if not target_url:
10
+ return Response(content="Missing 'url' query parameter", status_code=400)
11
+
12
+ try:
13
+ resp = requests.get(target_url, headers={'User-Agent': 'Mozilla/5.0'})
14
+ excluded_headers = ['content-encoding', 'content-length', 'transfer-encoding', 'connection']
15
+ headers = {k: v for k, v in resp.headers.items() if k.lower() not in excluded_headers}
16
+
17
+ content_type = resp.headers.get('content-type')
18
+ if content_type and 'text/html' in content_type:
19
+ text = resp.text
20
+ text = text.replace('href="/', f'href="?url={target_url}/')
21
+ text = text.replace('src="/', f'src="?url={target_url}/')
22
+ return Response(content=text, headers=headers, status_code=resp.status_code)
23
+
24
+ return Response(content=resp.content, headers=headers, status_code=resp.status_code)
25
+ except Exception as e:
26
+ return Response(content=f"Error fetching {target_url}: {str(e)}", status_code=500)