ignore some FORMAT on config command and display direct link in share function inside...
[rainbowstream.git] / rainbowstream / rainbow.py
index 500c2dba3244f86b9dbdbcebf7113b19233d49a7..765ce389d6eb03ff7841ffa5e0436d8e4551e32e 100644 (file)
@@ -482,6 +482,28 @@ def unfavorite():
     printNicely('')
 
 
+def share():
+    """
+    Copy url of a tweet to clipboard
+    """
+    t = Twitter(auth=authen())
+    try:
+        id = int(g['stuff'].split()[0])
+    except:
+        printNicely(red('Sorry I can\'t understand.'))
+        return
+    tid = c['tweet_dict'][id]
+    tweet = t.statuses.show(id=tid)
+    url = 'https://twitter.com/' + \
+        tweet['user']['screen_name'] + '/status/' + str(tid)
+    import platform
+    if platform.system().lower() == 'darwin':
+        os.system("echo '%s' | pbcopy" % url)
+        printNicely(green('Copied tweet\'s url to clipboard.'))
+    else:
+        printNicely('Direct link: ' + yellow(url))
+
+
 def delete():
     """
     Delete
@@ -1394,6 +1416,9 @@ def help_tweets():
     usage += s * 2 + \
         light_green('ufav 12 ') + ' will unfavorite tweet with ' + \
         light_yellow('[id=12]') + '.\n'
+    usage += s * 2 + \
+        light_green('share 12 ') + ' will copy the url of the tweet with ' + \
+        light_yellow('[id=12]') + ' to your clipboard.\n'
     usage += s * 2 + \
         light_green('del 12 ') + ' will delete tweet with ' + \
         light_yellow('[id=12]') + '.\n'
@@ -1674,6 +1699,7 @@ cmdset = [
     'rep',
     'del',
     'ufav',
+    'share',
     's',
     'mes',
     'show',
@@ -1719,6 +1745,7 @@ funcset = [
     reply,
     delete,
     unfavorite,
+    share,
     search,
     message,
     show,
@@ -1777,6 +1804,7 @@ def listen():
             [],  # reply
             [],  # delete
             [],  # unfavorite
+            [],  # url
             ['#'],  # search
             ['@'],  # message
             ['image'],  # show image