10 _moduleLogger = logging.getLogger("gvoice.session")
13 class Session(object):
15 def __init__(self, cookiePath):
16 self._cookiePath = cookiePath
20 self._addressbook = None
21 self._conversations = None
23 def login(self, username, password):
24 self._username = username
25 self._password = password
26 self._backend = backend.GVoiceBackend(self._cookiePath)
27 if not self._backend.is_authed():
28 self._backend.login(self._username, self._password)
34 self._addressbook = None
35 self._conversations = None
37 def is_logged_in(self):
38 if self._backend is None:
39 _moduleLogger.info("No Backend")
41 elif self._backend.is_authed():
45 loggedIn = self._backend.login(self._username, self._password)
46 except RuntimeError, e:
47 _moduleLogger.exception("Re-authenticating and erroring")
52 _moduleLogger.info("Login failed")
59 Login enforcing backend
61 assert self.is_logged_in(), "User not logged in"
65 def addressbook(self):
67 Delay initialized addressbook
69 if self._addressbook is None:
70 _moduleLogger.info("Initializing addressbook")
71 self._addressbook = addressbook.Addressbook(self.backend)
72 return self._addressbook
75 def conversations(self):
77 Delay initialized addressbook
79 if self._conversations is None:
80 _moduleLogger.info("Initializing conversations")
81 self._conversations = conversations.Conversations(self.backend)
82 return self._conversations