Exemplo n.º 1
0
 def __init__(self):
     APP_KEY = '30pb1xxpccvhfqo'
     APP_SECRET = 'kap2qg8dt2cp7cv'
     ACCESS_TYPE = 'app_folder'
     self.sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)
     request_token = 's8123g2tz0fb73a'
     request_token_secret = 'kwsa9sapz264uq5'
     access_token = 'q6lds714ncu45k3'
     access_token_secret = 'elvc3gmgbw8b99f'
     self.sess.set_request_token(request_token, request_token_secret)
     self.sess.set_token(access_token, access_token_secret)
Exemplo n.º 2
0
def goToLogin(request):
    sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)
    request_token = sess.obtain_request_token()
    request.session['token'] = request_token
    request.session['sess'] = sess
    request.session['LoggedIn'] = False
    url = sess.build_authorize_url(
        request_token, oauth_callback='http://127.0.0.1:8000/homepage/')
    t = get_template('goToLogin.html')
    html = t.render(Context({'url': url, 'MEDIA_URL': MEDIA_URL}))
    return HttpResponse(html)
Exemplo n.º 3
0
def dropbox_sign(request):
    sess = session.DropboxSession(settings.DROPBOX_APP_KEY,
                                  settings.DROPBOX_APP_SECRET,
                                  settings.DROPBOX_ACCESS_TYPE)
    request_token = sess.obtain_request_token()
    url = sess.build_authorize_url(
        request_token, oauth_callback=settings.DROPBOX_AUTHRIZED_CALLBACK_URL)
    print url
    request.session['request_key'] = request_token.key
    request.session['request_secret'] = request_token.secret
    return redirect(url)
Exemplo n.º 4
0
    def GenerateUserAuthorizationURL(self, level=None):
        full = level == "full"
        if full:
            sess = session.DropboxSession(DROPBOX_FULL_APP_KEY,
                                          DROPBOX_FULL_APP_SECRET, "dropbox")
        else:
            sess = session.DropboxSession(DROPBOX_APP_KEY, DROPBOX_APP_SECRET,
                                          "app_folder")

        reqToken = sess.obtain_request_token()
        redis.setex("dropbox:oauth:%s" % reqToken.key, pickle.dumps(reqToken),
                    timedelta(hours=24))
        return sess.build_authorize_url(
            reqToken,
            oauth_callback=WEB_ROOT +
            reverse("oauth_return",
                    kwargs={
                        "service": "dropbox",
                        "level": "full" if full else "normal"
                    }))
Exemplo n.º 5
0
def main(*argv):
    '''
       Usage:  ./get.py /path/to/folder
       or
             ./get.py 
       will save the CaheirDeManip.doc in your current directory
    '''
    if len(argv) > 0:
        sendToThisDir = argv[0]
    else:
        sendToThisDir = '.'

    akey = '5p5o73o3r35uz8g'
    asecret = 'hz7ffxbyqa1pql9'
    atyp = 'dropbox'
    homedir = os.path.expanduser('~')
    rcfile = os.path.join(homedir, '.cahierdemanip')
    sess = session.DropboxSession(akey, asecret, atyp)

    access_token = ''

    if os.path.isfile(rcfile):
        f = open(rcfile, 'r')
        access_token = pickle.load(f)
        sess.set_token(access_token.key, access_token.secret)
    else:
        reqtok = sess.obtain_request_token()
        url = sess.build_authorize_url(reqtok)
        print 'you must authenticate this app. Please click on the following URL.'
        print url
        print 'When you are finished, press Return'
        raw_input()
        try:
            f = open(rcfile, 'w')
            access_token = sess.obtain_access_token(reqtok)
            pickle.dump(access_token, f)
        except:
            print "authentication failed, try again."
            os.remove(rcfile)
            sys.exit(0)

    print 'connecting to account...'
    try:
        cl = client.DropboxClient(sess)
        info = cl.account_info()
        print "linked account:", info['display_name'], info['email']
    except:
        print "authentication failed, try again."
        os.remove(rcfile)
        sys.exit(0)

    print 'downloading Cahier de Manip to', sendToThisDir
    out = open(os.path.join(sendToThisDir, 'CAHIER_DE_MANIP.doc'), 'w')
    out.write(cl.get_file('/cahierdemanip/CAHIER_DE_MANIP.doc').read())
def get_access_token():
    token_str = keychain.get_password('dropbox', app_key)
    if token_str:
        key, secret = pickle.loads(token_str)
        return session.OAuthToken(key, secret)
    request_token = get_request_token()
    sess = session.DropboxSession(app_key, app_secret, access_type)
    access_token = sess.obtain_access_token(request_token)
    token_str = pickle.dumps((access_token.key, access_token.secret))
    keychain.set_password('dropbox', app_key, token_str)
    return access_token
Exemplo n.º 7
0
    def RetrieveAuthorizationToken(self, req, level):
        from tapiriik.services import Service
        tokenKey = req.GET["oauth_token"]

        redis_key = "dropbox:oauth:%s" % tokenKey
        token = redis.get(redis_key)
        assert token
        token = pickle.loads(token)
        redis.delete(redis_key)

        full = level == "full"
        if full:
            sess = session.DropboxSession(DROPBOX_FULL_APP_KEY, DROPBOX_FULL_APP_SECRET, "dropbox")
        else:
            sess = session.DropboxSession(DROPBOX_APP_KEY, DROPBOX_APP_SECRET, "app_folder")

        accessToken = sess.obtain_access_token(token)

        uid = int(req.GET["uid"])  # duh!
        return (uid, {"Key": accessToken.key, "Secret": accessToken.secret, "Full": full})
Exemplo n.º 8
0
    def RetrieveAuthorizationToken(self, req, level):
        from tapiriik.services import Service
        tokenKey = req.GET["oauth_token"]
        token = self.OutstandingReqTokens[tokenKey]
        del self.OutstandingReqTokens[tokenKey]
        full = level == "full"
        if full:
            sess = session.DropboxSession(DROPBOX_FULL_APP_KEY,
                                          DROPBOX_FULL_APP_SECRET, "dropbox")
        else:
            sess = session.DropboxSession(DROPBOX_APP_KEY, DROPBOX_APP_SECRET,
                                          "app_folder")

        accessToken = sess.obtain_access_token(token)

        uid = int(req.GET["uid"])  # duh!
        return (uid, {
            "Key": accessToken.key,
            "Secret": accessToken.secret,
            "Full": full
        })
Exemplo n.º 9
0
def backup_to_dropbox():
    from dropbox import client, session
    from conf import dropbox_access_key, dropbox_secret_key
    from webnotes.utils.backups import new_backup
    from webnotes.utils import get_files_path, get_backups_path
    if not webnotes.conn:
        webnotes.connect()

    sess = session.DropboxSession(dropbox_access_key, dropbox_secret_key,
                                  "app_folder")

    sess.set_token(
        webnotes.conn.get_value("Backup Manager", None, "dropbox_access_key"),
        webnotes.conn.get_value("Backup Manager", None,
                                "dropbox_access_secret"))

    dropbox_client = client.DropboxClient(sess)

    # upload database
    backup = new_backup()
    filename = os.path.join(get_backups_path(),
                            os.path.basename(backup.backup_path_db))
    upload_file_to_dropbox(filename, "/database", dropbox_client)

    webnotes.conn.close()
    response = dropbox_client.metadata("/files")

    # upload files to files folder
    did_not_upload = []
    error_log = []
    path = get_files_path()
    for filename in os.listdir(path):
        filename = cstr(filename)
        if filename in ignore_list:
            continue

        found = False
        filepath = os.path.join(path, filename)
        for file_metadata in response["contents"]:
            if os.path.basename(filepath) == os.path.basename(
                    file_metadata["path"]) and os.stat(
                        filepath).st_size == int(file_metadata["bytes"]):
                found = True
                break
        if not found:
            try:
                upload_file_to_dropbox(filepath, "/files", dropbox_client)
            except Exception:
                did_not_upload.append(filename)
                error_log.append(webnotes.getTraceback())

    webnotes.connect()
    return did_not_upload, list(set(error_log))
Exemplo n.º 10
0
 def get_dropbox_client(self):
     """ Connect and return a Dropbox client object. """
     self.read_token_file()
     sess = session.DropboxSession(self.DBBACKUP_DROPBOX_APP_KEY,
         self.DBBACKUP_DROPBOX_APP_SECRET, self.DBBACKUP_DROPBOX_ACCESS_TYPE)
     # Get existing or new access token and use it for this session
     access_token = self.get_access_token(sess)
     sess.set_token(access_token.key, access_token.secret)
     dropbox = DropboxClient(sess)
     # Test the connection by making call to get account_info
     dropbox.account_info()
     return dropbox
Exemplo n.º 11
0
 def _get_request_token(self):
     console.clear()
     print 'Getting request token...'
     sess = session.DropboxSession(self.app_key, self.app_secret,
                                   self.access_type)
     request_token = sess.obtain_request_token()
     url = sess.build_authorize_url(request_token)
     console.clear()
     v = ui.WebView()
     v.load_url(url)
     v.present()
     v.wait_modal()
     return request_token
Exemplo n.º 12
0
    def initialize_dropbox_client(self):
        """
        Initializes the dropbox connection via a client session, using pre-defined authenticaion keys
        The client is then set within the class attribute.
        Visit dropbox developer website to obtain OAuthentication keys.

        """
        sess = session.DropboxSession(self.dropbox_settings['APP_KEY'], 
                                      self.dropbox_settings['APP_SECRET'], 
                                      self.dropbox_settings['ACCESS_TYPE'])
        sess.set_token(self.dropbox_settings['TOKEN_KEY'], self.dropbox_settings['TOKEN_SECRET'])
        self.dropbox_client = client.DropboxClient(sess)
        disable_warnings()
Exemplo n.º 13
0
    def __init__(self):
        sess = session.DropboxSession(appkeys.DROPBOX['key'], \
                appkeys.DROPBOX['secret'], 'app_folder')
        request_token = sess.obtain_request_token()
        url = sess.build_authorize_url(request_token)
        os.system("xdg-open {0}".format(url))

        print("Press enter when authentication has completed")
        raw_input()

        access_token = sess.obtain_access_token(request_token)
        self.client = client.DropboxClient(sess)
        print("Linked account")
def create_dropbox(config, options):
    APP_KEY = options['apikey']
    APP_SECRET = options['apisecret']
    ACCESS_TYPE = config['dropbox']['access_type']

    sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)

    token = get_token(config, options, sess)

    sess.set_token(*token)
    dropbox = client.DropboxClient(sess)

    return dropbox
Exemplo n.º 15
0
	def __init__(self):
		APP_KEY = private.APP_KEY
		APP_SECRET = private.APP_SECRET
		ACCESS_TYPE = private.ACCESS_TYPE
		sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)
		request_token = sess.obtain_request_token()
		url = sess.build_authorize_url(request_token)
		webbrowser.open_new(url)
		print "Please authorize in the browser. After you're done, press enter."
		raw_input()
		# This will fail if the user didn't visit the above URL and hit 'Allow'
		access_token = sess.obtain_access_token(request_token)
		self.client = client.DropboxClient(sess)
Exemplo n.º 16
0
def get_dropbox_session():
    try:
        from dropbox import session
    except:
        frappe.msgprint(_("Please install dropbox python module"),
                        raise_exception=1)

    if not (frappe.conf.dropbox_access_key or frappe.conf.dropbox_secret_key):
        frappe.throw(_("Please set Dropbox access keys in your site config"))

    sess = session.DropboxSession(frappe.conf.dropbox_access_key,
                                  frappe.conf.dropbox_secret_key, "app_folder")
    return sess
Exemplo n.º 17
0
	def get_dropbox_session(self):
		try:
			from dropbox import session
		except:
			raise Exception(_("Please install dropbox python module"))

		if not (self.app_access_key or self.app_secret_key):
			raise Exception(_("Please set Dropbox access keys in your site config"))

		sess = session.DropboxSession(self.app_access_key,
			self.get_password(fieldname="app_secret_key", raise_exception=False), "app_folder")

		return sess
Exemplo n.º 18
0
def get_dropbox_session():
	try:
		from dropbox import session
	except:
		webnotes.msgprint(_("Please install dropbox python module"), raise_exception=1)
		
	try:
		from conf import dropbox_access_key, dropbox_secret_key
	except ImportError:
		webnotes.msgprint(_("Please set Dropbox access keys in") + " conf.py", 
		raise_exception=True)
	sess = session.DropboxSession(dropbox_access_key, dropbox_secret_key, "app_folder")
	return sess
Exemplo n.º 19
0
    def __init__(self, main_view):
        # Get your app key and secret from the Dropbox developer website
        APP_KEY = DROPBOX_APP_KEY
        APP_SECRET = DROPBOX_APP_SECRET
        ACCESS_TYPE = 'app_folder'

        self.main_view = main_view

        sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)

        token = self.get_access_token(sess)
        sess.set_token(*token)
        self.client = client.DropboxClient(sess)
Exemplo n.º 20
0
    def authenticate_dropbox(self, settings):
        """
        Authenticates the application for the user's Dropbox account.
        """

        db_session = session.DropboxSession(settings['dropbox_api_key'],
                                            settings['dropbox_app_secret'],
                                            settings['dropbox_access_type'])

        token_key, token_secret = self.retrieve_request_token(db_session)
        db_session.set_token(token_key, token_secret)
        self.dropbox_client = client.DropboxClient(db_session)
        self.queue = DropboxSynchronizer(self.dropbox_client).start()
Exemplo n.º 21
0
def dropbox(APP_KEY, APP_SECRET, ACCESS_TYPE, upload_file):
    global client
    sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)
    request_token = sess.obtain_request_token()
    url = sess.build_authorize_url(request_token)

    # Make the user sign in and authorize this token
    open(url, modal=True)
    raw_input('Please press enter to continue')

    # This will fail if the user didn't visit the above URL and hit 'Allow'
    access_token = sess.obtain_access_token(request_token)
    client = client.DropboxClient(sess)
    response = client.put_file('Script Backups' + upload_file, upload_file)
Exemplo n.º 22
0
def dropbox(APP_KEY, APP_SECRET, ACCESS_TYPE, upload_file):
    global client
    sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)
    request_token = sess.obtain_request_token()
    url = sess.build_authorize_url(request_token)

    # Make the user sign in and authorize this token
    webbrowser.open(url, modal=False, stop_when_done=False)
    input()

    # This will fail if the user didn't visit the above URL and hit 'Allow'
    access_token = sess.obtain_access_token(request_token)
    client = client.DropboxClient(sess)
    response = client.put_file(upload_file, upload_file)
Exemplo n.º 23
0
 def __init__(self, conn, server):
     asynchat.async_chat.__init__(self, conn)
     self.buffer = []
     self.set_terminator("\r\n")
     self.authenticated = False
     self.data_channel = None
     self.server = server
     self.out_data_q = None
     self.receiver_callback = None
     # Dropbox client
     self.db_client = None
     self.db_chunk_size = 1024000  # 1mb chunk size for db uploads
     self.session = session.DropboxSession(self.server.dbKey,
                                           self.server.dbSecret, 'dropbox')
Exemplo n.º 24
0
 def login(self):
     serialized_token = open(self.TOKEN_FILE).read()
     if serialized_token.startswith('oauth1:'):
         access_key, access_secret = serialized_token[len('oauth1:'
                                                          ):].split(':', 1)
         sess = session.DropboxSession(self.app_key, self.app_secret)
         sess.set_token(access_key, access_secret)
         self.api_client = client.DropboxClient(sess)
         print "[loaded OAuth 1 access token]"
     elif serialized_token.startswith('oauth2:'):
         access_token = serialized_token[len('oauth2:'):]
         self.api_client = client.DropboxClient(access_token)
         print "[loaded OAuth 2 access token]"
     else:
         raise ("Malformed access token in %r." % (self.TOKEN_FILE, ))
Exemplo n.º 25
0
    def handle_noargs(self, *args, **options):
        sess = session.DropboxSession(DROPBOX.app_key, DROPBOX.app_secret,
                                      DROPBOX.access_type)
        request_token = sess.obtain_request_token()

        url = sess.build_authorize_url(request_token)
        print "Url:", url
        print "Please visit this website and press the 'Allow' button, then hit 'Enter' here."
        raw_input()

        # This will fail if the user didn't visit the above URL and hit 'Allow'
        access_token = sess.obtain_access_token(request_token)

        print "DROPBOX.access_token = '%s'" % access_token.key
        print "DROPBOX.access_secret = '%s'" % access_token.secret
Exemplo n.º 26
0
    def handle_noargs(self, *args, **options):
        sess = session.DropboxSession(CONSUMER_KEY, CONSUMER_SECRET,
                                      ACCESS_TYPE)
        request_token = sess.obtain_request_token()

        url = sess.build_authorize_url(request_token)
        print "Url:", url
        print "Please visit this website and press the 'Allow' button, then hit 'Enter' here."
        raw_input()

        # This will fail if the user didn't visit the above URL and hit 'Allow'
        access_token = sess.obtain_access_token(request_token)

        print "DROPBOX_ACCESS_TOKEN = '%s'" % access_token.key
        print "DROPBOX_ACCESS_TOKEN_SECRET = '%s'" % access_token.secret
Exemplo n.º 27
0
def dbclient():
    # Get your app key and secret from the Dropbox developer website
    sess = session.DropboxSession(DROPBOX_APP_KEY, DROPBOX_APP_SECRET,
                                  access_type)

    token_key, token_secret = readTokenFile()
    if len(token_key) == 0:
        token_key, token_secret = obtainTokens(sess)
        if len(token_key) == 0:
            return None, "Authorization not passed."
    writeTokenFile(token_key, token_secret)
    sess.set_token(token_key, token_secret)
    dbclient = client.DropboxClient(sess)
    if testDropboxClient(dbclient):
        return dbclient, "OK."
    return None, "Problem with authorization. Try again."
Exemplo n.º 28
0
    def do_login_oauth1(self):
        """log in to a Dropbox account"""
        sess = session.DropboxSession(self.app_key, self.app_secret)
        request_token = sess.obtain_request_token()
        authorize_url = sess.build_authorize_url(request_token)
        sys.stdout.write("1. Go to: " + authorize_url + "\n")
        sys.stdout.write(
            "2. Click \"Allow\" (you might have to log in first).\n")
        sys.stdout.write("3. Press ENTER.\n")
        raw_input()

        try:
            access_token = sess.obtain_access_token()
        except rest.ErrorResponse, e:
            self.stdout.write('Error: %s\n' % str(e))
            return
Exemplo n.º 29
0
    def __init__(self,
                 request,
                 key="",
                 secret="",
                 access_type="app_folder",
                 login_url="",
                 on_login_failure=None,
                 ):

        self.request = request
        self.key = key
        self.secret = secret
        self.access_type = access_type
        self.login_url = login_url
        self.on_login_failure = on_login_failure
        self.sess = session.DropboxSession(
            self.key, self.secret, self.access_type)
def dropbox_connect(tokenfile, keyfile):
    """
    Initialize an open connection with the configured dropbox account.
    """
    # Get your app key and secret from the Dropbox developer website
    with open(keyfile, 'r') as mykeys:
        keydata = {k: v for line in mykeys for k, v in line.split()}
        APP_KEY = keydata['app_key']
        APP_SECRET = keydata['app_secret']

    ACCESS_TYPE = 'app_folder'
    with open(tokenfile, 'r') as mytoken:
        TOKEN_KEY, TOKEN_SECRET = mytoken.split('|')

    sess = session.DropboxSession(APP_KEY, APP_SECRET, ACCESS_TYPE)
    sess.set_token(TOKEN_KEY, TOKEN_SECRET)

    return sess