def setup_user(cls, request_key): from dropbox.client import DropboxClient request_token = OAuthRequestToken.get(request_key) session = cls.get_session() session.obtain_access_token(request_token) client = DropboxClient(session) account_info = client.account_info() uid = str(account_info['uid']) q = DropboxUser.all().filter('uid = ', uid) if q.count() == 0: user = DropboxUser(uid=uid, email=account_info['email'], display_name=account_info['display_name'], access_key=session.token.key, access_secret=session.token.secret, country=account_info['country']) else: user = q.get() user.email = account_info['email'] user.display_name = account_info['display_name'] user.access_key = session.token.key user.access_secret = session.token.secret user.put_pending_away(_save=False) user.country = account_info['country'] user.put() OAuthRequestToken.delete(request_key) return user