Should be enough to get to the point where you can actually initialize a processing command now.

However, it doesn't celery task-ify it...

This commit sponsored by Catalin Cosovanu.  Thank you!
This commit is contained in:
Christopher Allan Webber 2013-08-09 17:30:52 -05:00 committed by Rodney Ewing
parent 4ba5bdd96e
commit d1e9913b71
3 changed files with 23 additions and 8 deletions

View 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):

View 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'])

View 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