Added exception handling for voting if the user isnt logged in.

This commit is contained in:
Michael Lazar
2015-03-14 01:05:11 -07:00
parent a58d7ef450
commit f61303eae1
2 changed files with 28 additions and 21 deletions

View File

@@ -1,6 +1,8 @@
import curses
from .utils import Color, Symbol
import praw
from .utils import Color, Symbol, display_message
class Navigator(object):
"""
@@ -132,28 +134,32 @@ class BasePage(object):
def upvote(self):
data = self.content.get(self.nav.absolute_index)
if 'likes' not in data:
curses.flash()
elif data['likes']:
data['object'].clear_vote()
data['likes'] = None
else:
data['object'].upvote()
data['likes'] = True
try:
if 'likes' not in data:
pass
elif data['likes']:
data['object'].clear_vote()
data['likes'] = None
else:
data['object'].upvote()
data['likes'] = True
except praw.errors.LoginOrScopeRequired:
display_message(self.stdscr, ['Login to vote'])
def downvote(self):
data = self.content.get(self.nav.absolute_index)
if 'likes' not in data:
curses.flash()
if data['likes'] is False:
data['object'].clear_vote()
data['likes'] = None
else:
data['object'].downvote()
data['likes'] = False
try:
if 'likes' not in data:
pass
if data['likes'] is False:
data['object'].clear_vote()
data['likes'] = None
else:
data['object'].downvote()
data['likes'] = False
except praw.errors.LoginOrScopeRequired:
display_message(self.stdscr, ['Login to vote'])
def draw(self):

View File

@@ -15,7 +15,8 @@ from .errors import EscapePressed
HELP = """
Global Commands
`UP/DOWN` or `j/k` : Scroll to the prev/next item
`r` or `F5` : Refresh the current page
`a/z` : Upvote/downvote the selected item
`r` : Refresh the current page
`q` : Quit the program
`o` : Open the selected item in the default web browser
`?` : Show this help message
@@ -315,4 +316,4 @@ def curses_session():
stdscr.keypad(0)
curses.echo()
curses.nocbreak()
curses.endwin()
curses.endwin()