+ try:
+ target = g['stuff'].split()[0]
+ if target != 'image':
+ return
+ id = int(g['stuff'].split()[1])
+ tid = db.rainbow_to_tweet_query(id)[0].tweet_id
+ tweet = t.statuses.show(id=tid)
+ media = tweet['entities']['media']
+ for m in media:
+ res = requests.get(m['media_url'])
+ img = Image.open(StringIO(res.content))
+ img.show()
+ except:
+ printNicely(red('Sorry I can\'t show this image.'))
+
+
+def list():
+ """
+ List friends for followers
+ """
+ t = Twitter(auth=authen())
+ try:
+ target = g['stuff'].split()[0]
+ d = {'fl': 'followers', 'fr': 'friends'}
+ next_cursor = -1
+ rel = {}
+ # Cursor loop
+ while next_cursor != 0:
+ list = getattr(t, d[target]).list(
+ screen_name=g['original_name'],
+ cursor=next_cursor,
+ skip_status=True,
+ include_entities=False,
+ )
+ for u in list['users']:
+ rel[u['name']] = '@' + u['screen_name']
+ next_cursor = list['next_cursor']
+ # Print out result
+ printNicely('All: ' + str(len(rel)) + ' people.')
+ for name in rel:
+ user = ' ' + cycle_color(name) + grey(' ' + rel[name] + ' ')
+ printNicely(user)
+ except:
+ printNicely(red('Omg some syntax is wrong.'))
+
+
+def inbox():
+ """
+ Inbox direct messages
+ """
+ t = Twitter(auth=authen())
+ num = MESSAGES_DISPLAY
+ rel = []
+ if g['stuff'].isdigit():
+ num = g['stuff']
+ cur_page = 1
+ # Max message per page is 20 so we have to loop
+ while num > 20:
+ rel = rel + t.direct_messages(
+ count=20,
+ page=cur_page,
+ include_entities=False,
+ skip_status=False
+ )
+ num -= 20
+ cur_page += 1
+ rel = rel + t.direct_messages(
+ count=num,
+ page=cur_page,
+ include_entities=False,
+ skip_status=False
+ )
+ # Display
+ printNicely('Inbox: newest ' + str(len(rel)) + ' messages.')
+ for m in reversed(rel):
+ print_message(m)
+ printNicely('')
+
+
+def sent():
+ """
+ Sent direct messages
+ """
+ t = Twitter(auth=authen())
+ num = MESSAGES_DISPLAY
+ rel = []
+ if g['stuff'].isdigit():
+ num = int(g['stuff'])
+ cur_page = 1
+ # Max message per page is 20 so we have to loop
+ while num > 20:
+ rel = rel + t.direct_messages.sent(
+ count=20,
+ page=cur_page,
+ include_entities=False,
+ skip_status=False
+ )
+ num -= 20
+ cur_page += 1
+ rel = rel + t.direct_messages.sent(
+ count=num,
+ page=cur_page,
+ include_entities=False,
+ skip_status=False
+ )
+ # Display
+ printNicely('Sent: newest ' + str(len(rel)) + ' messages.')
+ for m in reversed(rel):
+ print_message(m)
+ printNicely('')
+
+
+def trash():
+ """
+ Remove message
+ """
+ t = Twitter(auth=authen())
+ try:
+ rid = int(g['stuff'].split()[0])
+ mid = db.rainbow_to_message_query(rid)[0].message_id
+ t.direct_messages.destroy(id=mid)
+ printNicely(green('Message deleted.'))
+ except:
+ printNicely(red('Sorry I can\'t understand.'))
+
+
+def follow():
+ """
+ Follow a user
+ """
+ t = Twitter(auth=authen())
+ screen_name = g['stuff'].split()[0]
+ if screen_name[0] == '@':
+ try:
+ t.friendships.create(screen_name=screen_name[1:], follow=True)
+ printNicely(green('You are following ' + screen_name + ' now!'))
+ except:
+ printNicely(red('Sorry can not follow at this time.'))
+ else:
+ printNicely(red('Sorry I can\'t understand.'))
+
+
+def unfollow():
+ """
+ Unfollow a user
+ """
+ t = Twitter(auth=authen())
+ screen_name = g['stuff'].split()[0]
+ if screen_name[0] == '@':
+ try:
+ t.friendships.destroy(
+ screen_name=screen_name[1:],
+ include_entities=False)
+ printNicely(green('Unfollow ' + screen_name + ' success!'))
+ except:
+ printNicely(red('Sorry can not unfollow at this time.'))
+ else:
+ printNicely(red('Sorry I can\'t understand.'))
+
+
+def block():
+ """
+ Block a user
+ """
+ t = Twitter(auth=authen())
+ screen_name = g['stuff'].split()[0]
+ if screen_name[0] == '@':
+ try:
+ t.blocks.create(
+ screen_name=screen_name[1:],
+ include_entities=False,
+ skip_status=True)
+ printNicely(green('You blocked ' + screen_name + '.'))
+ except:
+ printNicely(red('Sorry something went wrong.'))
+ else:
+ printNicely(red('Sorry I can\'t understand.'))
+
+
+def unblock():
+ """
+ Unblock a user
+ """
+ t = Twitter(auth=authen())
+ screen_name = g['stuff'].split()[0]
+ if screen_name[0] == '@':
+ try:
+ t.blocks.destroy(
+ screen_name=screen_name[1:],
+ include_entities=False,
+ skip_status=True)
+ printNicely(green('Unblock ' + screen_name + ' success!'))
+ except:
+ printNicely(red('Sorry something went wrong.'))
+ else:
+ printNicely(red('Sorry I can\'t understand.'))
+
+
+def report():
+ """
+ Report a user as a spam account
+ """
+ t = Twitter(auth=authen())
+ screen_name = g['stuff'].split()[0]
+ if screen_name[0] == '@':
+ try:
+ t.users.report_spam(
+ screen_name=screen_name[1:])
+ printNicely(green('You reported ' + screen_name + '.'))
+ except:
+ printNicely(red('Sorry something went wrong.'))
+ else:
+ printNicely(red('Sorry I can\'t understand.'))