return clock
+def get_full_text(t):
+ """Handle RTs and extended tweets to always display all the available text"""
+
+ if t.get('retweeted_status'):
+ rt_status = t['retweeted_status']
+ if rt_status.get('extended_tweet'):
+ elem = rt_status['extended_tweet']
+ else:
+ elem = rt_status
+ rt_text = elem.get('full_text', elem.get('text'))
+ t['full_text'] = 'RT @' + rt_status['user']['screen_name'] + ': ' + rt_text
+ elif t.get('extended_tweet'):
+ t['full_text'] = t['extended_tweet']['full_text']
+
+ return t.get('full_text', t.get('text'))
+
+
def draw(t, keyword=None, humanize=True, noti=False, fil=[], ig=[]):
"""
Draw the rainbow
# Retrieve tweet
tid = t['id']
- text = t['text']
+
+ text = get_full_text(t)
screen_name = t['user']['screen_name']
name = t['user']['name']
created_at = t['created_at']
# Pull extended retweet text
try:
- text = 'RT @' + t['retweeted_status']['user']['screen_name'] + ': ' +\
- t['retweeted_status']['text']
# Display as a notification
target = t['retweeted_status']['user']['screen_name']
if all([target == c['original_name'], not noti]):
"""
# Retrieve info
screen_name = tweet['user']['screen_name']
- text = tweet['text']
+ text = get_full_text(tweet)
tid = str( tweet['id'] )
# Validate quote format
num = c['HOME_TWEET_NUM']
if g['stuff'].isdigit():
num = int(g['stuff'])
- for tweet in reversed(t.statuses.home_timeline(count=num)):
+ kwargs = {'count': num}
+ kwargs = add_tweetmode_parameter(kwargs)
+ for tweet in reversed(t.statuses.home_timeline(**kwargs)):
draw(t=tweet)
printNicely('')
num = c['HOME_TWEET_NUM']
if g['stuff'].isdigit():
num = int(g['stuff'])
- for tweet in reversed(t.statuses.mentions_timeline(count=num)):
+ kwargs = {'count': num}
+ kwargs = add_tweetmode_parameter(kwargs)
+ for tweet in reversed(t.statuses.mentions_timeline(**kwargs)):
draw(t=tweet)
printNicely('')
num = int(g['stuff'].split()[1])
except:
num = c['HOME_TWEET_NUM']
- for tweet in reversed(
- t.statuses.user_timeline(count=num, screen_name=user[1:])):
+ kwargs = {'count': num, 'screen_name': user[1:]}
+ kwargs = add_tweetmode_parameter(kwargs)
+ for tweet in reversed(t.statuses.user_timeline(**kwargs)):
draw(t=tweet)
printNicely('')
else:
num = int(g['stuff'])
except:
num = c['HOME_TWEET_NUM']
+ kwargs = {'count': num, 'screen_name': g['original_name']}
+ kwargs = add_tweetmode_parameter(kwargs)
for tweet in reversed(
- t.statuses.user_timeline(count=num, screen_name=g['original_name'])):
+ t.statuses.user_timeline(**kwargs)):
draw(t=tweet)
printNicely('')
type = 'mixed'
max_record = c['SEARCH_MAX_RECORD']
count = min(max_record, 100)
+ kwargs = {
+ 'q': query,
+ 'type': type,
+ 'count': count,
+ }
+ kwargs = add_tweetmode_parameter(kwargs)
# Perform search
- rel = t.search.tweets(
- q=query,
- type=type,
- count=count
- )['statuses']
+ rel = t.search.tweets(**kwargs)['statuses']
# Return results
if rel:
printNicely('Newest tweets:')
printNicely(red('Sorry I can\'t understand.'))
return
tid = c['tweet_dict'][id]
- tweet = t.statuses.show(id=tid)
+ kwargs = {'id': tid}
+ kwargs = add_tweetmode_parameter(kwargs)
+ tweet = t.statuses.show(**kwargs)
# Get formater
formater = format_quote(tweet)
if not formater:
except:
num = c['RETWEETS_SHOW_NUM']
# Get result and display
- rt_ary = t.statuses.retweets(id=tid, count=num)
+ kwargs = {'id': tid, 'count': num}
+ kwargs = add_tweetmode_parameter(kwargs)
+ rt_ary = t.statuses.retweets(**kwargs)
if not rt_ary:
printNicely(magenta('This tweet has no retweet.'))
return
printNicely(red('Sorry I can\'t understand.'))
return
tid = c['tweet_dict'][id]
- tweet = t.statuses.show(id=tid)
+ kwargs = {'id': tid}
+ kwargs = add_tweetmode_parameter(kwargs)
+ tweet = t.statuses.show(**kwargs)
limit = c['CONVERSATION_MAX']
thread_ref = []
thread_ref.append(tweet)
prev_tid = tweet['in_reply_to_status_id']
while prev_tid and limit:
limit -= 1
- tweet = t.statuses.show(id=prev_tid)
+ kwargs['id'] = prev_tid
+ tweet = t.statuses.show(**kwargs)
prev_tid = tweet['in_reply_to_status_id']
thread_ref.append(tweet)
tid = c['tweet_dict'][id]
t.favorites.create(_id=tid, include_entities=False)
printNicely(green('Favorited.'))
- draw(t.statuses.show(id=tid))
+ kwargs = {'id': tid}
+ kwargs = add_tweetmode_parameter(kwargs)
+ draw(t.statuses.show(**kwargs))
printNicely('')
tid = c['tweet_dict'][id]
t.favorites.destroy(_id=tid)
printNicely(green('Okay it\'s unfavorited.'))
- draw(t.statuses.show(id=tid))
+ kwargs = {'id': tid}
+ kwargs = add_tweetmode_parameter(kwargs)
+ draw(t.statuses.show(**kwargs))
printNicely('')
except:
printNicely(red('Tweet id is not valid.'))
return
- tweet = t.statuses.show(id=tid)
+ kwargs = {'id': tid}
+ kwargs = add_tweetmode_parameter(kwargs)
+ tweet = t.statuses.show(**kwargs)
url = 'https://twitter.com/' + \
tweet['user']['screen_name'] + '/status/' + str(tid)
import platform