|
|
|
@ -16,9 +16,10 @@ app = Flask(__name__)
|
|
|
|
|
app.debug = True
|
|
|
|
|
CHUNK_SIZE = 1024 * 10
|
|
|
|
|
index_html = requests.get(ASSET_URL, timeout=10).text
|
|
|
|
|
exp1 = re.compile(r'^(?:https?:\/\/)?github\.com\/.+?\/.+?\/(?:releases|archive)\/.*$')
|
|
|
|
|
exp2 = re.compile(r'^(?:https?:\/\/)?github\.com\/.+?\/.+?\/(?:blob)\/.*$')
|
|
|
|
|
exp3 = re.compile(r'^(?:https?:\/\/)?github\.com\/.+?\/.+?\/(?:info|git-upload-pack).*$')
|
|
|
|
|
exp1 = re.compile(r'^(?:https?://)?github\.com/.+?/.+?/(?:releases|archive)/.*$')
|
|
|
|
|
exp2 = re.compile(r'^(?:https?://)?github\.com/.+?/.+?/(?:blob)/.*$')
|
|
|
|
|
exp3 = re.compile(r'^(?:https?://)?github\.com/.+?/.+?/(?:info|git-upload-pack).*$')
|
|
|
|
|
exp4 = re.compile(r'^(?:https?://)?raw\.githubusercontent\.com/.+?/.+?/.+?/.+$')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.route('/')
|
|
|
|
@ -38,7 +39,10 @@ def proxy(u):
|
|
|
|
|
elif cnpmjs and exp3.match(u):
|
|
|
|
|
u = u.replace('github.com', 'github.com.cnpmjs.org') + request.url.replace(request.base_url, '')
|
|
|
|
|
return redirect(u)
|
|
|
|
|
# elif exp1.match(u):
|
|
|
|
|
elif jsdelivr and exp4.match(u):
|
|
|
|
|
u = re.sub(r'\.com/.*?/.+?/(.+?/)', '@$1', u, 1)
|
|
|
|
|
u = u.replace('raw.githubusercontent.com', 'cdn.jsdelivr.net/gh')
|
|
|
|
|
return redirect(u)
|
|
|
|
|
else:
|
|
|
|
|
headers = {}
|
|
|
|
|
r_headers = {}
|
|
|
|
@ -46,7 +50,7 @@ def proxy(u):
|
|
|
|
|
if i in request.headers:
|
|
|
|
|
r_headers[i] = request.headers.get(i)
|
|
|
|
|
try:
|
|
|
|
|
r = requests.get(u, headers=r_headers, stream=True)
|
|
|
|
|
r = requests.get(u + request.url.replace(request.base_url, ''), headers=r_headers, stream=True)
|
|
|
|
|
for i in ['Content-Type']:
|
|
|
|
|
if i in r.headers:
|
|
|
|
|
headers[i] = r.headers.get(i)
|
|
|
|
|