More work on the infrastructure for oauth... basic widgets should be in place now
This commit is contained in:
parent
5b4a4d760d
commit
b9fb21c46e
|
@ -3,7 +3,3 @@ debug=0
|
||||||
entries=20
|
entries=20
|
||||||
refreshtime=5
|
refreshtime=5
|
||||||
dbfile=~/.hrafn.db
|
dbfile=~/.hrafn.db
|
||||||
|
|
||||||
[account]
|
|
||||||
username=username
|
|
||||||
password=password
|
|
||||||
|
|
72
hrafn.py
72
hrafn.py
|
@ -46,14 +46,10 @@ class Hrafn():
|
||||||
if config.has_option('global', 'debug') and config.get('global', 'debug') == '1':
|
if config.has_option('global', 'debug') and config.get('global', 'debug') == '1':
|
||||||
debug = True
|
debug = True
|
||||||
|
|
||||||
|
|
||||||
if len(config.sections()) < 2:
|
|
||||||
print "Error: You must define at least one [account] section in " + config_file
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
# Init the glade stuff here, so we don't have a race condition with
|
# Init the glade stuff here, so we don't have a race condition with
|
||||||
# the lists-ready signal
|
# the lists-ready signal
|
||||||
self.init_user_interface('./default.glade')
|
self.init_user_interface('./default.glade')
|
||||||
|
self.first_account_item = None
|
||||||
|
|
||||||
# And init the DB stuff here
|
# And init the DB stuff here
|
||||||
db_file = os.path.expanduser(config.get('global', 'dbfile'))
|
db_file = os.path.expanduser(config.get('global', 'dbfile'))
|
||||||
|
@ -71,19 +67,25 @@ class Hrafn():
|
||||||
# Now set up the accounts and their corresponding APIs
|
# Now set up the accounts and their corresponding APIs
|
||||||
self.accounts = {}
|
self.accounts = {}
|
||||||
for token in self.db['tokens']:
|
for token in self.db['tokens']:
|
||||||
api = CustomApi(token)
|
self.add_account(token)
|
||||||
username = api.username
|
|
||||||
self.accounts[username] = api
|
|
||||||
self.accounts[username].sig_proxy.connect('lists-ready', self.on_lists_ready)
|
|
||||||
|
|
||||||
if not self.db.has_key('active_user'):
|
if not self.db.has_key('active_user'):
|
||||||
self.db['active_user'] = self.accounts.keys()[0]
|
try:
|
||||||
|
self.db['active_user'] = self.accounts.keys()[0]
|
||||||
|
except KeyError:
|
||||||
|
self.db['active_user'] = None
|
||||||
|
|
||||||
|
|
||||||
self.username = self.db['active_user']
|
self.username = self.db['active_user']
|
||||||
self.api = self.accounts[self.username]
|
|
||||||
|
try:
|
||||||
|
self.api = self.accounts[self.username]
|
||||||
|
except KeyError:
|
||||||
|
self.api = None
|
||||||
|
|
||||||
|
|
||||||
if not self.db.has_key('open_tabs'):
|
if not self.db.has_key('open_tabs'):
|
||||||
self.db['open_tabs'] = [(self.username + '/Home', None, False), ('@' + self.username, None, False), (self.username + '/Direct Messages', None, False)]
|
self.db['open_tabs'] = []
|
||||||
|
|
||||||
# refresh_time is in minutes... convert to seconds here
|
# refresh_time is in minutes... convert to seconds here
|
||||||
self.refresh_time *= 60
|
self.refresh_time *= 60
|
||||||
|
@ -121,24 +123,6 @@ class Hrafn():
|
||||||
|
|
||||||
self.context_id = self.status_bar.get_context_id('message')
|
self.context_id = self.status_bar.get_context_id('message')
|
||||||
|
|
||||||
# Add the accounts to the accounts menu
|
|
||||||
# Setup the new sub-menu
|
|
||||||
first_item = None
|
|
||||||
keys =self.accounts.keys()
|
|
||||||
keys.sort()
|
|
||||||
for name in keys:
|
|
||||||
menu_item = gtk.RadioMenuItem(first_item, label=name, use_underline=False)
|
|
||||||
menu_item.set_draw_as_radio(False)
|
|
||||||
if name == self.username:
|
|
||||||
menu_item.set_active(True)
|
|
||||||
|
|
||||||
if first_item is None:
|
|
||||||
first_item = menu_item
|
|
||||||
|
|
||||||
menu_item.connect('activate', self.on_account_changed, name)
|
|
||||||
self.accounts_menu.append(menu_item)
|
|
||||||
menu_item.show()
|
|
||||||
|
|
||||||
# Add debug options to help menu
|
# Add debug options to help menu
|
||||||
if debug:
|
if debug:
|
||||||
menu_item = gtk.MenuItem('debug: Show Threads')
|
menu_item = gtk.MenuItem('debug: Show Threads')
|
||||||
|
@ -559,7 +543,33 @@ class Hrafn():
|
||||||
tokens = self.db['tokens']
|
tokens = self.db['tokens']
|
||||||
tokens.append(token)
|
tokens.append(token)
|
||||||
self.db['tokens'] = tokens
|
self.db['tokens'] = tokens
|
||||||
self.accounts['username'] = api
|
self.add_account(token)
|
||||||
|
|
||||||
|
|
||||||
|
def add_account(self, token):
|
||||||
|
api = CustomApi(token)
|
||||||
|
username = api.username
|
||||||
|
self.accounts[username] = api
|
||||||
|
self.accounts[username].sig_proxy.connect('lists-ready', self.on_lists_ready)
|
||||||
|
|
||||||
|
# Add account's menu item
|
||||||
|
menu_item = gtk.RadioMenuItem(self.first_account_item, label=username, use_underline=False)
|
||||||
|
|
||||||
|
if not self.first_account_item:
|
||||||
|
self.first_account_item = menu_item
|
||||||
|
|
||||||
|
menu_item.set_draw_as_radio(False)
|
||||||
|
if username == self.username:
|
||||||
|
menu_item.set_active(True)
|
||||||
|
|
||||||
|
if first_item is None:
|
||||||
|
first_item = menu_item
|
||||||
|
|
||||||
|
menu_item.connect('activate', self.on_account_changed, name)
|
||||||
|
self.accounts_menu.append(menu_item)
|
||||||
|
menu_item.show()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### end class Hrafn
|
### end class Hrafn
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user