Files
cmdasana/ui/auth.py
2017-12-10 22:48:14 -08:00

40 lines
1.1 KiB
Python

import urwid
"""
Input box that accepts OAuth tokens
"""
class TokenEdit(urwid.Edit):
def __init__(self):
urwid.register_signal(TokenEdit, 'TokenEdit-changed')
prompt = ('seondary', u' Authorization Token: ')
super(TokenEdit, self).__init__(prompt, '')
def keypress(self, size, key):
if key == 'enter':
urwid.emit_signal(self, 'TokenEdit-changed', self.edit_text)
else:
return super(TokenEdit, self).keypress(size, key)
class AuthPrompt(object):
def __init__(self, auth_url, callback):
self.callback = callback
token_input = TokenEdit()
urwid.connect_signal(token_input, 'TokenEdit-changed', self.callback)
self.frame = urwid.Filler(urwid.Padding(
urwid.Pile([
urwid.Text('Visit %s and paste the token below.\n' % auth_url),
token_input,
]),
align='center',
width='pack',
left=2,
right=2
))
def callback(self, token):
self.callback(token)
def component(self):
return self.frame