ACTIONS:
follow add the specified user to your follow list
friends get latest tweets from your friends (default action)
+ help print this help text that you are currently reading
leave remove the specified user from your following list
public get latest public tweets
replies get latest replies
import sys
import time
-from getopt import getopt
+from getopt import getopt, GetoptError
from getpass import getpass
import re
import os.path
from api import Twitter, TwitterError
+# Please don't change this, it was provided by the fine folks at Twitter.
+# If you change it, it will not work.
+AGENT_STR = "twittercommandlinetoolpy"
+
options = {
'email': None,
'password': None,
long_opts = ['email', 'password', 'help', 'format', 'refresh',
'refresh-rate', 'config']
short_opts = "e:p:f:h?rR:c:"
- opts, extra_args = getopt(args, short_opts, long_opts)
+ opts, extra_args = getopt(args, short_opts, long_opts)
for opt, arg in opts:
if opt in ('-e', '--email'):
print " Or the user may not exist."
print " Sorry."
print
+ print e
else:
print af(options['action'], user).encode(sys.stdout.encoding, 'replace')
status = (statusTxt.encode('utf8', 'replace'))
twitter.statuses.update(status=status)
+class HelpAction(Action):
+ def __call__(self, twitter, options):
+ print __doc__
+
actions = {
'follow': FollowAction,
'friends': FriendsAction,
+ 'help': HelpAction,
'leave': LeaveAction,
'public': PublicAction,
'replies': RepliesAction,
return main_with_args(sys.argv[1:])
def main_with_args(args):
- parse_args(args, options)
+ try:
+ parse_args(args, options)
+ except GetoptError, e:
+ print >> sys.stderr, "I can't do that, %s." %(e)
+ print >> sys.stderr
+ sys.exit(1)
email, password = loadConfig(options['config_filename'])
if not options['email']: options['email'] = email
if options['email'] and not options['password']:
options['password'] = getpass("Twitter password: ")
- twitter = Twitter(options['email'], options['password'])
+
+ twitter = Twitter(options['email'], options['password'], agent=AGENT_STR)
action = actions.get(options['action'], NoSuchAction)()
+
try:
doAction = lambda : action(twitter, options)