diff --git a/main.py b/main.py index a75a0b3..2aeb893 100755 --- a/main.py +++ b/main.py @@ -5,6 +5,7 @@ import argparse import ctabus import datetime import os +import socket import re import time import urllib @@ -139,17 +140,7 @@ def show(data, rt_filter=None, _clear=False): print("="*36) -if __name__ == '__main__': - parser = argparse.ArgumentParser(prog='ctabus') - parser.add_argument('-l', '--lucky', action='store_true', - help='picks first result') - parser.add_argument('-p', '--periodic', metavar='SEC', - type=int, help='checks periodically') - parser.add_argument('-r', '--route', default=None) - parser.add_argument('-d', '--direction', default=None) - parser.add_argument('arg', nargs='+', metavar='(stop-id | cross streets)') - args = parser.parse_args() - sys.stderr = open(osp.join(osp.dirname(__file__), 'stderr.log'), 'w') +def main(args): args.arg = ' '.join(args.arg) if not args.arg.isdecimal(): @@ -190,13 +181,27 @@ if __name__ == '__main__': timeout = 1 if args.periodic > timeout: timeout = args.periodic - data = ctabus.get_times(stop_id,timeout=timeout) + data = ctabus.get_times(stop_id, timeout=timeout) e = time.perf_counter() - s if e < args.periodic: time.sleep(args.periodic-e) except KeyboardInterrupt: _done = True - except urllib.error.URLError: + except (urllib.error.URLError, socket.timeout): print("Error fetching times") else: show(data, args.route) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(prog='ctabus') + parser.add_argument('-l', '--lucky', action='store_true', + help='picks first result') + parser.add_argument('-p', '--periodic', metavar='SEC', + type=int, help='checks periodically') + parser.add_argument('-r', '--route', default=None) + parser.add_argument('-d', '--direction', default=None) + parser.add_argument('arg', nargs='+', metavar='(stop-id | cross streets)') + args = parser.parse_args() + sys.stderr = open(osp.join(osp.dirname(__file__), 'stderr.log'), 'w') + main(args)