39 lines
No EOL
955 B
Python
39 lines
No EOL
955 B
Python
from gevent import monkey; monkey.patch_all()
|
|
import urllib, zipfile, os, ssl, httplib, socket
|
|
import cStringIO as StringIO
|
|
|
|
def update():
|
|
# Gevent https bug workaround (https://github.com/gevent/gevent/issues/477)
|
|
reload(socket)
|
|
reload(httplib)
|
|
reload(ssl)
|
|
|
|
print "Downloading.",
|
|
file = urllib.urlopen("https://github.com/HelloZeroNet/ZeroNet/archive/master.zip")
|
|
data = StringIO.StringIO()
|
|
while True:
|
|
buff = file.read(1024*16)
|
|
if not buff: break
|
|
data.write(buff)
|
|
print ".",
|
|
|
|
print "Extracting...",
|
|
zip = zipfile.ZipFile(data)
|
|
for inner_path in zip.namelist():
|
|
print ".",
|
|
dest_path = inner_path.replace("ZeroNet-master/", "")
|
|
if not dest_path: continue
|
|
|
|
dest_dir = os.path.dirname(dest_path)
|
|
if dest_dir and not os.path.isdir(dest_dir):
|
|
os.makedirs(dest_dir)
|
|
|
|
if dest_dir != dest_path.strip("/"):
|
|
data = zip.read(inner_path)
|
|
open(dest_path, 'wb').write(data)
|
|
|
|
print "Done."
|
|
|
|
|
|
if __name__ == "__main__":
|
|
update() |