aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/gmg_commands/reprocess.py
diff options
context:
space:
mode:
authorRodney Ewing <ewing.rj@gmail.com>2013-08-12 15:25:52 -0700
committerRodney Ewing <ewing.rj@gmail.com>2013-08-16 15:30:18 -0700
commit0c4b68a8049acdef5f75e5fe7e95be2360d524eb (patch)
treebae3e6bdfc952b57a0e807af72e77d087d7b7bd1 /mediagoblin/gmg_commands/reprocess.py
parent441ed10de0cbc50ef2f40bae8dc25ea8493e8f8f (diff)
downloadmediagoblin-0c4b68a8049acdef5f75e5fe7e95be2360d524eb.tar.lz
mediagoblin-0c4b68a8049acdef5f75e5fe7e95be2360d524eb.tar.xz
mediagoblin-0c4b68a8049acdef5f75e5fe7e95be2360d524eb.zip
Resize all processed thumbs
Diffstat (limited to 'mediagoblin/gmg_commands/reprocess.py')
-rw-r--r--mediagoblin/gmg_commands/reprocess.py42
1 files changed, 40 insertions, 2 deletions
diff --git a/mediagoblin/gmg_commands/reprocess.py b/mediagoblin/gmg_commands/reprocess.py
index 579ba478..55aa6cc9 100644
--- a/mediagoblin/gmg_commands/reprocess.py
+++ b/mediagoblin/gmg_commands/reprocess.py
@@ -322,8 +322,46 @@ def bulk_run(args):
def thumbs(args):
- #TODO regenerate thumbs for all processed media
- pass
+ """
+ Regenerate thumbs for all processed media
+ """
+ query = MediaEntry.query.filter_by(state='processed')
+
+ for entry in query:
+ try:
+ media_entry, manager = get_entry_and_processing_manager(entry.id)
+
+ # TODO: (maybe?) This could probably be handled entirely by the
+ # processor class...
+ try:
+ processor_class = manager.get_processor(
+ 'resize', media_entry)
+ except ProcessorDoesNotExist:
+ print 'No such processor "%s" for media with id "%s"' % (
+ 'resize', media_entry.id)
+ return
+ except ProcessorNotEligible:
+ print 'Processor "%s" exists but media "%s" is not eligible' % (
+ 'resize', media_entry.id)
+ return
+
+ reprocess_parser = processor_class.generate_parser()
+
+ # prepare filetype and size to be passed into reprocess_parser
+ if args.size:
+ extra_args = 'thumb --size {0} {1}'.format(args.size[0], args.size[1])
+ else:
+ extra_args = 'thumb'
+
+ reprocess_args = reprocess_parser.parse_args(extra_args.split())
+ reprocess_request = processor_class.args_to_request(reprocess_args)
+ run_process_media(
+ media_entry,
+ reprocess_action='resize',
+ reprocess_info=reprocess_request)
+
+ except ProcessingManagerDoesNotExist:
+ print 'No such processing manager for {0}'.format(entry.media_type)
def initial(args):