Hacks to get past unicode barriers
authorChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 14 Nov 2013 15:51:29 +0000 (09:51 -0600)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Thu, 14 Nov 2013 15:51:29 +0000 (09:51 -0600)
The methods we're using here aren't ideal but they mirror those used
in the submit views...

This commit sponsored by Alexander Couper.  Thanks!

mediagoblin/gmg_commands/addmedia.py

index 682d415f68010135d16c9ef3cd2e3c75dc3f6eb3..03e11ff5d29e22ef9b0638567a932e75b78050ef 100644 (file)
@@ -68,13 +68,14 @@ def addmedia(args):
     # get the user
     user = app.db.User.query.filter_by(username=args.username.lower()).first()
     if user is None:
-        print "Sorry, no user by username '%s'" % args.user
+        print "Sorry, no user by username '%s'" % args.username
         return
     
     # check for the file, if it exists...
-    filename = os.path.abspath(args.filename)
-    if not os.path.exists(filename):
-        print "Can't find a file by that filename?"
+    filename = os.path.split(args.filename)[-1]
+    abs_filename = os.path.abspath(args.filename)
+    if not os.path.exists(abs_filename):
+        print "Can't find a file with filename '%s'" % args.filename
         return
 
     if user.upload_limit >= 0:
@@ -84,13 +85,22 @@ def addmedia(args):
 
     max_file_size = mg_globals.app_config.get('max_file_size', None)
 
+    def maybe_unicodeify(some_string):
+        # this is kinda terrible
+        if some_string is None:
+            return None
+        else:
+            return unicode(some_string)
+
     try:
         submit_media(
             mg_app=app,
             user=user,
-            submitted_file=file(filename, 'r'), filename=filename,
-            title=args.title, description=args.description,
-            license=args.license, tags_string=args.tags or u'',
+            submitted_file=file(abs_filename, 'r'), filename=filename,
+            title=maybe_unicodeify(args.title),
+            description=maybe_unicodeify(args.description),
+            license=maybe_unicodeify(args.license),
+            tags_string=maybe_unicodeify(args.tags) or u"",
             upload_limit=upload_limit, max_file_size=max_file_size)
     except FileUploadLimit:
         print "This file is larger than the upload limits for this site."