Added exception handling for voting if the user isnt logged in.
This commit is contained in:
44
rtv/page.py
44
rtv/page.py
@@ -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):
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -315,4 +316,4 @@ def curses_session():
|
|||||||
stdscr.keypad(0)
|
stdscr.keypad(0)
|
||||||
curses.echo()
|
curses.echo()
|
||||||
curses.nocbreak()
|
curses.nocbreak()
|
||||||
curses.endwin()
|
curses.endwin()
|
||||||
|
|||||||
Reference in New Issue
Block a user