From ad553146c78b7826d6916e1858fb4b869e5bc872 Mon Sep 17 00:00:00 2001 From: Micah Lee Date: Fri, 15 May 2015 17:43:01 -0700 Subject: [PATCH] adding html files to Resources, loading them from the correct path, and make sure to include jinja2 extension in py2app (#151) --- onionshare/helpers.py | 9 +++++++++ onionshare/web.py | 4 ++-- setup.py | 5 +++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/onionshare/helpers.py b/onionshare/helpers.py index baa45df6..6465dcfc 100644 --- a/onionshare/helpers.py +++ b/onionshare/helpers.py @@ -47,6 +47,15 @@ def get_osx_resources_dir(): return os.path.dirname(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) +def get_html_path(filename): + p = platform.system() + if p == 'Darwin': + prefix = os.path.join(get_osx_resources_dir(), 'html') + else: + prefix = get_onionshare_dir() + return os.path.join(prefix, filename) + + def constant_time_compare(val1, val2): _builtin_constant_time_compare = getattr(hmac, 'compare_digest', None) if _builtin_constant_time_compare is not None: diff --git a/onionshare/web.py b/onionshare/web.py index 2b15b376..a72f1f7c 100644 --- a/onionshare/web.py +++ b/onionshare/web.py @@ -114,7 +114,7 @@ def index(slug_candidate): add_request(REQUEST_LOAD, request.path) return render_template_string( - open('{0:s}/index.html'.format(helpers.get_onionshare_dir())).read(), + open(helpers.get_html_path('index.html')).read(), slug=slug, file_info=file_info, filename=os.path.basename(zip_filename).decode("utf-8"), @@ -198,7 +198,7 @@ def download(slug_candidate): @app.errorhandler(404) def page_not_found(e): add_request(REQUEST_OTHER, request.path) - return render_template_string(open('{0:s}/404.html'.format(helpers.get_onionshare_dir())).read()) + return render_template_string(open(helpers.get_html_path('404.html')).read()) # shutting down the server only works within the context of flask, so the easiest way to do it is over http shutdown_slug = helpers.random_string(16) diff --git a/setup.py b/setup.py index 69ee2e7b..5aebb980 100644 --- a/setup.py +++ b/setup.py @@ -101,13 +101,14 @@ elif system == 'Darwin': app=['install/onionshare-launcher.py'], data_files=[ ('images', images), - ('locale', locale) + ('locale', locale), + ('html', ['onionshare/index.html', 'onionshare/404.html']) ], options={ 'py2app': { 'argv_emulation': True, 'iconfile':'install/onionshare.icns', - 'includes': ['pip', 'PyQt4', 'PyQt4.QtCore', 'PyQt4.QtGui'], + 'includes': ['pip', 'PyQt4', 'PyQt4.QtCore', 'PyQt4.QtGui', 'jinja2', 'jinja2.ext', 'jinja2.ext.autoescape'], 'excludes': ['PyQt4.QtDesigner', 'PyQt4.QtNetwork', 'PyQt4.QtOpenGL', 'PyQt4.QtScript', 'PyQt4.QtSql', 'PyQt4.QtTest', 'PyQt4.QtWebKit', 'PyQt4.QtXml', 'PyQt4.phonon'] } },