From 3aeca53c85981fa46d61b41a7cf648d90637eb62 Mon Sep 17 00:00:00 2001 From: dunkyp Date: Tue, 6 Nov 2012 17:47:48 +0000 Subject: fixes the inability to upload non ascii filenames, werkzeug strips all non ascii chars and returns an empty string. This checks if the filename contains non asciis and if it does generates a uuid for filename. Also the request version of filename is used for generating alternative title for upload cherry-picked from dunkyp. fixed conflicts and missing import. --- mediagoblin/submit/views.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'mediagoblin/submit') diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 64e6791b..0fe280f1 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -19,6 +19,7 @@ import mediagoblin.mg_globals as mg_globals from os.path import splitext import logging +import uuid _log = logging.getLogger(__name__) @@ -53,6 +54,10 @@ def submit_start(request): try: filename = request.files['file'].filename + # If the filename contains non ascii generate a unique name + if not all(ord(c) < 128 for c in filename): + filename = unicode(uuid.uuid4()) + splitext(filename)[-1] + # Sniff the submitted media to determine which # media plugin should handle processing media_type, media_manager = sniff_media( @@ -63,7 +68,7 @@ def submit_start(request): entry.media_type = unicode(media_type) entry.title = ( unicode(submit_form.title.data) - or unicode(splitext(filename)[0])) + or unicode(splitext(request.files['file'].filename)[0])) entry.description = unicode(submit_form.description.data) -- cgit v1.2.3 From 44082b12d8a418bacd1ca5b19f7ce2595e07c1ee Mon Sep 17 00:00:00 2001 From: Rodney Ewing Date: Thu, 11 Jul 2013 14:17:50 -0700 Subject: Patch by Strum. Ticket #451 - Convert all mongokit style .find, .find_one, .one calls over to SQLAlchemy queries --- mediagoblin/submit/views.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'mediagoblin/submit') diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index 0fe280f1..3f9d5b2d 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -138,9 +138,9 @@ def add_collection(request, media=None): collection.generate_slug() # Make sure this user isn't duplicating an existing collection - existing_collection = request.db.Collection.find_one({ - 'creator': request.user.id, - 'title':collection.title}) + existing_collection = request.db.Collection.query.filter_by( + creator=request.user.id, + title=collection.title).first() if existing_collection: add_message(request, messages.ERROR, -- cgit v1.2.3