Cleaned up user login.
This commit is contained in:
56
rtv/page.py
56
rtv/page.py
@@ -230,39 +230,38 @@ class BasePage(object):
|
|||||||
@BaseController.register('u')
|
@BaseController.register('u')
|
||||||
def login(self):
|
def login(self):
|
||||||
"""
|
"""
|
||||||
Prompt to log out if logged in.
|
Prompt to log into the user's account. Log out if the user is already
|
||||||
Prompt to log in if looged out.
|
logged in.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if self.reddit.is_logged_in():
|
if self.reddit.is_logged_in():
|
||||||
ch = show_notification(self.stdscr, ["Log out? (y/N)"])
|
self.logout()
|
||||||
|
return
|
||||||
|
|
||||||
if ch == 121: # 'y'
|
username = self.prompt_input('Enter username:')
|
||||||
self.reddit.clear_authentication()
|
password = self.prompt_input('Enter password:', hide=True)
|
||||||
show_notification(self.stdscr,
|
if not username or not password:
|
||||||
['Logged out'])
|
curses.flash()
|
||||||
else:
|
return
|
||||||
curses.flash()
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.reddit.login(username, password)
|
||||||
|
except praw.errors.InvalidUserPass:
|
||||||
|
show_notification(self.stdscr, ['Invalid user/pass'])
|
||||||
else:
|
else:
|
||||||
username = self.prompt_input('Enter username: ')
|
show_notification(self.stdscr, ['Logged in'])
|
||||||
password = self.prompt_input('Enter password: ', hide=True)
|
|
||||||
|
|
||||||
if (username == '' or username is None) \
|
def logout(self):
|
||||||
or (password == '' or password is None):
|
"""
|
||||||
curses.flash()
|
Prompt to log out of the user's account.
|
||||||
return
|
"""
|
||||||
|
|
||||||
try:
|
ch = self.prompt_input("Log out? (y/n):")
|
||||||
self.reddit.login(username, password)
|
if ch == 'y':
|
||||||
except praw.errors.InvalidUserPass:
|
self.reddit.clear_authentication()
|
||||||
show_notification(self.stdscr,
|
show_notification(self.stdscr, ['Logged out'])
|
||||||
['Invalid password for username: {}'.format(username)])
|
elif ch != 'n':
|
||||||
else:
|
curses.flash()
|
||||||
show_notification(self.stdscr,
|
|
||||||
['Successfully logged in as: {}'.format(username)])
|
|
||||||
|
|
||||||
return
|
|
||||||
|
|
||||||
def prompt_input(self, prompt, hide=False):
|
def prompt_input(self, prompt, hide=False):
|
||||||
"""Prompt the user for input"""
|
"""Prompt the user for input"""
|
||||||
@@ -270,16 +269,15 @@ class BasePage(object):
|
|||||||
n_rows, n_cols = self.stdscr.getmaxyx()
|
n_rows, n_cols = self.stdscr.getmaxyx()
|
||||||
|
|
||||||
if hide:
|
if hide:
|
||||||
self.stdscr.addstr(n_rows - 1, 0, prompt+' '*(n_cols-1-len(prompt)),
|
prompt += ' ' * (n_cols - len(prompt) - 1)
|
||||||
attr)
|
self.stdscr.addstr(n_rows-1, 0, prompt, attr)
|
||||||
out = self.stdscr.getstr(n_rows-1, 1)
|
out = self.stdscr.getstr(n_rows-1, 1)
|
||||||
else:
|
else:
|
||||||
self.stdscr.addstr(n_rows - 1, 0, prompt, attr)
|
self.stdscr.addstr(n_rows - 1, 0, prompt, attr)
|
||||||
self.stdscr.refresh()
|
self.stdscr.refresh()
|
||||||
window = self.stdscr.derwin(1, n_cols - len(prompt),
|
window = self.stdscr.derwin(1, n_cols - len(prompt),
|
||||||
n_rows - 1, len(prompt))
|
n_rows - 1, len(prompt))
|
||||||
window.attrset(attr)
|
window.attrset(attr)
|
||||||
|
|
||||||
out = text_input(window)
|
out = text_input(window)
|
||||||
|
|
||||||
return out
|
return out
|
||||||
|
|||||||
Reference in New Issue
Block a user