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

View File

@@ -15,7 +15,8 @@ from .errors import EscapePressed
HELP = """ HELP = """
Global Commands Global Commands
`UP/DOWN` or `j/k` : Scroll to the prev/next item `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 `q` : Quit the program
`o` : Open the selected item in the default web browser `o` : Open the selected item in the default web browser
`?` : Show this help message `?` : Show this help message