本文整理汇总了Python中mediagoblin.processing.store_public函数的典型用法代码示例。如果您正苦于以下问题:Python store_public函数的具体用法?Python store_public怎么用?Python store_public使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了store_public函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: transcode
def transcode(self, quality=None):
if not quality:
quality = self.audio_config['quality']
if self._skip_processing('webm_audio', quality=quality):
return
progress_callback = ProgressCallback(self.entry)
webm_audio_tmp = os.path.join(self.workbench.dir,
self.name_builder.fill(
'{basename}{ext}'))
self.transcoder.transcode(
self.process_filename,
webm_audio_tmp,
quality=quality,
progress_callback=progress_callback)
self._keep_best()
_log.debug('Saving medium...')
store_public(self.entry, 'webm_audio', webm_audio_tmp,
self.name_builder.fill('{basename}.medium.webm'))
self.entry.set_file_metadata('webm_audio', **{'quality': quality})
示例2: generate_thumb
def generate_thumb(self, thumb_size=None):
# Temporary file for the video thumbnail (cleaned up with workbench)
tmp_thumb = os.path.join(self.workbench.dir,
self.name_builder.fill(
'{basename}.thumbnail.jpg'))
if not thumb_size:
thumb_size = (mgg.global_config['media:thumb']['max_width'],)
if self._skip_processing('thumb', thumb_size=thumb_size):
return
# We will only use the width so that the correct scale is kept
transcoders.capture_thumb(
self.process_filename,
tmp_thumb,
thumb_size[0])
# Checking if the thumbnail was correctly created. If it was not,
# then just give up.
if not os.path.exists (tmp_thumb):
return
# Push the thumbnail to public storage
_log.debug('Saving thumbnail...')
store_public(self.entry, 'thumb', tmp_thumb,
self.name_builder.fill('{basename}.thumbnail.jpg'))
self.entry.set_file_metadata('thumb', thumb_size=thumb_size)
示例3: create_spectrogram
def create_spectrogram(self, max_width=None, fft_size=None):
if not max_width:
max_width = mgg.global_config['media:medium']['max_width']
if not fft_size:
fft_size = self.audio_config['spectrogram_fft_size']
wav_tmp = os.path.join(self.workbench.dir, self.name_builder.fill(
'{basename}.ogg'))
_log.info('Creating OGG source for spectrogram')
self.transcoder.transcode(
self.process_filename,
wav_tmp,
mux_string='vorbisenc quality={0} ! oggmux'.format(
self.audio_config['quality']))
spectrogram_tmp = os.path.join(self.workbench.dir,
self.name_builder.fill(
'{basename}-spectrogram.jpg'))
self.thumbnailer.spectrogram(
wav_tmp,
spectrogram_tmp,
width=max_width,
fft_size=fft_size)
_log.debug('Saving spectrogram...')
store_public(self.entry, 'spectrogram', spectrogram_tmp,
self.name_builder.fill('{basename}.spectrogram.jpg'))
示例4: resize_image
def resize_image(entry, resized, keyname, target_name, new_size,
exif_tags, workdir, quality, filter):
"""
Store a resized version of an image and return its pathname.
Arguments:
proc_state -- the processing state for the image to resize
resized -- an image from Image.open() of the original image being resized
keyname -- Under what key to save in the db.
target_name -- public file path for the new resized image
exif_tags -- EXIF data for the original image
workdir -- directory path for storing converted image files
new_size -- 2-tuple size for the resized image
quality -- level of compression used when resizing images
filter -- One of BICUBIC, BILINEAR, NEAREST, ANTIALIAS
"""
resized = exif_fix_image_orientation(resized, exif_tags) # Fix orientation
try:
resize_filter = PIL_FILTERS[filter.upper()]
except KeyError:
raise Exception('Filter "{0}" not found, choose one of {1}'.format(
unicode(filter),
u', '.join(PIL_FILTERS.keys())))
resized.thumbnail(new_size, resize_filter)
# Copy the new file to the conversion subdir, then remotely.
tmp_resized_filename = os.path.join(workdir, target_name)
with file(tmp_resized_filename, 'w') as resized_file:
resized.save(resized_file, quality=quality)
store_public(entry, keyname, tmp_resized_filename, target_name)
示例5: generate_medium
def generate_medium(self, size=None):
if not size:
size = (mgg.global_config['media:medium']['max_width'],
mgg.global_config['media:medium']['max_height'])
if self._skip_processing('medium', size=size):
return
# Note: pdftocairo adds '.png', so don't include an ext
filename = os.path.join(self.workbench.dir,
self.name_builder.fill('{basename}.medium'))
executable = where('pdftocairo')
args = [executable, '-scale-to', str(min(size)),
'-singlefile', '-png', self.pdf_filename, filename]
_log.debug('calling {0}'.format(repr(' '.join(args))))
Popen(executable=executable, args=args).wait()
# since pdftocairo added '.png', we need to include it with the
# filename
store_public(self.entry, 'medium', filename + '.png',
self.name_builder.fill('{basename}.medium.png'))
self.entry.set_file_metadata('medium', size=size)
示例6: create_spectrogram
def create_spectrogram(self, max_width=None, fft_size=None):
if not max_width:
max_width = mgg.global_config['media:medium']['max_width']
if not fft_size:
fft_size = self.audio_config['spectrogram_fft_size']
if self._skip_processing('spectrogram', max_width=max_width,
fft_size=fft_size):
return
wav_tmp = os.path.join(self.workbench.dir, self.name_builder.fill(
'{basename}.ogg'))
_log.info('Creating OGG source for spectrogram')
self.transcoder.transcode(self.process_filename, wav_tmp,
mux_name='oggmux')
spectrogram_tmp = os.path.join(self.workbench.dir,
self.name_builder.fill(
'{basename}-spectrogram.jpg'))
self.thumbnailer.spectrogram(
wav_tmp,
spectrogram_tmp,
width=max_width,
fft_size=fft_size)
_log.debug('Saving spectrogram...')
store_public(self.entry, 'spectrogram', spectrogram_tmp,
self.name_builder.fill('{basename}.spectrogram.jpg'))
file_metadata = {'max_width': max_width,
'fft_size': fft_size}
self.entry.set_file_metadata('spectrogram', **file_metadata)
示例7: generate_thumb
def generate_thumb(self, size=None):
if not size:
max_width = mgg.global_config["media:thumb"]["max_width"]
max_height = mgg.global_config["media:thumb"]["max_height"]
size = (max_width, max_height)
if self._skip_processing("thumb", size=size):
return
thumb_tmp = os.path.join(self.workbench.dir, self.name_builder.fill("{basename}-thumbnail.jpg"))
# We need the spectrogram to create a thumbnail
spectrogram = self.entry.media_files.get("spectrogram")
if not spectrogram:
_log.info("No spectrogram found, we will create one.")
self.create_spectrogram()
spectrogram = self.entry.media_files["spectrogram"]
spectrogram_filepath = mgg.public_store.get_local_path(spectrogram)
self.thumbnailer.thumbnail_spectrogram(spectrogram_filepath, thumb_tmp, tuple(size))
store_public(self.entry, "thumb", thumb_tmp, self.name_builder.fill("{basename}.thumbnail.jpg"))
self.entry.set_file_metadata("thumb", **{"size": size})
示例8: generate_thumb
def generate_thumb(self, size=None):
if not size:
max_width = mgg.global_config['media:thumb']['max_width']
max_height = mgg.global_config['media:thumb']['max_height']
size = (max_width, max_height)
if self._skip_processing('thumb', size=size):
return
thumb_tmp = os.path.join(self.workbench.dir, self.name_builder.fill(
'{basename}-thumbnail.jpg'))
# We need the spectrogram to create a thumbnail
spectrogram = self.entry.media_files.get('spectrogram')
if not spectrogram:
_log.info('No spectrogram found, we will create one.')
self.create_spectrogram()
spectrogram = self.entry.media_files['spectrogram']
spectrogram_filepath = mgg.public_store.get_local_path(spectrogram)
self.thumbnailer.thumbnail_spectrogram(
spectrogram_filepath,
thumb_tmp,
tuple(size))
store_public(self.entry, 'thumb', thumb_tmp,
self.name_builder.fill('{basename}.thumbnail.jpg'))
self.entry.set_file_metadata('thumb', **{'size': size})
示例9: transcode
def transcode(self, medium_size=None, vp8_quality=None, vp8_threads=None,
vorbis_quality=None):
progress_callback = ProgressCallback(self.entry)
tmp_dst = os.path.join(self.workbench.dir,
self.name_builder.fill('{basename}.medium.webm'))
if not medium_size:
medium_size = (
mgg.global_config['media:medium']['max_width'],
mgg.global_config['media:medium']['max_height'])
if not vp8_quality:
vp8_quality = self.video_config['vp8_quality']
if not vp8_threads:
vp8_threads = self.video_config['vp8_threads']
if not vorbis_quality:
vorbis_quality = self.video_config['vorbis_quality']
# Extract metadata and keep a record of it
metadata = self.transcoder.discover(self.process_filename)
store_metadata(self.entry, metadata)
# Figure out whether or not we need to transcode this video or
# if we can skip it
if skip_transcode(metadata, medium_size):
_log.debug('Skipping transcoding')
dst_dimensions = metadata['videowidth'], metadata['videoheight']
# If there is an original and transcoded, delete the transcoded
# since it must be of lower quality then the original
if self.entry.media_files.get('original') and \
self.entry.media_files.get('webm_video'):
self.entry.media_files['webm_video'].delete()
else:
self.transcoder.transcode(self.process_filename, tmp_dst,
vp8_quality=vp8_quality,
vp8_threads=vp8_threads,
vorbis_quality=vorbis_quality,
progress_callback=progress_callback,
dimensions=tuple(medium_size))
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_video', tmp_dst,
self.name_builder.fill('{basename}.medium.webm'))
_log.debug('Saved medium')
self.did_transcode = True
# Save the width and height of the transcoded video
self.entry.media_data_init(
width=dst_dimensions[0],
height=dst_dimensions[1])
示例10: _generate_pdf
def _generate_pdf(self):
"""
Store the pdf. If the file is not a pdf, make it a pdf
"""
tmp_pdf = self.process_filename
unoconv = where("unoconv")
Popen(executable=unoconv, args=[unoconv, "-v", "-f", "pdf", self.process_filename]).wait()
if not os.path.exists(tmp_pdf):
_log.debug("unoconv failed to convert file to pdf")
raise BadMediaFail()
store_public(self.entry, "pdf", tmp_pdf, self.name_builder.fill("{basename}.pdf"))
return self.workbench.localized_file(mgg.public_store, self.entry.media_files["pdf"])
示例11: generate_thumb
def generate_thumb(self, size=None):
if not size:
size = (mgg.global_config['media:thumb']['max_width'],
mgg.global_config['media:thumb']['max_height'])
if self.svg_config['svg_thumbnails']:
# delete existing thumbnail, if it doesn't match the original
if self.entry.media_files.has_key('thumb') and \
self.entry.media_files['thumb'] != self.entry.media_files['original']:
mgg.public_store.delete_file(self.entry.media_files['thumb'])
self.entry.media_files['thumb'] = self.entry.media_files.get('original')
else:
thumb_filename = os.path.join(self.workbench.dir,
self.name_builder.fill('{basename}.thumbnail.png'))
render_preview(self.process_filename, thumb_filename, size)
store_public(self.entry, 'thumb', thumb_filename)
示例12: generate_thumb
def generate_thumb(self, font=None, thumb_size=None):
with open(self.process_filename, 'rb') as orig_file:
# If no font kwarg, check config
if not font:
font = self.ascii_config.get('thumbnail_font', None)
if not thumb_size:
thumb_size = (mgg.global_config['media:thumb']['max_width'],
mgg.global_config['media:thumb']['max_height'])
if self._skip_resizing(font, thumb_size):
return
tmp_thumb = os.path.join(
self.conversions_subdir,
self.name_builder.fill('{basename}.thumbnail.png'))
ascii_converter_args = {}
# If there is a font from either the config or kwarg, update
# ascii_converter_args
if font:
ascii_converter_args.update(
{'font': self.ascii_config['thumbnail_font']})
converter = asciitoimage.AsciiToImage(
**ascii_converter_args)
thumb = converter._create_image(
orig_file.read())
with open(tmp_thumb, 'w') as thumb_file:
thumb.thumbnail(
thumb_size,
Image.ANTIALIAS)
thumb.save(thumb_file)
thumb_info = {'font': font,
'width': thumb_size[0],
'height': thumb_size[1]}
_log.debug('Copying local file to public storage')
store_public(self.entry, 'thumb', tmp_thumb,
self.name_builder.fill('{basename}.thumbnail.jpg'))
self.entry.set_file_metadata('thumb', **thumb_info)
示例13: create_spectrogram
def create_spectrogram(self, max_width=None, fft_size=None):
if not max_width:
max_width = mgg.global_config["media:medium"]["max_width"]
if not fft_size:
fft_size = self.audio_config["spectrogram_fft_size"]
if self._skip_processing("spectrogram", max_width=max_width, fft_size=fft_size):
return
wav_tmp = os.path.join(self.workbench.dir, self.name_builder.fill("{basename}.ogg"))
_log.info("Creating OGG source for spectrogram")
self.transcoder.transcode(self.process_filename, wav_tmp, mux_name="oggmux")
spectrogram_tmp = os.path.join(self.workbench.dir, self.name_builder.fill("{basename}-spectrogram.jpg"))
self.thumbnailer.spectrogram(wav_tmp, spectrogram_tmp, width=max_width, fft_size=fft_size)
_log.debug("Saving spectrogram...")
store_public(self.entry, "spectrogram", spectrogram_tmp, self.name_builder.fill("{basename}.spectrogram.jpg"))
file_metadata = {"max_width": max_width, "fft_size": fft_size}
self.entry.set_file_metadata("spectrogram", **file_metadata)
示例14: generate_thumb
def generate_thumb(self, thumb_size=None):
# Temporary file for the video thumbnail (cleaned up with workbench)
tmp_thumb = os.path.join(self.workbench.dir,
self.name_builder.fill(
'{basename}.thumbnail.jpg'))
if not thumb_size:
thumb_size = (mgg.global_config['media:thumb']['max_width'],)
# We will only use the width so that the correct scale is kept
transcoders.VideoThumbnailerMarkII(
self.process_filename,
tmp_thumb,
thumb_size[0])
# Push the thumbnail to public storage
_log.debug('Saving thumbnail...')
store_public(self.entry, 'thumb', tmp_thumb,
self.name_builder.fill('{basename}.thumbnail.jpg'))
示例15: generate_medium
def generate_medium(self, size=None):
if not size:
size = (mgg.global_config["media:medium"]["max_width"], mgg.global_config["media:medium"]["max_height"])
if self._skip_processing("medium", size=size):
return
# Note: pdftocairo adds '.png', so don't include an ext
filename = os.path.join(self.workbench.dir, self.name_builder.fill("{basename}.medium"))
executable = where("pdftocairo")
args = [executable, "-scale-to", str(min(size)), "-singlefile", "-png", self.pdf_filename, filename]
_log.debug("calling {0}".format(repr(" ".join(args))))
Popen(executable=executable, args=args).wait()
# since pdftocairo added '.png', we need to include it with the
# filename
store_public(self.entry, "medium", filename + ".png", self.name_builder.fill("{basename}.medium.png"))
self.entry.set_file_metadata("medium", size=size)