upload refactor: Use prepare_entry in api.

This commit is contained in:
Elrond 2012-12-18 12:32:42 +01:00
parent 37f90b435d
commit 01986008f6

View File

@ -16,12 +16,10 @@
import json import json
import logging import logging
import uuid
from os.path import splitext from os.path import splitext
from werkzeug.datastructures import FileStorage from werkzeug.datastructures import FileStorage
from werkzeug.exceptions import BadRequest, Forbidden from werkzeug.exceptions import BadRequest, Forbidden
from werkzeug.utils import secure_filename
from werkzeug.wrappers import Response from werkzeug.wrappers import Response
from mediagoblin.decorators import require_active_login from mediagoblin.decorators import require_active_login
@ -29,7 +27,7 @@ from mediagoblin.meddleware.csrf import csrf_exempt
from mediagoblin.media_types import sniff_media from mediagoblin.media_types import sniff_media
from mediagoblin.plugins.api.tools import api_auth, get_entry_serializable, \ from mediagoblin.plugins.api.tools import api_auth, get_entry_serializable, \
json_response json_response
from mediagoblin.submit.lib import run_process_media from mediagoblin.submit.lib import prepare_entry, run_process_media
_log = logging.getLogger(__name__) _log = logging.getLogger(__name__)
@ -69,26 +67,12 @@ def post_entry(request):
entry.generate_slug() entry.generate_slug()
task_id = unicode(uuid.uuid4())
# Now store generate the queueing related filename
queue_filepath = request.app.queue_store.get_unique_filepath(
['media_entries',
task_id,
secure_filename(media_file.filename)])
# queue appropriately # queue appropriately
queue_file = request.app.queue_store.get_file( queue_file = prepare_entry(request, entry, media_file.filename)
queue_filepath, 'wb')
with queue_file: with queue_file:
queue_file.write(request.files['file'].stream.read()) queue_file.write(request.files['file'].stream.read())
# Add queued filename to the entry
entry.queued_media_file = queue_filepath
entry.queued_task_id = task_id
# Save now so we have this data before kicking off processing # Save now so we have this data before kicking off processing
entry.save() entry.save()