Compare commits
No commits in common. "1582cef26a0d9ceb7dfe86a79449a41424b38069" and "e8c8356dc9ca942b000c4a3f45e37656845e4bb9" have entirely different histories.
1582cef26a
...
e8c8356dc9
2 changed files with 14 additions and 21 deletions
|
@ -41,7 +41,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||||
let install_py = resourcePath?.stringByAppendingString("/install.py")
|
let install_py = resourcePath?.stringByAppendingString("/install.py")
|
||||||
let install_html = resourcePath?.stringByAppendingString("/install.html")
|
let install_html = resourcePath?.stringByAppendingString("/install.html")
|
||||||
let install = NSTask()
|
let install = NSTask()
|
||||||
install.launchPath = "/usr/bin/python3"
|
install.launchPath = "/usr/bin/python"
|
||||||
install.arguments = [install_py!]
|
install.arguments = [install_py!]
|
||||||
install.launch()
|
install.launch()
|
||||||
open(install_html!)
|
open(install_html!)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python
|
||||||
|
from __future__ import division, with_statement
|
||||||
|
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
import json
|
import json
|
||||||
|
@ -7,23 +7,19 @@ import os
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import tarfile
|
import tarfile
|
||||||
import urllib.request
|
import urllib2
|
||||||
import urllib.error
|
import SimpleHTTPServer
|
||||||
import urllib.parse
|
import SocketServer
|
||||||
import http.server
|
|
||||||
import socketserver
|
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
|
|
||||||
|
|
||||||
PORT = 9841
|
PORT = 9841
|
||||||
static_dir = os.path.normpath(os.path.abspath(os.path.dirname(__file__)))
|
static_dir = os.path.normpath(os.path.abspath(os.path.dirname(__file__)))
|
||||||
|
|
||||||
|
|
||||||
def makedirs(dirname):
|
def makedirs(dirname):
|
||||||
if not os.path.exists(dirname):
|
if not os.path.exists(dirname):
|
||||||
os.makedirs(dirname)
|
os.makedirs(dirname)
|
||||||
|
|
||||||
|
|
||||||
def get_platform():
|
def get_platform():
|
||||||
name = sys.platform
|
name = sys.platform
|
||||||
if name.startswith('darwin'):
|
if name.startswith('darwin'):
|
||||||
|
@ -36,8 +32,7 @@ def get_platform():
|
||||||
name = 'linux32'
|
name = 'linux32'
|
||||||
return name
|
return name
|
||||||
|
|
||||||
|
class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
|
||||||
class Handler(http.server.SimpleHTTPRequestHandler):
|
|
||||||
def do_OPTIONS(self):
|
def do_OPTIONS(self):
|
||||||
self.send_response(200, 'OK')
|
self.send_response(200, 'OK')
|
||||||
self.send_header('Allow', 'GET, POST, OPTIONS')
|
self.send_header('Allow', 'GET, POST, OPTIONS')
|
||||||
|
@ -54,7 +49,7 @@ class Handler(http.server.SimpleHTTPRequestHandler):
|
||||||
else:
|
else:
|
||||||
path = os.path.join(static_dir, 'index.html' if self.path == '/' else self.path[1:])
|
path = os.path.join(static_dir, 'index.html' if self.path == '/' else self.path[1:])
|
||||||
if os.path.exists(path):
|
if os.path.exists(path):
|
||||||
with open(path, 'rb') as fd:
|
with open(path) as fd:
|
||||||
content = fd.read()
|
content = fd.read()
|
||||||
self.send_response(200, 'OK')
|
self.send_response(200, 'OK')
|
||||||
content_type = {
|
content_type = {
|
||||||
|
@ -70,8 +65,6 @@ class Handler(http.server.SimpleHTTPRequestHandler):
|
||||||
self.send_header('Access-Control-Allow-Origin', '*')
|
self.send_header('Access-Control-Allow-Origin', '*')
|
||||||
self.send_header('Content-Length', str(len(content)))
|
self.send_header('Content-Length', str(len(content)))
|
||||||
self.end_headers()
|
self.end_headers()
|
||||||
if isinstance(content, str):
|
|
||||||
content = content.encode()
|
|
||||||
self.wfile.write(content)
|
self.wfile.write(content)
|
||||||
|
|
||||||
|
|
||||||
|
@ -125,8 +118,8 @@ class Install(Thread):
|
||||||
dirname = os.path.dirname(filename)
|
dirname = os.path.dirname(filename)
|
||||||
if dirname:
|
if dirname:
|
||||||
makedirs(dirname)
|
makedirs(dirname)
|
||||||
with open(filename, 'wb') as f:
|
with open(filename, 'w') as f:
|
||||||
with closing(urllib.request.urlopen(url)) as u:
|
with closing(urllib2.urlopen(url)) as u:
|
||||||
size = int(u.headers.get('content-length', 0))
|
size = int(u.headers.get('content-length', 0))
|
||||||
self.status["size"] = size
|
self.status["size"] = size
|
||||||
available = 0
|
available = 0
|
||||||
|
@ -138,7 +131,7 @@ class Install(Thread):
|
||||||
data = u.read(4096)
|
data = u.read(4096)
|
||||||
|
|
||||||
def get_release(self):
|
def get_release(self):
|
||||||
with closing(urllib.request.urlopen(self.release_url)) as u:
|
with closing(urllib2.urlopen(self.release_url)) as u:
|
||||||
data = json.load(u)
|
data = json.load(u)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
@ -147,12 +140,12 @@ if __name__ == '__main__':
|
||||||
if len(sys.argv) == 1:
|
if len(sys.argv) == 1:
|
||||||
target = os.path.expanduser("~/Library/Application Support/Open Media Library")
|
target = os.path.expanduser("~/Library/Application Support/Open Media Library")
|
||||||
elif len(sys.argv) != 2:
|
elif len(sys.argv) != 2:
|
||||||
print("usage: %s [target]" % sys.argv[0])
|
print "usage: %s [target]" % sys.argv[0]
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
else:
|
else:
|
||||||
target = sys.argv[1]
|
target = sys.argv[1]
|
||||||
socketserver.TCPServer.allow_reuse_address = True
|
SocketServer.TCPServer.allow_reuse_address = True
|
||||||
httpd = socketserver.TCPServer(("", PORT), Handler)
|
httpd = SocketServer.TCPServer(("", PORT), Handler)
|
||||||
install = Install(target, httpd)
|
install = Install(target, httpd)
|
||||||
httpd.install = install
|
httpd.install = install
|
||||||
httpd.serve_forever()
|
httpd.serve_forever()
|
||||||
|
|
Loading…
Reference in a new issue