Error handling.
This commit is contained in:
46
rtv/main.py
46
rtv/main.py
@@ -1,30 +1,58 @@
|
||||
import argparse
|
||||
import praw
|
||||
from requests.exceptions import ConnectionError
|
||||
|
||||
from errors import SubmissionURLError, SubredditNameError
|
||||
from utils import curses_session
|
||||
from subreddit import SubredditPage
|
||||
from submission import SubmissionPage
|
||||
|
||||
parser = argparse.ArgumentParser(description='Reddit Terminal Viewer')
|
||||
parser.add_argument('-s', dest='subreddit', default='front', help='subreddit name')
|
||||
parser.add_argument('-l', dest='link', help='full link to a specific submission')
|
||||
parser.add_argument('-l', dest='link', help='full link to a submission')
|
||||
group = parser.add_argument_group('authentication (optional)')
|
||||
group.add_argument('-u', dest='username', help='reddit username')
|
||||
group.add_argument('-p', dest='password', help='reddit password')
|
||||
group.add_argument('--debug', action='store_true')
|
||||
|
||||
def main(args):
|
||||
|
||||
reddit = praw.Reddit(user_agent='reddit terminal viewer v0.0')
|
||||
reddit.config.decode_html_entities = True
|
||||
try:
|
||||
reddit = praw.Reddit(user_agent='reddit terminal viewer v0.0')
|
||||
reddit.config.decode_html_entities = True
|
||||
|
||||
if args.username and args.password:
|
||||
reddit.login(args.username, args.password)
|
||||
if args.username and args.password:
|
||||
reddit.login(args.username, args.password)
|
||||
|
||||
with curses_session() as stdscr:
|
||||
with curses_session() as stdscr:
|
||||
|
||||
page = SubredditPage(stdscr, reddit, args.subreddit)
|
||||
page.loop()
|
||||
if args.link:
|
||||
# Go directly to submission
|
||||
page = SubmissionPage(stdscr, reddit, url=args.link)
|
||||
page.loop()
|
||||
|
||||
page = SubredditPage(stdscr, reddit, args.subreddit)
|
||||
page.loop()
|
||||
|
||||
except KeyboardInterrupt:
|
||||
return
|
||||
|
||||
except ConnectionError:
|
||||
print 'Timeout: Could not connect to website'
|
||||
|
||||
except SubmissionURLError as e:
|
||||
print 'Could not reach submission URL: {}'.format(e.url)
|
||||
|
||||
except SubredditNameError as e:
|
||||
print 'Could not reach subreddit: {}'.format(e.name)
|
||||
|
||||
# except Exception:
|
||||
# if not args.debug:
|
||||
# print 'Unhandled exception'
|
||||
# else:
|
||||
# raise
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
args = parser.parse_args()
|
||||
main(args)
|
||||
main(args)
|
||||
|
||||
Reference in New Issue
Block a user