ACTIONS:
follow add the specified user to your follow list
friends get latest tweets from your friends (default action)
ACTIONS:
follow add the specified user to your follow list
friends get latest tweets from your friends (default action)
public get latest public tweets
replies get latest replies
set set your twitter status
public get latest public tweets
replies get latest replies
set set your twitter status
default one line per status
verbose multiple lines per status, more verbose status info
urls nothing but URLs. Dare you click them?
default one line per status
verbose multiple lines per status, more verbose status info
urls nothing but URLs. Dare you click them?
'refresh-rate', 'config']
short_opts = "e:p:f:h?rR:c:"
opts, extra_args = getopt(args, short_opts, long_opts)
'refresh-rate', 'config']
short_opts = "e:p:f:h?rR:c:"
opts, extra_args = getopt(args, short_opts, long_opts)
sys.exit(0)
elif opt in ('-c', '--config'):
options['config_filename'] = arg
sys.exit(0)
elif opt in ('-c', '--config'):
options['config_filename'] = arg
- def __call__(self, action, user):
- return(u"%s: %s" %(
- "Following" if action == "follow" else "Leaving", user['name']))
-
+ def __call__(self, action, user):
+ return(u"%s: %s" %(
+ "Following" if action == "follow" else "Leaving", user['name']))
+
- def __call__(self, action, user):
- return(u"-- %s: %s (%s): %s" % (
- "Following" if action == "follow" else "Leaving",
- user['screen_name'],
- user['name'],
- user['url']))
-
+ def __call__(self, action, user):
+ return(u"-- %s: %s (%s): %s" % (
+ "Following" if action == "follow" else "Leaving",
+ user['screen_name'],
+ user['name'],
+ user['url']))
+
- def __call__(self, action, user):
- return("Admin actions do not support the URL formatter")
+ def __call__(self, action, user):
+ return("Admin actions do not support the URL formatter")
- 'default': AdminFormatter,
- 'verbose': VerboseAdminFormatter,
- 'urls': URLAdminFormatter
+ 'default': AdminFormatter,
+ 'verbose': VerboseAdminFormatter,
+ 'urls': URLAdminFormatter
print statusStr.encode(sys.stdout.encoding, 'replace')
class AdminAction(Action):
print statusStr.encode(sys.stdout.encoding, 'replace')
class AdminAction(Action):
- def __call__(self, twitter, options):
- if (not options['extra_args'][0]):
- raise TwitterError("You need to specify a User (Screen Name)")
- af = get_admin_formatter(options)
- user = self.getUser(twitter, options['extra_args'][0])
- if(user):
- print af(options['action'], user).encode(sys.stdout.encoding, 'replace')
-
+ def __call__(self, twitter, options):
+ if (not options['extra_args'][0]):
+ raise TwitterError("You need to specify a User (Screen Name)")
+ af = get_admin_formatter(options)
+ user = self.getUser(twitter, options['extra_args'][0])
+ if(user):
+ print af(options['action'], user).encode(sys.stdout.encoding, 'replace')
+
class FriendsAction(StatusAction):
def getStatuses(self, twitter):
return reversed(twitter.statuses.friends_timeline())
class FriendsAction(StatusAction):
def getStatuses(self, twitter):
return reversed(twitter.statuses.friends_timeline())
class PublicAction(StatusAction):
def getStatuses(self, twitter):
return reversed(twitter.statuses.public_timeline())
class PublicAction(StatusAction):
def getStatuses(self, twitter):
return reversed(twitter.statuses.public_timeline())
- def getUser(self, twitter, user):
- # Twitter wants /notifications/follow/user.json?id=user
- return twitter.notifications.follow.__getattr__(user)(id=user)
-
+ def getUser(self, twitter, user):
+ # Twitter wants /notifications/follow/user.json?id=user
+ return twitter.notifications.follow.__getattr__(user)(id=user)
+
- def getUser(self, twitter, user):
- return twitter.notifications.leave.__getattr__(user)(id=user)
+ def getUser(self, twitter, user):
+ return twitter.notifications.leave.__getattr__(user)(id=user)
class SetStatusAction(Action):
def __call__(self, twitter, options):
class SetStatusAction(Action):
def __call__(self, twitter, options):
def main_with_args(args):
parse_args(args, options)
email, password = loadConfig(options['config_filename'])
if not options['email']: options['email'] = email
if not options['password']: options['password'] = password
def main_with_args(args):
parse_args(args, options)
email, password = loadConfig(options['config_filename'])
if not options['email']: options['email'] = email
if not options['password']: options['password'] = password
#Maybe check for AdminAction here, but whatever you do, don't write TODO
if options['refresh'] and options['action'] == 'set':
print >> sys.stderr, "You can't repeatedly set your status, silly"
#Maybe check for AdminAction here, but whatever you do, don't write TODO
if options['refresh'] and options['action'] == 'set':
print >> sys.stderr, "You can't repeatedly set your status, silly"
action = actions.get(options['action'], NoSuchAction)()
try:
doAction = lambda : action(twitter, options)
action = actions.get(options['action'], NoSuchAction)()
try:
doAction = lambda : action(twitter, options)
except TwitterError, e:
print >> sys.stderr, e.args[0]
print >> sys.stderr, "Use 'twitter -h' for help."
sys.exit(1)
except KeyboardInterrupt:
pass
except TwitterError, e:
print >> sys.stderr, e.args[0]
print >> sys.stderr, "Use 'twitter -h' for help."
sys.exit(1)
except KeyboardInterrupt:
pass