Should be enough to get to the point where you can actually initialize a processing...
authorChristopher Allan Webber <cwebber@dustycloud.org>
Fri, 9 Aug 2013 22:30:52 +0000 (17:30 -0500)
committerRodney Ewing <ewing.rj@gmail.com>
Fri, 16 Aug 2013 22:30:16 +0000 (15:30 -0700)
However, it doesn't celery task-ify it...

This commit sponsored by Catalin Cosovanu.  Thank you!

mediagoblin/gmg_commands/reprocess.py
mediagoblin/media_types/image/processing.py
mediagoblin/processing/__init__.py

index 0d8db858d79a8bf609205f2e9a47edba8bc8c6b6..6d04427e0919e2b68ade67cef86dcb1acba0b007 100644 (file)
@@ -262,7 +262,8 @@ def run(args):
     manager_class = hook_handle(('reprocess_manager', media_type))
     manager = manager_class()
 
-    # TOOD: Specify in error
+    # TODO: (maybe?) This could probably be handled entirely by the
+    # processor class...
     try:
         processor_class = manager.get_processor(
             args.reprocess_command, media_entry)
@@ -277,9 +278,9 @@ def run(args):
 
     reprocess_parser = processor_class.generate_parser()
     reprocess_args = reprocess_parser.parse_args(args.reprocess_args)
-
-    import pdb
-    pdb.set_trace()
+    reprocess_request = processor_class.args_to_request(reprocess_args)
+    processor = processor_class(manager, media_entry)
+    processor.process(**reprocess_request)
 
 
 def reprocess(args):
index 575e9f5fb88e4c017e3e4b153a3a49ef0245668a..83b4adffabd3c113fbc5ba0024e9e0c97cfdbf97 100644 (file)
@@ -26,7 +26,8 @@ from mediagoblin import mg_globals as mgg
 from mediagoblin.db.models import MediaEntry
 from mediagoblin.processing import (
     BadMediaFail, FilenameBuilder,
-    MediaProcessor, ProcessingManager)
+    MediaProcessor, ProcessingManager,
+    request_from_args)
 from mediagoblin.submit.lib import run_process_media
 from mediagoblin.tools.exif import exif_fix_image_orientation, \
     extract_exif, clean_exif, get_gps_data, get_useful, \
@@ -356,7 +357,8 @@ class InitialProcessor(CommonImageProcessor):
 
     @classmethod
     def args_to_request(cls, args):
-        raise NotImplementedError
+        return request_from_args(
+            args, ['width', 'height'])
 
 
 
index 6ef203cbb0a1fc2f7cef97a4c0ff39e22c6e7646..1c8f72029b06eb287dac76092c6c965b907ce9db 100644 (file)
@@ -112,8 +112,9 @@ class MediaProcessor(object):
     # action this MediaProcessor provides
     description = None
 
-    def __init__(self, manager):
+    def __init__(self, manager, media_entry):
         self.manager = manager
+        self.media_entry = media_entry
 
         # Should be initialized at time of processing, at least
         self.workbench = None
@@ -138,7 +139,7 @@ class MediaProcessor(object):
         raise NotImplementedError
 
     @classmethod
-    def parser_to_request(cls, parser):
+    def args_to_request(cls, args):
         raise NotImplementedError
 
     ##########################################
@@ -214,6 +215,17 @@ class ProcessingManager(object):
         pass
 
 
+def request_from_args(args, which_args):
+    """
+    Generate a request from the values of some argparse parsed args
+    """
+    request = {}
+    for arg in which_args:
+        request[arg] = getattr(args, arg)
+
+    return request
+
+
 class ProcessingState(object):
     """
     The first and only argument to the "processor" of a media type