diff options
author | Sebastian Spaeth <Sebastian@SSpaeth.de> | 2013-01-15 15:03:00 +0100 |
---|---|---|
committer | Sebastian Spaeth <Sebastian@SSpaeth.de> | 2013-01-15 15:03:00 +0100 |
commit | c7b3d070b65a84e3bfa9d8e3e6f52aac6552910f (patch) | |
tree | 0895ba63b15612c0da97e5eebe3fa83d73174219 | |
parent | 2cfffd5ed8c054bb60c27ede4e69667f97d12b09 (diff) | |
download | mediagoblin-c7b3d070b65a84e3bfa9d8e3e6f52aac6552910f.tar.lz mediagoblin-c7b3d070b65a84e3bfa9d8e3e6f52aac6552910f.tar.xz mediagoblin-c7b3d070b65a84e3bfa9d8e3e6f52aac6552910f.zip |
Don't pass request into run_process_media
People(tm) want to start run_process_media from the CLI and might not
have a request object handy. So pass in the feed_url into
run_process_media rather than the request object and allow the feed url
to be empty (resulting in no PuSH notification at all then).
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
-rw-r--r-- | mediagoblin/plugins/api/views.py | 5 | ||||
-rw-r--r-- | mediagoblin/processing/task.py | 3 | ||||
-rw-r--r-- | mediagoblin/submit/lib.py | 12 | ||||
-rw-r--r-- | mediagoblin/submit/views.py | 5 |
4 files changed, 18 insertions, 7 deletions
diff --git a/mediagoblin/plugins/api/views.py b/mediagoblin/plugins/api/views.py index 7383e20d..2055a663 100644 --- a/mediagoblin/plugins/api/views.py +++ b/mediagoblin/plugins/api/views.py @@ -86,7 +86,10 @@ def post_entry(request): # # (... don't change entry after this point to avoid race # conditions with changes to the document via processing code) - run_process_media(entry, request) + feed_url = request.urlgen( + 'mediagoblin.user_pages.atom_feed', + qualified=True, user=request.user.username) + run_process_media(entry, feed_url) return json_response(get_entry_serializable(entry, request.urlgen)) diff --git a/mediagoblin/processing/task.py b/mediagoblin/processing/task.py index 2cdd5f1a..e9bbe084 100644 --- a/mediagoblin/processing/task.py +++ b/mediagoblin/processing/task.py @@ -94,7 +94,8 @@ class ProcessMedia(task.Task): entry.save() # Notify the PuSH servers as async task - handle_push_urls.subtask().delay(feed_url) + if mgg.app_config["push_urls"] and feed_url: + handle_push_urls.subtask().delay(feed_url) json_processing_callback(entry) except BaseProcessingFail as exc: diff --git a/mediagoblin/submit/lib.py b/mediagoblin/submit/lib.py index ba07c6fa..679fc543 100644 --- a/mediagoblin/submit/lib.py +++ b/mediagoblin/submit/lib.py @@ -54,10 +54,14 @@ def prepare_queue_task(app, entry, filename): return queue_file -def run_process_media(entry, request): - feed_url = request.urlgen( - 'mediagoblin.user_pages.atom_feed', - qualified=True, user=request.user.username) +def run_process_media(entry, feed_url=None): + """Process the media asynchronously + + :param entry: MediaEntry() instance to be processed. + :param feed_url: A string indicating the feed_url that the PuSH servers + should be notified of. This will be sth like: `request.urlgen( + 'mediagoblin.user_pages.atom_feed',qualified=True, + user=request.user.username)`""" try: process_media.apply_async( [entry.id, feed_url], {}, diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 145b9f5e..49ab4230 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -89,7 +89,10 @@ def submit_start(request): # # (... don't change entry after this point to avoid race # conditions with changes to the document via processing code) - run_process_media(entry, request) + feed_url = request.urlgen( + 'mediagoblin.user_pages.atom_feed', + qualified=True, user=request.user.username) + run_process_media(entry, feed_url) add_message(request, SUCCESS, _('Woohoo! Submitted!')) return redirect(request, "mediagoblin.user_pages.user_home", |