Beispiel #1
0
 def open_folder(self):
     with Session() as session:
         user = session.query(User).one()
     logger.debug("containing folder is :{}".format(user.folder))
     if validate_containing_folder(user.folder):
         if sys.platform == 'win32':
             os.startfile(user.folder)
         elif sys.platform == 'darwin':
             subprocess.Popen(['open', user.folder])
         else:
             try:
                 subprocess.Popen(['xdg-open', user.folder])
             except OSError:
                 pass
Beispiel #2
0
 def open_folder(self):
     with Session() as session:
         user = session.query(User).one()
     logger.debug("containing folder is :{}".format(user.folder))
     if validate_containing_folder(user.folder):
         if sys.platform == 'win32':
             os.startfile(user.folder)
         elif sys.platform == 'darwin':
             subprocess.Popen(['open', user.folder])
         else:
             try:
                 subprocess.Popen(['xdg-open', user.folder])
             except OSError:
                 pass
 def open_osf_folder(self):
     # fixme: containing folder not being updated.
     import logging
     logging.debug("containing folder is :{}".format(
         self.containing_folder))
     if validate_containing_folder(self.containing_folder):
         if sys.platform == 'win32':
             os.startfile(self.containing_folder)
         elif sys.platform == 'darwin':
             subprocess.Popen(['open', self.containing_folder])
         else:
             try:
                 subprocess.Popen(['xdg-open', self.containing_folder])
             except OSError:
                 raise NotImplementedError
     else:
         AlertHandler.warn('osf folder is not set')
Beispiel #4
0
    def ensure_folder(self, user):
        containing_folder = os.path.dirname(user.folder or '')
        while not validate_containing_folder(containing_folder):
            logger.warning('Invalid containing folder: "{}"'.format(containing_folder))
            res = QFileDialog.getExistingDirectory(caption='Choose where to place OSF folder')
            if not res:
                # Do not accept an empty string (dialog box dismissed without selection)
                # FIXME: This fixes overt errors, but user gets folder picker endlessly until they select a folder
                continue
            else:
                containing_folder = os.path.abspath(res)

        with Session() as session:
            user.folder = os.path.join(containing_folder, 'OSF')
            os.makedirs(user.folder, exist_ok=True)
            session.add(user)
            session.commit()
Beispiel #5
0
    def open_osf_folder(self):
        # fixme: containing folder not being updated.
        import logging

        logging.debug("containing folder is :{}".format(self.containing_folder))
        if validate_containing_folder(self.containing_folder):
            if sys.platform == "win32":
                os.startfile(self.containing_folder)
            elif sys.platform == "darwin":
                subprocess.Popen(["open", self.containing_folder])
            else:
                try:
                    subprocess.Popen(["xdg-open", self.containing_folder])
                except OSError:
                    raise NotImplementedError
        else:
            AlertHandler.warn("osf folder is not set")
Beispiel #6
0
    def start(self):
        logger.debug('Start in main called.')

        try:
            user = session.query(User).filter(User.logged_in).one()
        except MultipleResultsFound:
            session.query(User).delete()
            self.login_signal.emit()
            return
        except NoResultFound:
            self.login_signal.emit()
            return

        try:
            # Simple request to ensure user logged in with valid oauth_token
            user = asyncio.get_event_loop().run_until_complete(
                AuthClient().populate_user_data(user))
        except AuthError as e:
            logging.exception(e.message)
            self.login_signal.emit()

        containing_folder = os.path.dirname(user.osf_local_folder_path)
        while not validate_containing_folder(containing_folder):
            logger.warning(
                'Invalid containing folder: {}'.format(containing_folder))
            AlertHandler.warn(
                'Invalid containing folder. Please choose another.')
            containing_folder = os.path.abspath(
                self.set_containing_folder_initial())

        user.osf_local_folder_path = os.path.join(containing_folder, 'OSF')

        save(session, user)
        self.tray.set_containing_folder(containing_folder)

        if not os.path.isdir(user.osf_local_folder_path):
            os.makedirs(user.osf_local_folder_path)

        self.start_tray_signal.emit()
        logger.debug('starting background worker from main.start')

        self.background_worker = BackgroundWorker()
        self.background_worker.start()
Beispiel #7
0
    def start(self):
        logger.debug('Start in main called.')

        try:
            user = session.query(User).filter(User.logged_in).one()
        except MultipleResultsFound:
            session.query(User).delete()
            self.login_signal.emit()
            return
        except NoResultFound:
            self.login_signal.emit()
            return

        try:
            # Simple request to ensure user logged in with valid oauth_token
            user = asyncio.get_event_loop().run_until_complete(AuthClient().populate_user_data(user))
        except AuthError as e:
            logging.exception(e.message)
            self.login_signal.emit()

        containing_folder = os.path.dirname(user.osf_local_folder_path)
        while not validate_containing_folder(containing_folder):
            logger.warning('Invalid containing folder: {}'.format(containing_folder))
            AlertHandler.warn('Invalid containing folder. Please choose another.')
            containing_folder = os.path.abspath(self.set_containing_folder_initial())

        user.osf_local_folder_path = os.path.join(containing_folder, 'OSF')

        save(session, user)
        self.tray.set_containing_folder(containing_folder)

        if not os.path.isdir(user.osf_local_folder_path):
            os.makedirs(user.osf_local_folder_path)

        self.start_tray_signal.emit()
        logger.debug('starting background worker from main.start')

        self.background_worker = BackgroundWorker()
        self.background_worker.start()