Fix bugs and lost images

This commit is contained in:
Tim Bentley 2016-11-15 20:37:21 +00:00
parent be556248b8
commit b1576d0819
4 changed files with 19 additions and 14 deletions

View File

@ -114,8 +114,8 @@ def controller_set(request):
return {'results': {'success': True}} return {'results': {'success': True}}
@api_controller_endpoint.route('/controller/{controller}/{action:next|previous}') @api_controller_endpoint.route('controller/{controller}/{action:next|previous}')
@controller_endpoint.route('/{controller}/{action:next|previous}') @controller_endpoint.route('{action:next|previous}')
@requires_auth @requires_auth
def controller_direction(request, controller, action): def controller_direction(request, controller, action):
""" """

View File

@ -95,7 +95,7 @@ def service(request, plugin_name, log):
return {'results': {'success': True}} return {'results': {'success': True}}
def display_thumbnails(request, controller_name, log, dimensions, file_name, slide): def display_thumbnails(request, controller_name, log, dimensions, file_name, slide=None):
""" """
Handles requests for adding a song to the service Handles requests for adding a song to the service
@ -125,8 +125,13 @@ def display_thumbnails(request, controller_name, log, dimensions, file_name, sli
if controller_name and file_name: if controller_name and file_name:
file_name = urllib.parse.unquote(file_name) file_name = urllib.parse.unquote(file_name)
if '..' not in file_name: # no hacking please if '..' not in file_name: # no hacking please
full_path = os.path.normpath(os.path.join(AppLocation.get_section_data_path(controller_name), if slide:
'thumbnails', file_name, slide)) full_path = os.path.normpath(os.path.join(AppLocation.get_section_data_path(controller_name),
'thumbnails', file_name, slide))
else:
full_path = os.path.normpath(os.path.join(AppLocation.get_section_data_path(controller_name),
'thumbnails', file_name))
if os.path.exists(full_path): if os.path.exists(full_path):
path, just_file_name = os.path.split(full_path) path, just_file_name = os.path.split(full_path)
Registry().get('image_manager').add_image(full_path, just_file_name, None, width, height) Registry().get('image_manager').add_image(full_path, just_file_name, None, width, height)

View File

@ -143,10 +143,6 @@ class WSGIApplication(object):
""" """
Find the appropriate URL and run the view function Find the appropriate URL and run the view function
""" """
# First look to see if this is a static file request
for route, static_app in self.static_routes.items():
if re.match(route, request.path):
return request.get_response(static_app)
# If not a static route, try the views # If not a static route, try the views
for route, views in self.route_map.items(): for route, views in self.route_map.items():
match = re.match(route, request.path) match = re.match(route, request.path)
@ -155,6 +151,10 @@ class WSGIApplication(object):
log.debug('Found {method} {url}'.format(method=request.method, url=request.path)) log.debug('Found {method} {url}'.format(method=request.method, url=request.path))
view_func = views[request.method.upper()] view_func = views[request.method.upper()]
return _make_response(view_func(request, **kwargs)) return _make_response(view_func(request, **kwargs))
# Look to see if this is a static file request
for route, static_app in self.static_routes.items():
if re.match(route, request.path):
return request.get_response(static_app)
log.error('URL {url} - Not found'.format(url=request.path)) log.error('URL {url} - Not found'.format(url=request.path))
raise NotFound() raise NotFound()

View File

@ -67,14 +67,14 @@ def images_service(request):
return service(request, 'images', log) return service(request, 'images', log)
@images_endpoint.route('thumbnails/{dimensions}/{file_name}/{slide}') # images/thumbnails/320x240/1.jpg
def images_thumbnails(request, dimensions, file_name, slide): @images_endpoint.route('thumbnails/{dimensions}/{file_name}')
def images_thumbnails(request, dimensions, file_name):
""" """
Return an image to a web page based on a URL Return an image to a web page based on a URL
:param request: Request object :param request: Request object
:param dimensions: the image size eg 88x88 :param dimensions: the image size eg 88x88
:param file_name: the file name of the image :param file_name: the individual image name
:param slide: the individual image name
:return: :return:
""" """
return display_thumbnails(request, 'images', log, dimensions, file_name, slide) return display_thumbnails(request, 'images', log, dimensions, file_name)