'--proxy-type',
default='SOCKS5',
help='Proxy type (HTTP, SOCKS4, SOCKS5; Default: SOCKS5).')
+ parser.add_argument(
+ '-ta',
+ '--twitter-auth',
+ default=os.environ.get('HOME', os.environ.get('USERPROFILE', '')) + os.sep + '.rainbow_oauth',
+ help='Specify which OAuth profile to use for twitter. Default: ~/.rainbow_oauth.')
+ parser.add_argument(
+ '-pa',
+ '--pocket-auth',
+ default=os.environ.get('HOME', os.environ.get('USERPROFILE', '')) + os.sep + '.rainbow_pckt_oauth',
+ help='Specify which OAuth profile to use for pocket. Default: ~/.rainbow_pckt_oauth.')
return parser.parse_args()
Authenticate with Twitter OAuth
"""
# When using rainbow stream you must authorize.
- twitter_credential = os.environ.get(
- 'HOME',
- os.environ.get(
- 'USERPROFILE',
- '')) + os.sep + '.rainbow_oauth'
+ twitter_credential = g['twitter_oauth_path']
if not os.path.exists(twitter_credential):
oauth_dance('Rainbow Stream',
CONSUMER_KEY,
"""
Authenticate with Pocket OAuth
"""
- pocket_credential = os.environ.get(
- 'HOME',
- os.environ.get(
- 'USERPROFILE',
- '')) + os.sep + '.rainbow_pckt_oauth'
-
+ pocket_credential = g['pocket_oauth_path']
if not os.path.exists(pocket_credential):
request_token = Pocket.get_request_token(consumer_key=PCKT_CONSUMER_KEY)
auth_url = Pocket.get_auth_url(code=request_token, redirect_uri="/")
# Handle Ctrl C
ctrl_c_handler = lambda signum, frame: quit()
signal.signal(signal.SIGINT, ctrl_c_handler)
+ # Set OAuth file path (needs to happen before authen is called)
+ g['twitter_oauth_path'] = args.twitter_auth
+ g['pocket_oauth_path'] = args.pocket_auth
# Upgrade notify
upgrade_center()
# Get name
credential = t.account.verify_credentials()
screen_name = '@' + credential['screen_name']
name = credential['name']
+ g['id_str'] = credential['id_str']
c['original_name'] = g['original_name'] = screen_name[1:]
g['listname'] = g['keyword'] = ''
g['PREFIX'] = u2str(emojize(format_prefix()))
g['since_id'] = result[0]['id']
for tweet in reversed(result):
draw(t=tweet)
- printNicely('')
+ if result:
+ printNicely('')
def home():
"""
# Return results
if rel:
printNicely('Newest tweets:')
- for i in reversed(xrange(count)):
+ for i in reversed(xrange(min(len(rel), count))):
draw(t=rel[i], keyword=query)
printNicely('')
else:
num = g['stuff']
def inboxFilter(message):
- return message['sender_screen_name'] == g['original_name']
+ return message['message_create']['sender_id'] == g['id_str']
def sentFilter(message):
- return message['recipient_screen_name'] == g['original_name']
+ return message['message_create']['target']['recipient_id'] == g['id_str']
+
+ def map_message(message):
+ message_create = message['message_create']
+ sender = t.users.show(id=int(message_create['sender_id']),include_entities=False)
+ recipient = t.users.show(id=int(message_create['target']['recipient_id']),include_entities=False)
+ message['sender_screen_name'] = sender['screen_name']
+ message['sender_name'] = sender['name']
+ message['recipient_screen_name'] = recipient['screen_name']
+ message['recipient_name'] = recipient['name']
+ message['text'] = message['message_create']['message_data']['text']
+ message['created_at'] = message['created_timestamp']
+ return message
# Get inbox messages
- messages = []
- messages = messages + t.direct_messages.events.list()['events']
- inbox = filter(inboxFilter, messages)
- sent = filter(inboxFilter, messages)
+ messages = t.direct_messages.events.list()['events']
+ messages = list(map(map_message, messages))
+ inbox = list(filter(inboxFilter, messages))
+ sent = list(filter(sentFilter, messages))
d = {}
uniq_inbox = list(set(
- [(m['sender_screen_name'], m['sender']['name']) for m in inbox]
+ [(m['sender_screen_name'], m['sender_name']) for m in inbox]
))
uniq_sent = list(set(
- [(m['recipient_screen_name'], m['recipient']['name']) for m in sent]
+ [(m['recipient_screen_name'], m['recipient_name']) for m in sent]
))
for partner in uniq_inbox:
inbox_ary = [m for m in inbox if m['sender_screen_name'] == partner[0]]
# Redefine decorated_name
g['decorated_name'] = lambda x: color_func(
c['DECORATED_NAME'])(
- '[' + x + ']: ')
+ '[' + x + ']: ', rl=True)
printNicely(green('Theme changed.'))
except:
printNicely(red('No such theme exists.'))
if key == 'THEME':
c['THEME'] = reload_theme(value, c['THEME'])
g['decorated_name'] = lambda x: color_func(
- c['DECORATED_NAME'])('[' + x + ']: ')
+ c['DECORATED_NAME'])('[' + x + ']: ', rl=True)
elif key == 'PREFIX':
g['PREFIX'] = u2str(emojize(format_prefix(
listname=g['listname'],