blob: df208a04306aa44adf30fde854077617ec545454 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#!/usr/bin/python
from os import environ as env
import urllib.request
import base64
import json
import sys
def error():
print("Content-type: text/html")
print()
print("HELLO!")
def proxy(url,ext,callback):
req = urllib.request.urlopen(url)
if callback != "":
print("Content-type: text/plain")
print()
sys.stdout.flush()
sys.stdout.buffer.write( bytes( callback + "(btoa(" + json.dumps( "".join(map(chr, base64.b64encode( req.read() )))) + "))" , 'utf-8'))
else:
print("Content-type: image/" + ext)
print()
sys.stdout.flush()
sys.stdout.buffer.write( req.read() )
qs = env['QUERY_STRING'].split('&callback=')
if len(qs) == 2:
callback = qs[1]
else:
callback = ''
path = qs[0]
ext = path[-3:].lower()
if path[0:4] == "http" and ext in ("gif","jpg","png","peg"):
proxy(path,ext,callback)
else:
error()
|