From 533edcdb18f9b2aa00fa8f00c7093ae219765b53 Mon Sep 17 00:00:00 2001 From: Vu Nhat Minh Date: Wed, 2 Jul 2014 12:54:07 +0900 Subject: [PATCH] light color --- rainbowstream/colors.py | 77 +++++++++++++++++++++++++++++------------ rainbowstream/config.py | 26 +++++++------- rainbowstream/draw.py | 24 ++++++------- 3 files changed, 79 insertions(+), 48 deletions(-) diff --git a/rainbowstream/colors.py b/rainbowstream/colors.py index 4b8ab2c..b88b5e5 100644 --- a/rainbowstream/colors.py +++ b/rainbowstream/colors.py @@ -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:]) diff --git a/rainbowstream/config.py b/rainbowstream/config.py index e6dba81..daf1cfd 100644 --- a/rainbowstream/config.py +++ b/rainbowstream/config.py @@ -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' diff --git a/rainbowstream/draw.py b/rainbowstream/draw.py index c96d96e..d53d5ef 100644 --- a/rainbowstream/draw.py +++ b/rainbowstream/draw.py @@ -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('') -- 2.25.1