Blob Blame History Raw
--- fpaste	2013-04-17 19:22:04.312067171 +1000
+++ ../fpaste-0.3.7.1/fpaste	2013-04-17 19:24:28.307540642 +1000
@@ -64,6 +64,15 @@
     else:
         return False
 
+def get_shortened_url(long_url):
+    """Get shortened URL from paste data"""
+    req = urllib2.Request(url=long_url+'/', data='mode=json')
+    try:
+        f = urllib2.urlopen(req)
+    except urllib2.URLError: 
+        return False
+
+    return json.loads(f.read().replace('\n',''))['result']['short_url']
 
 def paste(text, options):
     '''send text to fpaste.org and return the URL'''
@@ -121,7 +130,12 @@
         url = "{0}{1}/{2}".format(options.url, id, private_hash)
     else:
         url = "{0}{1}".format(options.url, id)
-    return url
+
+    short_url = get_shortened_url(url)
+    if short_url:
+        return [url, short_url]
+    else:
+        return [url, url]
 
 #    url = f.geturl()
 #    if re.match(FPASTE_URL + '?.+', url):
@@ -289,6 +303,10 @@
     parser.set_defaults(desc='', nick='', lang='text', make_private='yes', expires=max(validExpiresOpts), selection='primary', url=FPASTE_URL )
     (options, args) = parser.parse_args()
 
+    # Check for trailing slash
+    if options.url[-1] != '/':
+        options.url = options.url + '/'
+
     if options.lang.lower() == 'list':
         print 'Valid language syntax options:'
         for opt in validSyntaxOpts:
@@ -390,7 +408,7 @@
         if not confirm("OK to send?"):
             sys.exit(1)
 
-    url = paste(text, options)
+    [url, short_url] = paste(text, options)
     if url:
         # try to save URL in clipboard, and warn but don't error
         if options.clipout:
@@ -404,7 +422,11 @@
                 #parser.error("'xsel' failure. this usually means you're not running X")
                 print >> sys.stderr, "WARNING: URL not saved to clipboard"
 
-        print url
+        if url == short_url:
+            print url
+        else:
+            print short_url +  " -> " +  url
+
     else:
         sys.exit(1)