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')
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()
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")
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()
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()