add share command and show Twitter client name
authorOrakaro <nhatminh_179@hotmail.com>
Wed, 24 Sep 2014 17:24:24 +0000 (02:24 +0900)
committerOrakaro <nhatminh_179@hotmail.com>
Wed, 24 Sep 2014 17:24:24 +0000 (02:24 +0900)
docs/conf.py
docs/index.rst
rainbowstream/colorset/config
rainbowstream/colorset/larapaste.json
rainbowstream/colorset/monokai.json
rainbowstream/colorset/solarized.json
rainbowstream/colorset/tomorrow_night.json
rainbowstream/draw.py
rainbowstream/rainbow.py
setup.py
theme.md

index eafb44f..c0cbe38 100644 (file)
@@ -48,9 +48,9 @@ copyright = u'2014, Vu Nhat Minh'
 # built documents.
 #
 # The short X.Y version.
-version = '1.0.7'
+version = '1.0.8'
 # The full version, including alpha/beta/rc tags.
-release = '1.0.7'
+release = '1.0.8'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
index e42c927..f241303 100644 (file)
@@ -144,6 +144,8 @@ Here is full list of supported command:
 \r
 -  ``ufav 12`` will unfavorite tweet with *[id=12]*.\r
 \r
+-  ``share 12`` will copy tweet with *[id=12]* to your clipboard.\r
+\r
 -  ``del 12`` will delete tweet with *[id=12]*.\r
 \r
 -  ``show image 12`` will show the image in tweet with *[id=12]* in your OS’s image viewer.\r
index 14046fe..2d0b36e 100644 (file)
@@ -53,7 +53,7 @@
     "FORMAT": {
         "TWEET": {
             "CLOCK_FORMAT" : "%Y/%m/%d %H:%M:%S",
-            "DISPLAY" : "\n  #name #nick #clock \n  \u20AA:#rt_count \u2665:#fa_count id:#id #fav\n  #tweet"
+            "DISPLAY" : "\n  #name #nick #clock \n  \u20AA:#rt_count \u2665:#fa_count id:#id via #client #fav\n  #tweet"
         },
         "MESSAGE": {
             "CLOCK_FORMAT" : "%Y/%m/%d %H:%M:%S",
index fd75cc6..922a115 100644 (file)
@@ -27,6 +27,7 @@
         "nick"            : 37,
         "clock"           : 184,
         "id"              : 184,
+        "client"          : 154,
         "favorited"       : 154,
         "retweet_count"   : 154,
         "favorite_count"  : 202,
index 6eac09f..c777eb2 100644 (file)
@@ -27,6 +27,7 @@
         "nick"            : 112,
         "clock"           : 57,
         "id"              : 166,
+        "client"          : 74,
         "favorited"       : 50,
         "retweet_count"   : 50,
         "favorite_count"  : 198,
index 7e77bb7..9053da8 100644 (file)
@@ -27,6 +27,7 @@
         "nick"            : 64,
         "clock"           : 32,
         "id"              : 130,
+        "client"          : 23,
         "favorited"       : 64,
         "retweet_count"   : 64,
         "favorite_count"  : 124,
index f48bdb7..309d889 100644 (file)
@@ -27,6 +27,7 @@
         "nick"            : 67,
         "clock"           : 58,
         "id"              : 58,
+        "client"          : 58,
         "favorited"       : 97,
         "retweet_count"   : 97,
         "favorite_count"  : 166,
index 429bd27..dd32297 100644 (file)
@@ -190,6 +190,7 @@ def draw(t, keyword=None, humanize=True, noti=False, fil=[], ig=[]):
     favorited = t['favorited']
     retweet_count = t['retweet_count']
     favorite_count = t['favorite_count']
+    client = t['source']
     date = parser.parse(created_at)
     try:
         clock_format = c['FORMAT']['TWEET']['CLOCK_FORMAT']
@@ -215,6 +216,12 @@ def draw(t, keyword=None, humanize=True, noti=False, fil=[], ig=[]):
     # Unescape HTML character
     text = unescape(text)
 
+    # Get client name
+    try:
+        client = client.split('>')[-2].split('<')[0]
+    except:
+        client = None
+
     # Get expanded url
     try:
         expanded_url = []
@@ -330,6 +337,11 @@ def draw(t, keyword=None, humanize=True, noti=False, fil=[], ig=[]):
         word = [wo for wo in formater.split() if '#id' in wo][0]
         delimiter = color_func(c['TWEET']['id'])(id.join(word.split('#id')))
         formater = delimiter.join(formater.split(word))
+        # Change client word
+        word = [wo for wo in formater.split() if '#client' in wo][0]
+        delimiter = color_func(c['TWEET']['client'])(
+            client.join(word.split('#client')))
+        formater = delimiter.join(formater.split(word))
         # Change retweet count word
         word = [wo for wo in formater.split() if '#rt_count' in wo][0]
         delimiter = color_func(c['TWEET']['retweet_count'])(
index 500c2db..49e3308 100644 (file)
@@ -482,6 +482,24 @@ 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)
+    os.system("echo '%s' | pbcopy" % url)
+    printNicely(green('Copied tweet\'s url to clipboard.'))
+
+
 def delete():
     """
     Delete
@@ -1395,6 +1413,9 @@ def help_tweets():
         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'
     usage += s * 2 + light_green('show image 12') + ' will show image in tweet with ' + \
@@ -1674,6 +1695,7 @@ cmdset = [
     'rep',
     'del',
     'ufav',
+    'share',
     's',
     'mes',
     'show',
@@ -1719,6 +1741,7 @@ funcset = [
     reply,
     delete,
     unfavorite,
+    share,
     search,
     message,
     show,
@@ -1777,6 +1800,7 @@ def listen():
             [],  # reply
             [],  # delete
             [],  # unfavorite
+            [],  # url
             ['#'],  # search
             ['@'],  # message
             ['image'],  # show image
index dec267a..82eed6e 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,7 @@ import os
 import os.path
 
 # Bumped version
-version = '1.0.7'
+version = '1.0.8'
 
 # Require
 install_requires = [
index a679141..4f1a603 100644 (file)
--- a/theme.md
+++ b/theme.md
@@ -25,15 +25,18 @@ Examples are available in
     "DECORATED_NAME" : 198,
     "CYCLE_COLOR" :[198,57,166,50,179,74,112],
     "TWEET" : {
+        "mynick"          : 179,
         "nick"            : 112,
         "clock"           : 57,
         "id"              : 166,
+        "client"          : 74,
         "favorited"       : 50,
         "retweet_count"   : 50,
         "favorite_count"  : 198,
         "rt"              : 179,
         "link"            : 74,
         "hashtag"         : 198,
+        "mytweet"         : 179,
         "keyword"         : "on_light_green"
     },
 
@@ -46,8 +49,8 @@ Examples are available in
     "MESSAGE" : {
         "partner"       : 112,
         "me"            : 112,
-        "me_frame"      : 74,
         "partner_frame" : 198,
+        "me_frame"      : 74,
         "sender"        : 112,
         "recipient"     : 112,
         "to"            : 50,
@@ -144,6 +147,7 @@ Color reference can be found at
   * `nick` : color for other Twitter __username__.
   * `clock`: color for time of tweet.
   * `id`: color for tweet's id.
+  * `client`: color for used Twitter client.
   * `favorite`: color for the star symbol when a tweet is favorited by you.
   * `retweet_count`: color for retweets count.
   * `favorite_count`: color for favorites count.