]>
jfr.im git - z_archive/twitter.git/blob - twitter/cmdline.py
4 twitter [action] [options]
8 friends get latest tweets from your friends (default action)
9 public get latest public tweets
10 set set your twitter status
14 -e --email <email> your email to login to twitter
15 -p --password <password> your twitter password
19 from getopt
import getopt
21 from api
import Twitter
, TwitterError
32 def parse_args(args
, options
):
33 long_opts
= ['email', 'password', 'help']
35 opts
, options
['extra_args'] = getopt(args
, short_opts
, long_opts
)
38 if opt
in ('-e', '--email'):
39 options
['email'] = arg
40 elif opt
in ('-p', '--password'):
41 options
['password'] = arg
42 elif opt
in ('-?', '-h', '--help'):
46 class StatusFormatter(object):
47 def __call__(self
, status
):
49 status
['user']['screen_name'], status
['text'])
51 def no_action(twitter
, options
):
52 print >> sys
.stderr
, "No such action: ", options
['action']
55 def action_friends(twitter
, options
):
56 statuses
= reversed(twitter
.statuses
.friends_timeline())
57 sf
= StatusFormatter()
58 for status
in statuses
:
61 def action_public(twitter
, options
):
62 statuses
= reversed(twitter
.statuses
.public_timeline())
63 sf
= StatusFormatter()
64 for status
in statuses
:
67 def action_set_status(twitter
, options
):
68 twitter
.statuses
.update(
69 status
=" ".join(options
['extra_args']))
72 'friends': action_friends
,
73 'public': action_public
,
74 'set': action_set_status
,
79 if args
and args
[0][0] != "-":
80 options
['action'] = args
[0]
82 parse_args(args
, options
)
83 twitter
= Twitter(options
['email'], options
['password'])
84 action
= actions
.get(options
['action'], no_action
)
86 action(twitter
, options
)
87 except TwitterError
, e
:
88 print >> sys
.stderr
, e
.message
89 print >> sys
.stderr
, "Use 'twitter -h' for help."