X-Git-Url: https://vcs.fsf.org/?p=rainbowstream.git;a=blobdiff_plain;f=rainbowstream%2Frainbow.py;h=9461d22679a274e70a61a35e571d0f91ecd6ee11;hp=84b89ffcf6a8f3988bef4c0c72257dbf98641297;hb=7ab6207bffe41dc66be46ab9b109acf018c53781;hpb=b8dda7041add749421f08c022e04023b6a939a29 diff --git a/rainbowstream/rainbow.py b/rainbowstream/rainbow.py index 84b89ff..9461d22 100644 --- a/rainbowstream/rainbow.py +++ b/rainbowstream/rainbow.py @@ -42,7 +42,8 @@ def draw(t,keyword=None): # Highlight link tweet = map(lambda x: cyan(x) if x[0:7] == 'http://' else x, tweet) # Highlight search keyword - tweet = map(lambda x: on_yellow(x) if ''.join(c for c in x if c.isalnum()).lower() == keyword.lower() else x, tweet) + if keyword: + tweet = map(lambda x: on_yellow(x) if ''.join(c for c in x if c.isalnum()).lower() == keyword.lower() else x, tweet) tweet = ' '.join(tweet) # Draw rainbow @@ -67,9 +68,7 @@ def parse_arguments(): """ Parse the arguments """ - parser = argparse.ArgumentParser(description=__doc__ or "") - parser.add_argument( '-to', '--timeout', @@ -144,6 +143,32 @@ def search(): printNicely(grey('**************************************************************************************\n')) +def friend(): + """ + List of friend (following) + """ + t = Twitter(auth=authen()) + g['friends'] = t.friends.ids()['ids'] + for i in g['friends']: + screen_name = t.users.lookup(user_id=i)[0]['screen_name'] + user = cycle_color('@'+screen_name) + print(user, end=' ') + print('\n'); + + +def follower(): + """ + List of follower + """ + t = Twitter(auth=authen()) + g['followers'] = t.followers.ids()['ids'] + for i in g['followers']: + screen_name = t.users.lookup(user_id=i)[0]['screen_name'] + user = cycle_color('@'+screen_name) + print(user, end=' ') + print('\n'); + + def help(): """ Print help @@ -151,45 +176,48 @@ def help(): usage = ''' Hi boss! I'm ready to serve you right now! ---------------------------------------------------- - "!" at the beginning will start to tweet immediately - "/" at the beginning will search for 5 newest tweet - "?" or "h" will print this help once again + "tweet" at the beginning will tweet immediately + "s" and follow by any word will search and return 5 newest tweet + "fr" will list out your following people + "fl" will list out your followers + "h" will print this help once again "c" will clear the terminal "q" will exit ---------------------------------------------------- - Hvae fun and hang tight! + Have fun and hang tight! ''' printNicely(usage) sys.stdout.write(g['decorated_name']) -def quit(): +def clear(): """ Exit all """ - os.kill(g['stream_pid'], signal.SIGKILL) - sys.exit() + os.system('clear') -def clear(): +def quit(): """ Exit all """ - os.system('clear') + os.kill(g['stream_pid'], signal.SIGKILL) + sys.exit() -def process(line): +def process(cmd): """ Process switch by start of line """ return { - '!' : tweet, - '/' : search, - '?' : help, - 'h' : help, - 'c' : clear, - 'q' : quit, - }.get(line[0],lambda: sys.stdout.write(g['decorated_name'])) + 'tweet' : tweet, + 's' : search, + 'fr' : friend, + 'fl' : follower, + 'h' : help, + 'c' : clear, + 'q' : quit, + }.get(cmd,lambda: sys.stdout.write(g['decorated_name'])) def listen(stdin): @@ -197,9 +225,13 @@ def listen(stdin): Listen to user's input """ for line in iter(stdin.readline, ''): + try: + cmd = line.split()[0] + except: + cmd = '' # Save cmd to global variable and call process - g['stuff'] = line[1:] - process(line)() + g['stuff'] = ' '.join(line.split()[1:]) + process(cmd)() stdin.close()