Keep the best quality file if there's no original

This commit is contained in:
Rodney Ewing 2013-08-15 12:40:19 -07:00
parent 7674b9c05b
commit 0a8c0c704d
3 changed files with 30 additions and 3 deletions

View File

@ -52,7 +52,7 @@ class CommonAudioProcessor(MediaProcessor):
"""
Provides a base for various audio processing steps
"""
acceptable_files = ['original', 'webm_audio']
acceptable_files = ['original', 'best_quality', 'webm_audio']
def common_setup(self):
"""
@ -76,6 +76,17 @@ class CommonAudioProcessor(MediaProcessor):
self.entry, self.process_filename,
self.name_builder.fill('{basename}{ext}'))
def _keep_best(self):
"""
If there is no original, keep the best file that we have
"""
if not self.entry.media_files.get('best_quality'):
# Save the best quality file if no original?
if not self.entry.media_files.get('original') and \
self.entry.media_files.get('webm_audio'):
self.entry.media_files['best_quality'] = self.entry \
.media_files['webm_audio']
def transcode(self, quality=None):
if not quality:
quality = self.audio_config['quality']
@ -93,6 +104,8 @@ class CommonAudioProcessor(MediaProcessor):
self.transcoder.discover(webm_audio_tmp)
self._keep_best()
_log.debug('Saving medium...')
store_public(self.entry, 'webm_audio', webm_audio_tmp,
self.name_builder.fill('{basename}.medium.webm'))

View File

@ -253,7 +253,7 @@ class CommonPdfProcessor(MediaProcessor):
self._set_pdf_filename()
def _set_pdf_filename(self):
if self.name_builder.ext == 'pdf':
if self.name_builder.ext == '.pdf':
self.pdf_filename = self.process_filename
elif self.entry.media_files.get('pdf'):
self.pdf_filename = self.workbench.localized_file(

View File

@ -122,7 +122,7 @@ class CommonVideoProcessor(MediaProcessor):
"""
Provides a base for various video processing steps
"""
acceptable_files = ['original', 'webm_640']
acceptable_files = ['original', 'best_quality', 'webm_640']
def common_setup(self):
self.video_config = mgg \
@ -144,6 +144,18 @@ class CommonVideoProcessor(MediaProcessor):
self.entry, self.process_filename,
self.name_builder.fill('{basename}{ext}'))
def _keep_best(self):
"""
If there is no original, keep the best file that we have
"""
if not self.entry.media_files.get('best_quality'):
# Save the best quality file if no original?
if not self.entry.media_files.get('original') and \
self.entry.media_files.get('webm_640'):
self.entry.media_files['best_quality'] = self.entry \
.media_files['webm_640']
def transcode(self, medium_size=None, vp8_quality=None, vp8_threads=None,
vorbis_quality=None):
progress_callback = ProgressCallback(self.entry)
@ -189,6 +201,8 @@ class CommonVideoProcessor(MediaProcessor):
dst_dimensions = self.transcoder.dst_data.videowidth,\
self.transcoder.dst_data.videoheight
self._keep_best()
# Push transcoded video to public storage
_log.debug('Saving medium...')
store_public(self.entry, 'webm_640', tmp_dst,