diff options
author | Rodney Ewing <ewing.rj@gmail.com> | 2013-08-12 15:25:52 -0700 |
---|---|---|
committer | Rodney Ewing <ewing.rj@gmail.com> | 2013-08-16 15:30:18 -0700 |
commit | 0c4b68a8049acdef5f75e5fe7e95be2360d524eb (patch) | |
tree | bae3e6bdfc952b57a0e807af72e77d087d7b7bd1 /mediagoblin/gmg_commands/reprocess.py | |
parent | 441ed10de0cbc50ef2f40bae8dc25ea8493e8f8f (diff) | |
download | mediagoblin-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.py | 42 |
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): |