aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/process_media/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/process_media/__init__.py')
-rw-r--r--mediagoblin/process_media/__init__.py33
1 files changed, 20 insertions, 13 deletions
diff --git a/mediagoblin/process_media/__init__.py b/mediagoblin/process_media/__init__.py
index da3e887e..125b24e0 100644
--- a/mediagoblin/process_media/__init__.py
+++ b/mediagoblin/process_media/__init__.py
@@ -57,36 +57,43 @@ def process_media_initial(media_id):
thumb.save(thumb_file, "JPEG", quality=90)
"""
- Create medium file, used in `media.html`
+ If the size of the original file exceeds the specified size of a `medium`
+ file, a `medium.jpg` files is created and later associated with the media
+ entry.
"""
medium = Image.open(queued_filename)
- medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS)
+ medium_processed = False
- if medium.mode != "RGB":
- medium = medium.convert("RGB")
+ if medium.size[0] > MEDIUM_SIZE[0] or medium.size[1] > MEDIUM_SIZE[1]:
+ medium.thumbnail(MEDIUM_SIZE, Image.ANTIALIAS)
- medium_filepath = create_pub_filepath(entry, 'medium.jpg')
+ if medium.mode != "RGB":
+ medium = medium.convert("RGB")
- medium_file = mgg.public_store.get_file(medium_filepath, 'w')
- with medium_file:
- medium.save(medium_file, "JPEG", quality=90)
+ medium_filepath = create_pub_filepath(entry, 'medium.jpg')
+
+ medium_file = mgg.public_store.get_file(medium_filepath, 'w')
+ with medium_file:
+ medium.save(medium_file, "JPEG", quality=90)
+ medium_processed = True
# we have to re-read because unlike PIL, not everything reads
# things in string representation :)
queued_file = file(queued_filename, 'rb')
with queued_file:
- main_filepath = create_pub_filepath(entry, queued_filepath[-1])
+ original_filepath = create_pub_filepath(entry, queued_filepath[-1])
- with mgg.public_store.get_file(main_filepath, 'wb') as main_file:
- main_file.write(queued_file.read())
+ with mgg.public_store.get_file(original_filepath, 'wb') as original_file:
+ original_file.write(queued_file.read())
mgg.queue_store.delete_file(queued_filepath)
entry['queued_media_file'] = []
media_files_dict = entry.setdefault('media_files', {})
media_files_dict['thumb'] = thumb_filepath
- media_files_dict['main'] = main_filepath
- media_files_dict['medium'] = medium_filepath
+ media_files_dict['original'] = original_filepath
+ if medium_processed:
+ media_files_dict['medium'] = medium_filepath
entry['state'] = u'processed'
entry.save()