def get_auth(self): if self.auth: return self.auth if not self.auth: auth = self.get_saved_auth() if auth: return auth username = raw_input('Google username: '******'https://www.google.com', debug=False) try: auth_response = r.post( CLIENT_LOGIN_URL, { 'accountType': 'GOOGLE', 'Email': username, 'Passwd': password, 'service': PRINT_CLOUD_SERICE_ID, 'source': SOURCE, }, 'application/x-www-form-urlencoded') except rest.REST.RESTException, e: if 'InvalidSecondFactor' in e.msg: raise rest.REST.RESTException( '2-Step', '403', 'You have 2-Step authentication enabled on your ' 'account. \n\nPlease visit ' 'https://www.google.com/accounts/IssuedAuthSubTokens ' 'to generate an application-specific password.') self.set_auth(auth_response['Auth']) return self.auth
def get_auth(self): if self.auth: return self.auth if not self.auth: auth = self.get_saved_auth() if auth: return auth r = rest.REST('https://www.google.com', debug=False) try: auth_response = r.post( CLIENT_LOGIN_URL, { 'accountType': 'GOOGLE', 'Email': self.username, 'Passwd': self.password, 'service': PRINT_CLOUD_SERVICE_ID, 'source': SOURCE, }, 'application/x-www-form-urlencoded') xmpp_response = r.post(CLIENT_LOGIN_URL, { 'accountType': 'GOOGLE', 'Email': self.username, 'Passwd': self.password, 'service': 'mail', 'source': SOURCE, }, 'application/x-www-form-urlencoded') jid = self.username if '@' in self.username else self.username + '@gmail.com' sasl_token = ('\0%s\0%s' % (jid, xmpp_response['Auth'])).encode('base64') file(self.xmpp_auth_path, 'w').write(sasl_token) except rest.REST.RESTException, e: if 'InvalidSecondFactor' in e.msg: raise rest.REST.RESTException( '2-Step', '403', 'You have 2-Step authentication enabled on your ' 'account. \n\nPlease visit ' 'https://www.google.com/accounts/IssuedAuthSubTokens ' 'to generate an application-specific password.' ) else: raise self.set_auth(auth_response['Auth']) return self.auth
def get_rest(self): class check_new_auth(object): def __init__(self, rest): self.rest = rest def __getattr__(in_self, key): attr = getattr(in_self.rest, key) if not attr: raise AttributeError() if not hasattr(attr, '__call__'): return attr def f(*arg, **karg): r = attr(*arg, **karg) if 'update-client-auth' in r.headers: self.set_auth(r.headers['update-client-auth']) return r return f auth = self.get_auth() return check_new_auth(rest.REST('https://www.google.com', auth=auth, debug=False))
def get_auth(self): if self.auth: return self.auth if not self.auth: auth = self.get_saved_auth() if auth: return auth username = raw_input('Google username: '******'https://www.google.com', debug=False) auth_response = r.post( CLIENT_LOGIN_URL, { 'accountType': 'GOOGLE', 'Email': username, 'Passwd': password, 'service': PRINT_CLOUD_SERICE_ID, 'source': SOURCE, }, 'application/x-www-form-urlencoded') self.set_auth(auth_response['Auth']) return self.auth