-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathtwitterrail.py
40 lines (35 loc) · 2.01 KB
/
twitterrail.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import argparse
import logging
from time import sleep
from twitterrail.queries import Queries
from twitterrail.railtweeter import RailTweeter
from twitterrail.tweeting import TweeterApi
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='Tweeting about railways')
parser.add_argument('--home', help='Home station CRS (default "THA")', default="THA")
parser.add_argument('--work', help='Work station CRS (default "PAD")', default="PAD")
parser.add_argument('--users', help='Users to DM (comma separated)', default="")
parser.add_argument('--forever', help='Use this switch to run the script forever (once ever 5 mins)', action='store_true', default=False)
parser.add_argument('--rail-key', help='API Key for National Rail', required=True)
parser.add_argument('--consumer-key', help='Consumer Key for Twitter', required=True)
parser.add_argument('--consumer-secret', help='Consumer Secret for Twitter', required=True)
parser.add_argument('--access-token', help='Access Token for Twitter', required=True)
parser.add_argument('--access-token-secret', help='Access Token Secret for Twitter', required=True)
parser.add_argument('--log-level', help='Log level to use. Default=INFO', default="INFO")
args = parser.parse_args()
logger = logging.getLogger("TwitterRail")
streamHandler = logging.StreamHandler()
streamHandler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s'))
logger.setLevel(args.log_level)
logger.addHandler(streamHandler)
twitter = TweeterApi(args.consumer_key, args.consumer_secret, args.access_token, args.access_token_secret)
queries = Queries("http://lite.realtime.nationalrail.co.uk/OpenLDBWS/ldb9.asmx", args.rail_key)
rt = RailTweeter(twitter, queries, home=args.home, work=args.work, users=args.users, logger=logger)
while True:
try:
rt.do_it()
except Exception as e:
logger.exception("I crashed")
if not args.forever:
break
sleep(300)