diff --git a/.gitignore b/.gitignore index bfdbdc60..c91528bc 100644 --- a/.gitignore +++ b/.gitignore @@ -89,4 +89,5 @@ ENV/ .ropeproject # Personal load details -config.json \ No newline at end of file +config.json +token.txt \ No newline at end of file diff --git a/pgoapi/auth.py b/pgoapi/auth.py index b7db3497..728ec966 100755 --- a/pgoapi/auth.py +++ b/pgoapi/auth.py @@ -25,40 +25,44 @@ import logging + class Auth: def __init__(self): self.log = logging.getLogger(__name__) - + self._auth_provider = None - + self._login = False self._auth_token = None - + self._ticket_expire = None self._ticket_start = None self._ticket_end = None - + def get_name(self): return self._auth_provider - + def is_login(self): return self._login - + def get_token(self): return self._auth_token - + + def set_token(self, auth_token): + self._auth_token = auth_token + def has_ticket(self): if self._ticket_expire and self._ticket_start and self._ticket_end: return True else: return False - + def set_ticket(self, params): self._ticket_expire, self._ticket_start, self._ticket_end = params - + def get_ticket(self): if self.has_ticket(): return (self._ticket_expire, self._ticket_start, self._ticket_end) else: - return False \ No newline at end of file + return False diff --git a/pgoapi/pgoapi.py b/pgoapi/pgoapi.py index 5d373f29..3d63dd6d 100755 --- a/pgoapi/pgoapi.py +++ b/pgoapi/pgoapi.py @@ -30,7 +30,6 @@ import requests import six -from .utilities import f2i, h2f from pgoapi.rpc_api import RpcApi from pgoapi.auth_ptc import AuthPtc from pgoapi.auth_google import AuthGoogle @@ -127,8 +126,7 @@ def function(**kwargs): else: raise AttributeError - - def login(self, provider, username, password): + def login(self, provider, username, password, auth_token=None): if not isinstance(username, six.string_types) or not isinstance(password, six.string_types): raise AuthException("Username/password not correctly specified") @@ -142,9 +140,17 @@ def login(self, provider, username, password): self.log.debug('Auth provider: %s', provider) - if not self._auth_provider.login(username, password): - self.log.info('Login process failed') - return False + if auth_token is None: + if not self._auth_provider.login(username, password): + self.log.info('Login process failed') + return False + with open("token.txt", "w") as f: + f.write(self._auth_provider.get_token()) + self.log.info('Token saved') + else: + self.log.info('Reuse token') + self._auth_provider._login = True + self._auth_provider.set_token(auth_token) self.log.info('Starting RPC login sequence (app simulation)')