2014-11-13 03:41:29 +01:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import wx
|
|
|
|
import wxUI as view
|
|
|
|
import paths
|
|
|
|
import time
|
|
|
|
import os
|
2015-01-19 00:19:39 +01:00
|
|
|
import logging
|
2014-11-13 03:41:29 +01:00
|
|
|
import session
|
|
|
|
import manager
|
|
|
|
from config_utils import Configuration
|
2015-01-02 16:55:27 +01:00
|
|
|
import config
|
2014-11-13 03:41:29 +01:00
|
|
|
|
2015-01-19 00:19:39 +01:00
|
|
|
log = logging.getLogger("sessionmanager.sessionManager")
|
|
|
|
|
2014-11-13 03:41:29 +01:00
|
|
|
class sessionManagerController(object):
|
|
|
|
def __init__(self):
|
|
|
|
super(sessionManagerController, self).__init__()
|
2015-01-19 00:19:39 +01:00
|
|
|
log.debug("Setting up the session manager.")
|
2014-11-13 03:41:29 +01:00
|
|
|
manager.setup()
|
|
|
|
|
|
|
|
def fill_list(self):
|
|
|
|
sessionsList = []
|
2015-01-19 00:19:39 +01:00
|
|
|
log.debug("Filling the sessions list.")
|
2014-11-13 03:41:29 +01:00
|
|
|
self.sessions = []
|
|
|
|
for i in os.listdir(paths.config_path()):
|
2015-01-02 16:55:27 +01:00
|
|
|
if os.path.isdir(paths.config_path(i)) and i not in config.app["sessions"]["ignored_sessions"]:
|
2015-01-19 00:19:39 +01:00
|
|
|
log.debug("Adding session %s" % (i,))
|
2014-11-13 03:41:29 +01:00
|
|
|
strconfig = "%s/session.conf" % (paths.config_path(i))
|
|
|
|
config_test = Configuration(strconfig)
|
|
|
|
name = config_test["twitter"]["user_name"]
|
|
|
|
if name != "" and config_test["twitter"]["user_key"] != "" and config_test["twitter"]["user_secret"] != "":
|
|
|
|
sessionsList.append(name)
|
|
|
|
self.sessions.append(i)
|
2015-01-19 00:19:39 +01:00
|
|
|
else:
|
|
|
|
log.debug("Ignoring session %s" % (i,))
|
2014-11-13 03:41:29 +01:00
|
|
|
if hasattr(self, "view"): self.view.fill_list(sessionsList)
|
|
|
|
|
|
|
|
def show(self):
|
|
|
|
self.view = view.sessionManagerWindow(self)
|
|
|
|
if self.view.ShowModal() == wx.ID_CANCEL:
|
|
|
|
self.view.Destroy()
|
|
|
|
|
|
|
|
def do_ok(self):
|
2015-01-19 00:19:39 +01:00
|
|
|
log.debug("Starting sessions...")
|
2014-11-13 03:41:29 +01:00
|
|
|
for i in self.sessions:
|
|
|
|
s = session.Session(i)
|
|
|
|
s.get_configuration()
|
|
|
|
s.login()
|
|
|
|
session.sessions[i] = s
|
|
|
|
|
|
|
|
def manage_new_account(self):
|
|
|
|
location = (str(time.time())[:6])
|
2015-01-19 00:19:39 +01:00
|
|
|
log.debug("Creating session in the %s path" % (location,))
|
2014-11-13 03:41:29 +01:00
|
|
|
s = session.Session(location)
|
|
|
|
manager.manager.add_session(location)
|
|
|
|
s.get_configuration()
|
|
|
|
try:
|
|
|
|
s.authorise()
|
|
|
|
self.sessions.append(location)
|
|
|
|
self.view.add_new_session_to_list()
|
|
|
|
except:
|
2015-01-19 00:19:39 +01:00
|
|
|
log.exception("Error authorising the session")
|
2014-11-13 03:41:29 +01:00
|
|
|
self.view.show_unauthorised_error()
|
|
|
|
return
|