mirror of
https://github.com/onionshare/onionshare.git
synced 2025-02-26 01:11:27 -05:00
Add Web.generate_static_url_path back, so each share has its own static path
This commit is contained in:
parent
a0759cedcd
commit
e7959f9ae6
@ -30,7 +30,7 @@ except:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Web(object):
|
class Web:
|
||||||
"""
|
"""
|
||||||
The Web object is the OnionShare web server, powered by flask
|
The Web object is the OnionShare web server, powered by flask
|
||||||
"""
|
"""
|
||||||
@ -51,16 +51,12 @@ class Web(object):
|
|||||||
self.common = common
|
self.common = common
|
||||||
self.common.log('Web', '__init__', 'is_gui={}, mode={}'.format(is_gui, mode))
|
self.common.log('Web', '__init__', 'is_gui={}, mode={}'.format(is_gui, mode))
|
||||||
|
|
||||||
# The static URL path has a 128-bit random number in it to avoid having name
|
|
||||||
# collisions with files that might be getting shared
|
|
||||||
self.static_url_path = '/static_{}'.format(self.common.random_string(16))
|
|
||||||
|
|
||||||
# The flask app
|
# The flask app
|
||||||
self.app = Flask(__name__,
|
self.app = Flask(__name__,
|
||||||
static_url_path=self.static_url_path,
|
|
||||||
static_folder=self.common.get_resource_path('static'),
|
static_folder=self.common.get_resource_path('static'),
|
||||||
template_folder=self.common.get_resource_path('templates'))
|
template_folder=self.common.get_resource_path('templates'))
|
||||||
self.app.secret_key = self.common.random_string(8)
|
self.app.secret_key = self.common.random_string(8)
|
||||||
|
self.generate_static_url_path()
|
||||||
self.auth = HTTPBasicAuth()
|
self.auth = HTTPBasicAuth()
|
||||||
self.auth.error_handler(self.error401)
|
self.auth.error_handler(self.error401)
|
||||||
|
|
||||||
@ -127,6 +123,17 @@ class Web(object):
|
|||||||
elif self.mode == 'share':
|
elif self.mode == 'share':
|
||||||
self.share_mode = ShareModeWeb(self.common, self)
|
self.share_mode = ShareModeWeb(self.common, self)
|
||||||
|
|
||||||
|
def generate_static_url_path(self):
|
||||||
|
# The static URL path has a 128-bit random number in it to avoid having name
|
||||||
|
# collisions with files that might be getting shared
|
||||||
|
self.static_url_path = '/static_{}'.format(self.common.random_string(16))
|
||||||
|
self.common.log('Web', 'generate_static_url_path', 'new static_url_path is {}'.format(self.static_url_path))
|
||||||
|
|
||||||
|
# Update the flask route to handle the new static URL path
|
||||||
|
self.app.static_url_path = self.static_url_path
|
||||||
|
self.app.add_url_rule(
|
||||||
|
self.static_url_path + '/<path:filename>',
|
||||||
|
endpoint='static', view_func=self.app.send_static_file)
|
||||||
|
|
||||||
def define_common_routes(self):
|
def define_common_routes(self):
|
||||||
"""
|
"""
|
||||||
|
@ -42,6 +42,9 @@ class OnionThread(QtCore.QThread):
|
|||||||
def run(self):
|
def run(self):
|
||||||
self.mode.common.log('OnionThread', 'run')
|
self.mode.common.log('OnionThread', 'run')
|
||||||
|
|
||||||
|
# Make a new static URL path for each new share
|
||||||
|
self.mode.web.generate_static_url_path()
|
||||||
|
|
||||||
# Choose port and password early, because we need them to exist in advance for scheduled shares
|
# Choose port and password early, because we need them to exist in advance for scheduled shares
|
||||||
self.mode.app.stay_open = not self.mode.common.settings.get('close_after_first_download')
|
self.mode.app.stay_open = not self.mode.common.settings.get('close_after_first_download')
|
||||||
if not self.mode.app.port:
|
if not self.mode.app.port:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user