]>
Commit | Line | Data |
---|---|---|
640e695c MV |
1 | """ |
2 | Example program for the Stream API. This prints public status messages | |
3 | from the "sample" stream as fast as possible. | |
4 | ||
5 | USAGE | |
6 | ||
95d49800 | 7 | stream-example -t <token> -ts <token_secret> -ck <consumer_key> -cs <consumer_secret> |
640e695c MV |
8 | |
9 | """ | |
10 | ||
11 | from __future__ import print_function | |
12 | ||
95d49800 | 13 | import argparse |
640e695c | 14 | |
95d49800 AD |
15 | from twitter.stream import TwitterStream |
16 | from twitter.oauth import OAuth | |
17 | from twitter.util import printNicely | |
640e695c | 18 | |
640e695c | 19 | |
95d49800 AD |
20 | def parse_arguments(): |
21 | ||
22 | parser = argparse.ArgumentParser() | |
23 | ||
24 | parser.add_argument('-t', '--token', help='The Twitter Access Token.') | |
25 | parser.add_argument('-ts', '--token_secret', help='The Twitter Access Token Secret.') | |
26 | parser.add_argument('-ck', '--consumer_key', help='The Twitter Consumer Key.') | |
27 | parser.add_argument('-cs', '--consumer_secret', help='The Twitter Consumer Secret.') | |
7333aa5a AD |
28 | parser.add_argument('-us', '--user_stream', action='store_true', help='Connect to the user stream endpoint.') |
29 | parser.add_argument('-ss', '--site_stream', action='store_true', help='Connect to the site stream endpoint.') | |
95d49800 AD |
30 | |
31 | return parser.parse_args() | |
32 | ||
95d49800 | 33 | def main(): |
95d49800 AD |
34 | args = parse_arguments() |
35 | ||
12f26468 MV |
36 | if not all((args.token, args.token_secret, args.consumer_key, args.consumer_secret)): |
37 | print(__doc__) | |
38 | return 2 | |
39 | ||
95d49800 | 40 | # When using twitter stream you must authorize. |
7333aa5a AD |
41 | auth = OAuth(args.token, args.token_secret, args.consumer_key, args.consumer_secret) |
42 | if args.user_stream: | |
43 | stream = TwitterStream(auth=auth, domain='userstream.twitter.com') | |
44 | tweet_iter = stream.user() | |
45 | elif args.site_stream: | |
46 | stream = TwitterStream(auth=auth, domain='sitestream.twitter.com') | |
47 | tweet_iter = stream.site() | |
48 | else: | |
b01fa3f8 | 49 | stream = TwitterStream(auth=auth, timeout=60.0) |
7333aa5a | 50 | tweet_iter = stream.statuses.sample() |
640e695c MV |
51 | |
52 | # Iterate over the sample stream. | |
640e695c MV |
53 | for tweet in tweet_iter: |
54 | # You must test that your tweet has text. It might be a delete | |
55 | # or data message. | |
56 | if tweet.get('text'): | |
57 | printNicely(tweet['text']) | |
95d49800 | 58 | |
95d49800 AD |
59 | if __name__ == '__main__': |
60 | main() |