import argparse
import time
import requests
+import webbrowser
from twitter.stream import TwitterStream, Timeout, HeartbeatTimeout, Hangup
from twitter.api import *
from twitter.oauth import OAuth, read_token_file
from twitter.oauth_dance import oauth_dance
from twitter.util import printNicely
-from StringIO import StringIO
from .draw import *
from .colors import *
from .interactive import *
from .db import *
from .c_image import *
+from .py3patch import *
+
g = {}
db = RainbowDB()
'mentions',
't',
'rt',
+ 'quote',
'allrt',
'fav',
'rep',
's',
'mes',
'show',
+ 'open',
'ls',
'inbox',
'sent',
t.statuses.retweet(id=tid, include_entities=False, trim_user=True)
+def quote():
+ """
+ Quote a tweet
+ """
+ t = Twitter(auth=authen())
+ try:
+ id = int(g['stuff'].split()[0])
+ except:
+ printNicely(red('Sorry I can\'t understand.'))
+ return
+ tid = db.rainbow_to_tweet_query(id)[0].tweet_id
+ tweet = t.statuses.show(id=tid)
+ screen_name = tweet['user']['screen_name']
+ text = tweet['text']
+ quote = '\"@' + screen_name + ': ' + text + '\"'
+ quote = quote.encode('utf8')
+ notice = light_magenta('Compose mode ')
+ notice += light_yellow('(Enter nothing will cancel the quote)')
+ notice += light_magenta(':')
+ printNicely(notice)
+ extra = raw_input(quote)
+ if extra:
+ t.statuses.update(status=quote+extra)
+ else:
+ printNicely(light_magenta('No text added.'))
+
+
def allretweet():
"""
List all retweet
printNicely(red('Sorry I can\'t show this image.'))
+def urlopen():
+ """
+ Open url
+ """
+ t = Twitter(auth=authen())
+ try:
+ if not g['stuff'].isdigit():
+ return
+ tid = db.rainbow_to_tweet_query(g['stuff'])[0].tweet_id
+ tweet = t.statuses.show(id=tid)
+ link_ary = [u for u in tweet['text'].split() if u.startswith('http://')]
+ if not link_ary:
+ printNicely(light_magenta('No url here @.@!'))
+ return
+ for link in link_ary:
+ webbrowser.open(link)
+ except:
+ printNicely(red('Sorry I can\'t open url in this tweet.'))
+
+
def list():
"""
List friends for followers
line = ' '*4 + line
printNicely(line)
elif g['stuff'] == 'current_as_default':
+ # Set default
path = os.path.dirname(__file__) + '/colorset/init'
f = open(path,'w')
f.write(c['theme'])
f.close()
+ os.system('chmod 777 ' + path)
printNicely(light_green('Okay it will be applied from next time :)'))
else:
# Change theme
usage += s * 2 + \
light_green('rt 12 ') + ' will retweet to tweet with ' + \
light_yellow('[id=12]') + '.\n'
+ usage += s * 2 + \
+ light_green('quote 12 ') + ' will quote the tweet with ' + \
+ light_yellow('[id=12]') + '. If no extra text is added, ' + \
+ 'the quote will be canceled.\n'
usage += s * 2 + \
light_green('allrt 12 20 ') + ' will list 20 newest retweet of the tweet with ' + \
light_yellow('[id=12]') + '.\n'
light_yellow('[id=12]') + '.\n'
usage += s * 2 + light_green('show image 12') + ' will show image in tweet with ' + \
light_yellow('[id=12]') + ' in your OS\'s image viewer.\n'
+ usage += s * 2 + light_green('open 12') + ' will open url in tweet with ' + \
+ light_yellow('[id=12]') + ' in your OS\'s default browser.\n'
# Direct message
usage += '\n'
# Follower and following
usage += '\n'
- usage += s + grey(u'\u266A' + ' Fiends and followers \n')
+ usage += s + grey(u'\u266A' + ' Friends and followers \n')
usage += s * 2 + \
light_green('ls fl') + \
' will list all followers (people who are following you).\n'
mentions,
tweet,
retweet,
+ quote,
allretweet,
favorite,
reply,
search,
message,
show,
+ urlopen,
list,
inbox,
sent,
[], # mentions
[], # tweet
[], # retweet
+ [], # quote
[], # allretweet
[], # favorite
[], # reply
['#'], # search
['@'], # message
['image'], # show image
+ [''], # open url
['fl', 'fr'], # list
[], # inbox
[], # sent