From: Rodney Ewing Date: Wed, 14 Aug 2013 16:13:25 +0000 (-0700) Subject: added pdf Resizer X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=696b0ec64bd07c98b8049e56c8742dd455888cd9;p=mediagoblin.git added pdf Resizer --- diff --git a/mediagoblin/media_types/pdf/processing.py b/mediagoblin/media_types/pdf/processing.py index 7ee17e9d..5e82f672 100644 --- a/mediagoblin/media_types/pdf/processing.py +++ b/mediagoblin/media_types/pdf/processing.py @@ -20,7 +20,10 @@ from subprocess import PIPE, Popen from mediagoblin import mg_globals as mgg from mediagoblin.processing import (create_pub_filepath, - FilenameBuilder, BadMediaFail) + FilenameBuilder, BadMediaFail, + MediaProcessor, ProcessingManager, + request_from_args, get_orig_filename, + store_public, copy_original) from mediagoblin.tools.translate import fake_ugettext_passthrough as _ _log = logging.getLogger(__name__) @@ -365,7 +368,55 @@ class InitialProcessor(CommonPdfProcessor): self.delete_queue_file() +class Resizer(CommonImageProcessor): + """ + Resizing process steps for processed pdfs + """ + name = 'resize' + description = 'Resize thumbnail and medium' + + @classmethod + def media_is_eligible(cls, entry=None, state=None): + """ + Determine if this media type is eligible for processing + """ + if not state: + state = entry.state + return state in 'processed' + + @classmethod + def generate_parser(cls): + parser = argparse.ArgumentParser( + description=cls.description, + prog=cls.name) + + parser.add_argument( + '--size', + nargs=2, + metavar=('max_width', 'max_height'), + type=int) + + parser.add_argument( + 'file', + choices=['medium', 'thumb']) + + return parser + + @classmethod + def args_to_request(cls, args): + return request_from_args( + args, ['size', 'file']) + + def process(self, file, size=None): + self.common_setup() + if file == 'medium': + self.generate_medium(size=size) + elif file == 'thumb': + self.generate_thumb(size=size) + + class PdfProcessingManager(ProcessingManager): def __init__(self): super(self.__class__, self).__init__() self.add_processor(InitialProcessor) + self.add_processor(Resizer)