From fd6baf04ddfc42f83adac5a032334139fdfc1c91 Mon Sep 17 00:00:00 2001 From: Ali Ebadi Date: Wed, 8 Mar 2023 15:35:23 +0330 Subject: [PATCH 01/10] Update server.py --- server.py | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/server.py b/server.py index 430d1dc7..a63657fb 100644 --- a/server.py +++ b/server.py @@ -1,19 +1,34 @@ -import os -import http.server -import socketserver +# import os +# import http.server +# import socketserver -from http import HTTPStatus +# from http import HTTPStatus -class Handler(http.server.SimpleHTTPRequestHandler): - def do_GET(self): - self.send_response(HTTPStatus.OK) - self.end_headers() - msg = 'Hello! you requested %s' % (self.path) - self.wfile.write(msg.encode()) +# class Handler(http.server.SimpleHTTPRequestHandler): +# def do_GET(self): +# self.send_response(HTTPStatus.OK) +# self.end_headers() +# msg = 'Hello! you requested %s' % (self.path) +# self.wfile.write(msg.encode()) -port = int(os.getenv('PORT', 80)) -print('Listening on port %s' % (port)) -httpd = socketserver.TCPServer(('', port), Handler) -httpd.serve_forever() +# port = int(os.getenv('PORT', 80)) +# print('Listening on port %s' % (port)) +# httpd = socketserver.TCPServer(('', port), Handler) +# httpd.serve_forever() +from aiohttp import web + +async def handle_request(request): + url = request.url.with_scheme("https").with_host("archnet.coloringco.com.au") + new_request = request.clone(rel_url=url) + async with aiohttp.ClientSession() as session: + async with session.request(method=new_request.method, url=new_request.url, headers=new_request.headers) as response: + headers = {key.lower(): value for key, value in response.headers.items()} + body = await response.read() + return web.Response(body=body, status=response.status, headers=headers) + +if __name__ == '__main__': + app = web.Application() + app.router.add_route('*', '/{tail:.*}', handle_request) + web.run_app(app) From 272d1bd0c5aa9bdf4a535433d29fbe8a2dddd3ab Mon Sep 17 00:00:00 2001 From: Ali Ebadi Date: Wed, 8 Mar 2023 15:36:16 +0330 Subject: [PATCH 02/10] Update requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index e69de29b..9d1ddf07 100644 --- a/requirements.txt +++ b/requirements.txt @@ -0,0 +1 @@ +aiohttp From cdee9865258d3e55f81d5344032a31167b000862 Mon Sep 17 00:00:00 2001 From: Ali Ebadi Date: Wed, 8 Mar 2023 16:12:01 +0330 Subject: [PATCH 03/10] Update requirements.txt --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9d1ddf07..36b411bb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1 +1,2 @@ -aiohttp +Flask +requests From 793f7b6fe7dca909a8086702302095ecd7f37ec4 Mon Sep 17 00:00:00 2001 From: Ali Ebadi Date: Wed, 8 Mar 2023 16:12:25 +0330 Subject: [PATCH 04/10] Update server.py --- server.py | 40 ++++++++++------------------------------ 1 file changed, 10 insertions(+), 30 deletions(-) diff --git a/server.py b/server.py index a63657fb..967802e9 100644 --- a/server.py +++ b/server.py @@ -1,34 +1,14 @@ -# import os -# import http.server -# import socketserver +from flask import Flask, request +import requests -# from http import HTTPStatus +app = Flask(__name__) - -# class Handler(http.server.SimpleHTTPRequestHandler): -# def do_GET(self): -# self.send_response(HTTPStatus.OK) -# self.end_headers() -# msg = 'Hello! you requested %s' % (self.path) -# self.wfile.write(msg.encode()) - - -# port = int(os.getenv('PORT', 80)) -# print('Listening on port %s' % (port)) -# httpd = socketserver.TCPServer(('', port), Handler) -# httpd.serve_forever() -from aiohttp import web - -async def handle_request(request): - url = request.url.with_scheme("https").with_host("archnet.coloringco.com.au") - new_request = request.clone(rel_url=url) - async with aiohttp.ClientSession() as session: - async with session.request(method=new_request.method, url=new_request.url, headers=new_request.headers) as response: - headers = {key.lower(): value for key, value in response.headers.items()} - body = await response.read() - return web.Response(body=body, status=response.status, headers=headers) +@app.route('/', defaults={'path': ''}) +@app.route('/') +def proxy(path): + url = 'https://fra.bornatejaratdeba.com/' + path + response = requests.get(url, params=request.args) + return response.content, response.status_code if __name__ == '__main__': - app = web.Application() - app.router.add_route('*', '/{tail:.*}', handle_request) - web.run_app(app) + app.run(host='0.0.0.0', port=80) From 68589928765c772b76d843da83ade7e45031c106 Mon Sep 17 00:00:00 2001 From: Ali Ebadi Date: Wed, 8 Mar 2023 16:16:38 +0330 Subject: [PATCH 05/10] Update server.py --- server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.py b/server.py index 967802e9..278ae019 100644 --- a/server.py +++ b/server.py @@ -11,4 +11,4 @@ def proxy(path): return response.content, response.status_code if __name__ == '__main__': - app.run(host='0.0.0.0', port=80) + app.run(host='0.0.0.0', port=443) From 11e16512642caa9e3baaa7b1f671f3b288ff829a Mon Sep 17 00:00:00 2001 From: Ali Ebadi Date: Wed, 8 Mar 2023 16:21:14 +0330 Subject: [PATCH 06/10] Update server.py --- server.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/server.py b/server.py index 278ae019..c2568372 100644 --- a/server.py +++ b/server.py @@ -1,14 +1,20 @@ -from flask import Flask, request -import requests +import re -app = Flask(__name__) +def fetch_listener(event): + url = event.request.url + url_parts = list(urlparse(url)) + url_parts[1] = "fra.bornatejaratdeba.com" + url_parts[0] = "https" + new_url = urlunparse(url_parts) + new_request = Request(new_url, method=event.request.method, + headers=event.request.headers, + data=event.request.body, + cookies=event.request.cookies, + auth=event.request.auth, + allow_redirects=event.request.allow_redirects, + timeout=event.request.timeout, + verify=event.request.verify, + cert=event.request.cert) + return fetch(new_request) -@app.route('/', defaults={'path': ''}) -@app.route('/') -def proxy(path): - url = 'https://fra.bornatejaratdeba.com/' + path - response = requests.get(url, params=request.args) - return response.content, response.status_code - -if __name__ == '__main__': - app.run(host='0.0.0.0', port=443) +add_event_listener("fetch", fetch_listener) From 8d4ea867dd275af69e62c2ff1a752014f72ba4cb Mon Sep 17 00:00:00 2001 From: Ali Ebadi Date: Wed, 8 Mar 2023 16:21:25 +0330 Subject: [PATCH 07/10] Update requirements.txt --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 36b411bb..bebaa03d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1 @@ -Flask requests From b5bddafd83968bd661613a3cea77af999109afbf Mon Sep 17 00:00:00 2001 From: Ali Ebadi Date: Wed, 8 Mar 2023 16:23:35 +0330 Subject: [PATCH 08/10] Update server.py --- server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.py b/server.py index c2568372..96fc390f 100644 --- a/server.py +++ b/server.py @@ -17,4 +17,4 @@ def fetch_listener(event): cert=event.request.cert) return fetch(new_request) -add_event_listener("fetch", fetch_listener) +self.addEventListener("fetch", fetch_listener) From d560722d04f441d6da4eba09879ef34f6a7c78c8 Mon Sep 17 00:00:00 2001 From: Ali Ebadi Date: Wed, 8 Mar 2023 16:29:21 +0330 Subject: [PATCH 09/10] Update server.py --- server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.py b/server.py index 96fc390f..2f54c960 100644 --- a/server.py +++ b/server.py @@ -17,4 +17,4 @@ def fetch_listener(event): cert=event.request.cert) return fetch(new_request) -self.addEventListener("fetch", fetch_listener) +addEventListener("fetch", fetch_listener) From d9bd32c64b18a799ec8b4a24d967e6d429dd0c84 Mon Sep 17 00:00:00 2001 From: Ali Ebadi Date: Wed, 8 Mar 2023 16:37:19 +0330 Subject: [PATCH 10/10] Update server.py --- server.py | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/server.py b/server.py index 2f54c960..48a5fbb5 100644 --- a/server.py +++ b/server.py @@ -1,20 +1,28 @@ -import re +# import re + +# def fetch_listener(event): +# url = event.request.url +# url_parts = list(urlparse(url)) +# url_parts[1] = "fra.bornatejaratdeba.com" +# url_parts[0] = "https" +# new_url = urlunparse(url_parts) +# new_request = Request(new_url, method=event.request.method, +# headers=event.request.headers, +# data=event.request.body, +# cookies=event.request.cookies, +# auth=event.request.auth, +# allow_redirects=event.request.allow_redirects, +# timeout=event.request.timeout, +# verify=event.request.verify, +# cert=event.request.cert) +# return fetch(new_request) +import requests def fetch_listener(event): url = event.request.url - url_parts = list(urlparse(url)) - url_parts[1] = "fra.bornatejaratdeba.com" - url_parts[0] = "https" - new_url = urlunparse(url_parts) - new_request = Request(new_url, method=event.request.method, - headers=event.request.headers, - data=event.request.body, - cookies=event.request.cookies, - auth=event.request.auth, - allow_redirects=event.request.allow_redirects, - timeout=event.request.timeout, - verify=event.request.verify, - cert=event.request.cert) - return fetch(new_request) - -addEventListener("fetch", fetch_listener) + url = re.sub(r'^https?://', 'https://fra.bornatejaratdeba.com/', url) + response = requests.get(url, + headers=event.request.headers.items(), + data=event.request.body, + cookies=event.request.cookies.get_dict()) + return Response(response.content, status=response.status_code)