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 Provides a base for various audio processing steps
""" """
acceptable_files = ['original', 'webm_audio'] acceptable_files = ['original', 'best_quality', 'webm_audio']
def common_setup(self): def common_setup(self):
""" """
@ -76,6 +76,17 @@ class CommonAudioProcessor(MediaProcessor):
self.entry, self.process_filename, self.entry, self.process_filename,
self.name_builder.fill('{basename}{ext}')) 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): def transcode(self, quality=None):
if not quality: if not quality:
quality = self.audio_config['quality'] quality = self.audio_config['quality']
@ -93,6 +104,8 @@ class CommonAudioProcessor(MediaProcessor):
self.transcoder.discover(webm_audio_tmp) self.transcoder.discover(webm_audio_tmp)
self._keep_best()
_log.debug('Saving medium...') _log.debug('Saving medium...')
store_public(self.entry, 'webm_audio', webm_audio_tmp, store_public(self.entry, 'webm_audio', webm_audio_tmp,
self.name_builder.fill('{basename}.medium.webm')) self.name_builder.fill('{basename}.medium.webm'))

View File

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

View File

@ -122,7 +122,7 @@ class CommonVideoProcessor(MediaProcessor):
""" """
Provides a base for various video processing steps Provides a base for various video processing steps
""" """
acceptable_files = ['original', 'webm_640'] acceptable_files = ['original', 'best_quality', 'webm_640']
def common_setup(self): def common_setup(self):
self.video_config = mgg \ self.video_config = mgg \
@ -144,6 +144,18 @@ class CommonVideoProcessor(MediaProcessor):
self.entry, self.process_filename, self.entry, self.process_filename,
self.name_builder.fill('{basename}{ext}')) 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, def transcode(self, medium_size=None, vp8_quality=None, vp8_threads=None,
vorbis_quality=None): vorbis_quality=None):
progress_callback = ProgressCallback(self.entry) progress_callback = ProgressCallback(self.entry)
@ -189,6 +201,8 @@ class CommonVideoProcessor(MediaProcessor):
dst_dimensions = self.transcoder.dst_data.videowidth,\ dst_dimensions = self.transcoder.dst_data.videowidth,\
self.transcoder.dst_data.videoheight self.transcoder.dst_data.videoheight
self._keep_best()
# Push transcoded video to public storage # Push transcoded video to public storage
_log.debug('Saving medium...') _log.debug('Saving medium...')
store_public(self.entry, 'webm_640', tmp_dst, store_public(self.entry, 'webm_640', tmp_dst,