light color
authorVu Nhat Minh <vunhat_minh@dwango.co.jp>
Wed, 2 Jul 2014 03:54:07 +0000 (12:54 +0900)
committerVu Nhat Minh <vunhat_minh@dwango.co.jp>
Wed, 2 Jul 2014 03:54:07 +0000 (12:54 +0900)
rainbowstream/colors.py
rainbowstream/config.py
rainbowstream/draw.py

index 4b8ab2c..b88b5e5 100644 (file)
@@ -4,33 +4,64 @@ from functools import wraps
 from termcolor import *
 from pyfiglet import figlet_format
 
-grey = lambda x: colored(x, 'grey', attrs=['bold'])
-red = lambda x: colored(x, 'red', attrs=['bold'])
-green = lambda x: colored(x, 'green', attrs=['bold'])
-yellow = lambda x: colored(x, 'yellow', attrs=['bold'])
-blue = lambda x: colored(x, 'blue', attrs=['bold'])
-magenta = lambda x: colored(x, 'magenta', attrs=['bold'])
-cyan = lambda x: colored(x, 'cyan', attrs=['bold'])
-white = lambda x: colored(x, 'white', attrs=['bold'])
+def color_code(code):
+    def inner(text, bold=False):
+        c = code
+        if bold:
+            c = "1;%s" % c
+        return "\033[%sm%s\033[0m" % (c, text)
+    return inner
 
-on_grey = lambda x: colored(x, 'white', 'on_grey', attrs=['bold'])
-on_red = lambda x: colored(x, 'white', 'on_red', attrs=['bold'])
-on_green = lambda x: colored(x, 'white', 'on_green', attrs=['bold'])
-on_yellow = lambda x: colored(x, 'white', 'on_yellow', attrs=['bold'])
-on_blue = lambda x: colored(x, 'white', 'on_blue', attrs=['bold'])
-on_magenta = lambda x: colored(x, 'white', 'on_magenta', attrs=['bold'])
-on_cyan = lambda x: colored(x, 'white', 'on_cyan', attrs=['bold'])
-on_white = lambda x: colored(x, 'white', 'on_white', attrs=['bold'])
+default          = color_code('39')
+black            = color_code('30')
+red              = color_code('31')
+green            = color_code('32')
+yellow           = color_code('33')
+blue             = color_code('34')
+magenta          = color_code('35')
+cyan             = color_code('36')
+grey             = color_code('90')
+light_red        = color_code('91')
+light_green      = color_code('92')
+light_yellow     = color_code('103')
+light_blue       = color_code('104')
+light_magenta    = color_code('105')
+light_cyan       = color_code('106')
+white            = color_code('107')
 
-colors_shuffle = [grey, red, green, yellow, blue, magenta, cyan]
+on_default       = color_code('49')
+on_black         = color_code('40')
+on_red           = color_code('41')
+on_green         = color_code('42')
+on_yellow        = color_code('43')
+on_blue          = color_code('44')
+on_magenta       = color_code('45')
+on_cyan          = color_code('46')
+on_grey          = color_code('100')
+on_light_red     = color_code('101')
+on_light_green   = color_code('102')
+on_light_yellow  = color_code('103')
+on_light_blue    = color_code('104')
+on_light_magenta = color_code('105')
+on_light_cyan    = color_code('106')
+on_white         = color_code('107')
+
+colors_shuffle = [
+    grey,
+    light_red,
+    light_green,
+    light_yellow,
+    light_blue,
+    light_magenta,
+    light_cyan]
 background_shuffle = [
     on_grey,
-    on_red,
-    on_green,
-    on_yellow,
-    on_blue,
-    on_magenta,
-    on_cyan]
+    on_light_red,
+    on_light_green,
+    on_light_yellow,
+    on_light_blue,
+    on_light_magenta,
+    on_light_cyan]
 cyc = itertools.cycle(colors_shuffle[1:])
 
 
index e6dba81..daf1cfd 100644 (file)
@@ -1,27 +1,27 @@
-# Max Search record
+# 'search': max search record
 SEARCH_MAX_RECORD = 5
-# Default home tweet
+# 'home': default number of home's tweets
 HOME_TWEET_NUM = 5
-# Default retweets show
+# 'allrt': default number of retweets
 RETWEETS_SHOW_NUM = 5
-# Default direct message's number
+# 'inbox','sent': default number of direct message
 MESSAGES_DISPLAY = 5
-# Max trending topics display
+# 'trend': max trending topics
 TREND_MAX = 10
-# Autocomplete history
+# 'switch': Filter and Ignore list ex: ['@fat','@mdo']
+ONLY_LIST = []
+IGNORE_LIST = []
+
+# Autocomplete history file name
 HISTORY_FILENAME = 'completer.hist'
 
-# Stream Domain
 USER_DOMAIN = 'userstream.twitter.com'
 PUBLIC_DOMAIN = 'stream.twitter.com'
 SITE_DOMAIN = 'sitestream.twitter.com'
-# Actually called
 DOMAIN = USER_DOMAIN
 
-# Filter and Ignore list ex: ['@fat','@mdo']
-ONLY_LIST = []
-IGNORE_LIST = []
-
-# Image shift and size
 IMAGE_SHIFT = 10
 IMAGE_MAX_HEIGHT = 40
+
+# Color name can be 'grey', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', or 'white'
+SCREEN_NAME_COLOR = 'grey'
index c96d96e..d53d5ef 100644 (file)
@@ -70,7 +70,7 @@ def draw(t, iot=False, keyword=None, fil=[], ig=[]):
     user = cycle_color(name) + grey(' ' + screen_name + ' ')
     meta = grey('[' + clock + '] [id=' + str(rid) + '] ')
     if favorited:
-        meta = meta + green(u'\u2605')
+        meta = meta + light_green(u'\u2605')
     tweet = text.split()
     # Replace url
     if expanded_url:
@@ -83,11 +83,11 @@ def draw(t, iot=False, keyword=None, fil=[], ig=[]):
     # Highlight screen_name
     tweet = map(lambda x: cycle_color(x) if x[0] == '@' else x, tweet)
     # Highlight link
-    tweet = map(lambda x: cyan(x) if x[0:4] == 'http' else x, tweet)
+    tweet = map(lambda x: light_cyan(x) if x[0:4] == 'http' else x, tweet)
     # Highlight search keyword
     if keyword:
         tweet = map(
-            lambda x: on_yellow(x) if
+            lambda x: on_light_yellow(x) if
             ''.join(c for c in x if c.isalnum()).lower() == keyword.lower()
             else x,
             tweet
@@ -142,7 +142,7 @@ def print_message(m):
     sender = cycle_color(sender_name) + grey(' ' + sender_screen_name + ' ')
     recipient = cycle_color(
         recipient_name) + grey(' ' + recipient_screen_name + ' ')
-    user = sender + magenta(' >>> ') + recipient
+    user = sender + light_magenta(' >>> ') + recipient
     meta = grey('[' + clock + '] [message_id=' + str(rid) + '] ')
     text = ''.join(map(lambda x: x + '  ' if x == '\n' else x, text))
 
@@ -179,17 +179,17 @@ def show_profile(u, iot=False):
     friends_count = u['friends_count']
     followers_count = u['followers_count']
     # Create content
-    statuses_count = green(str(statuses_count) + ' tweets')
-    friends_count = green(str(friends_count) + ' following')
-    followers_count = green(str(followers_count) + ' followers')
+    statuses_count = light_green(str(statuses_count) + ' tweets')
+    friends_count = light_green(str(friends_count) + ' following')
+    followers_count = light_green(str(followers_count) + ' followers')
     count = statuses_count + '  ' + friends_count + '  ' + followers_count
     user = cycle_color(name) + grey(' @' + screen_name + ' : ') + count
-    profile_image_raw_url = 'Profile photo: ' + cyan(profile_image_url)
+    profile_image_raw_url = 'Profile photo: ' + light_cyan(profile_image_url)
     description = ''.join(
         map(lambda x: x + ' ' * 4 if x == '\n' else x, description))
-    description = yellow(description)
-    location = 'Location : ' + magenta(location)
-    url = 'URL : ' + (cyan(url) if url else '')
+    description = light_yellow(description)
+    location = 'Location : ' + light_magenta(location)
+    url = 'URL : ' + (light_cyan(url) if url else '')
     date = parser.parse(created_at)
     date = date - datetime.timedelta(seconds=time.timezone)
     clock = date.strftime('%Y/%m/%d %H:%M:%S')
@@ -239,7 +239,7 @@ def print_trends(trends):
     for topic in trends[:TREND_MAX]:
         name = topic['name']
         url = topic['url']
-        line = cycle_color(name) + ': ' + cyan(url)
+        line = cycle_color(name) + ': ' + light_cyan(url)
         printNicely(line)
     printNicely('')