From d11571198a168b18f3c298d7295d09e0280ff4c7 Mon Sep 17 00:00:00 2001 From: Eibriel Date: Sat, 9 May 2015 12:26:49 -0300 Subject: [PATCH] Adding properties to files to describe previews --- attract/application/file_server.py | 29 ++++++++++++++++++----------- attract/settings.py | 13 ++++++++++++- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/attract/application/file_server.py b/attract/application/file_server.py index 989f8a5e..470dd80c 100644 --- a/attract/application/file_server.py +++ b/attract/application/file_server.py @@ -66,16 +66,19 @@ def build_previews(file_name=None): resized_file_name) # Create thumbnail - if not os.path.isfile(resized_file_path): - try: - im = Image.open(file_path) - except IOError: - return "", 500 - im.thumbnail(size_dict[size]) - try: - im.save(resized_file_path) - except IOError: - return "", 500 + #if not os.path.isfile(resized_file_path): + try: + im = Image.open(file_path) + except IOError: + return "", 500 + im.thumbnail(size_dict[size]) + width = im.size[0] + height = im.size[1] + format = im.format.lower() + try: + im.save(resized_file_path) + except IOError: + return "", 500 # file_static_path = os.path.join("", folder_name, size, file_name) picture_file_file = open(resized_file_path, 'rb') @@ -90,8 +93,12 @@ def build_previews(file_name=None): prop['name'] = resized_file_name prop['description'] = description prop['user'] = user + # Preview properties: prop['is_preview'] = True - prop['preview_name'] = "{0}_png".format(size) + prop['size'] = size + prop['format'] = format + prop['width'] = width + prop['height'] = height # TODO set proper contentType and length prop['contentType'] = 'image/png' prop['length'] = 0 diff --git a/attract/settings.py b/attract/settings.py index ca4efe06..38215ec8 100644 --- a/attract/settings.py +++ b/attract/settings.py @@ -144,12 +144,23 @@ files_schema = { 'type': 'string', 'required': True, }, + # Preview parameters: 'is_preview': { 'type': 'boolean' }, - 'preview_name': { + 'size': { 'type': 'string' }, + 'format': { + 'type': 'string' + }, + 'width': { + 'type': 'integer' + }, + 'height': { + 'type': 'integer' + }, + # 'user': { 'type': 'objectid', 'required': True,