Style changes, switch to oauth

This commit is contained in:
2015-07-20 22:51:51 -07:00
parent b89ffc238e
commit b166650271
3 changed files with 42 additions and 8 deletions

3
.gitignore vendored
View File

@@ -1,5 +1,6 @@
*.swp
*.pyc
.config
.oauth
secrets.py
urwid-src

View File

@@ -1,18 +1,45 @@
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import os
import sys
import json
import urwid
import asana
import ui
from secrets import CLIENT_ID, CLIENT_SECRET
class CmdAsana:
ASANA_API_KEY = os.environ['ASANA_API_KEY']
def __init__(self):
self.client = asana.Client.basic_auth(self.ASANA_API_KEY)
try:
f = open(".oauth", "r")
token = json.loads(f.readline())
f.close()
self.client = asana.Client.oauth(
client_id=CLIENT_ID,
token=token
)
except IOError:
self.client = asana.Client.oauth(
client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
redirect_uri='urn:ietf:wg:oauth:2.0:oob'
)
(url, state) = self.client.session.authorization_url()
try:
import webbrowser
webbrowser.open(url)
except Exception:
print "Go to the following link and enter the code:"
print url
code = sys.stdin.readline().strip()
token = self.client.session.fetch_token(code=code)
f = open('.oauth', 'w')
f.write(json.dumps(token))
f.close()
self.me = self.client.users.me()
def myWorkspaces(self):
@@ -105,7 +132,10 @@ class CmdAsana:
workspace_menu = ui.WorkspaceMenu(self.myWorkspaces())
urwid.connect_signal(workspace_menu, 'click', self.showWorkspace)
self.frame = urwid.Pile([('pack', workspace_menu), None])
self.frame = urwid.Pile([
('pack', workspace_menu),
('pack', urwid.AttrMap(urwid.Divider(), 'header divider')),
None])
self.showWorkspace(self.myWorkspaces()[0]['id'])
loop = urwid.MainLoop(self.frame,

9
ui.py
View File

@@ -8,7 +8,10 @@ LIST = 'list'
palette = [
('selected', 'standout', ''),
('selected workspace', 'standout,bold', ''),
('header', 'bold', ''),
('header divider', '', 'dark blue'),
('header', 'bold,dark cyan', ''),
('task', 'dark cyan', 'black'),
('workspace', 'yellow', '')
]
class WorkspaceMenu(urwid.Columns):
@@ -18,7 +21,7 @@ class WorkspaceMenu(urwid.Columns):
for workspace in workspaces:
button = WorkspaceButton(workspace, self.loadWorkspace)
self.contents.append((urwid.AttrMap(button,
None,
'workspace',
focus_map='selected workspace'),
self.options('given', 24)))
def keypress(self, size, key):
@@ -49,7 +52,7 @@ class TaskList(urwid.ListBox):
body = urwid.SimpleFocusListWalker([])
for task_widget,_ in task_widgets.contents:
self.connectSignals(task_widget)
body.append(urwid.AttrMap(task_widget, None, focus_map='selected'))
body.append(urwid.AttrMap(task_widget, 'task', focus_map='selected'))
super(TaskList, self).__init__(body)