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:])
-# 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'
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:
# 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
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))
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')
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('')