40 lines
1.1 KiB
Python
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
|