aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/submit/lib.py
diff options
context:
space:
mode:
authorElrond <elrond+mediagoblin.org@samba-tng.org>2012-12-17 20:05:37 +0100
committerElrond <elrond+mediagoblin.org@samba-tng.org>2012-12-26 23:42:26 +0100
commit8eb47d02d922fa90abd56729c6c6898f43cf7413 (patch)
treeb8dc96b651f3be4f40555015fa3ff18c15a2e5ac /mediagoblin/submit/lib.py
parent86bb44ef121e64e2a2c7ad175af444000a7ca0c9 (diff)
downloadmediagoblin-8eb47d02d922fa90abd56729c6c6898f43cf7413.tar.lz
mediagoblin-8eb47d02d922fa90abd56729c6c6898f43cf7413.tar.xz
mediagoblin-8eb47d02d922fa90abd56729c6c6898f43cf7413.zip
Processing: Factor out prepare_entry.
prepare_entry handles the task_id setup and generating a queue filename and file. it returns the queue file.
Diffstat (limited to 'mediagoblin/submit/lib.py')
-rw-r--r--mediagoblin/submit/lib.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/mediagoblin/submit/lib.py b/mediagoblin/submit/lib.py
index f174d4ea..6660eb53 100644
--- a/mediagoblin/submit/lib.py
+++ b/mediagoblin/submit/lib.py
@@ -17,7 +17,9 @@
import urllib
import urllib2
import logging
+import uuid
from celery import registry
+from werkzeug.utils import secure_filename
from mediagoblin import mg_globals
from mediagoblin.processing import mark_entry_failed
@@ -27,6 +29,32 @@ from mediagoblin.processing.task import ProcessMedia
_log = logging.getLogger(__name__)
+def prepare_entry(request, entry, filename):
+ # We generate this ourselves so we know what the taks id is for
+ # retrieval later.
+
+ # (If we got it off the task's auto-generation, there'd be
+ # a risk of a race condition when we'd save after sending
+ # off the task)
+ task_id = unicode(uuid.uuid4())
+ entry.queued_task_id = task_id
+
+ # Now store generate the queueing related filename
+ queue_filepath = request.app.queue_store.get_unique_filepath(
+ ['media_entries',
+ task_id,
+ secure_filename(filename)])
+
+ # queue appropriately
+ queue_file = request.app.queue_store.get_file(
+ queue_filepath, 'wb')
+
+ # Add queued filename to the entry
+ entry.queued_media_file = queue_filepath
+
+ return queue_file
+
+
def run_process_media(entry):
process_media = registry.tasks[ProcessMedia.name]
try: