Beispiel #1
0
def route_gdrive(sub):
    logger.debug('route_gdrive:%s' % sub)
    if sub == 'token':
        if request.method == 'POST':
            token_name = request.form['token_name']
            logger.debug('token:%s', token_name)
            ret = GDrive.make_token(request.host, name=token_name)
            return str(ret)
    elif sub == 'code':
        code = request.args.get('code')
        if GDrive.save_token(code):
            return u'토큰이 저장되었습니다'
    elif sub == 'start':
        if request.method == 'POST':
            match_rule = request.form['match_rule']
            logger.debug('match_rule:%s', match_rule)
            gdrive = GDrive(match_rule)
            gdrive.start_change_watch()
            pms_global.gdrive_list.append(gdrive)
    elif sub == 'stop':
        for _ in pms_global.gdrive_list:
            _.stop()
        pms_global.gdrive_list = []

    return 'ok'
Beispiel #2
0
 def __init__(self, smartrc_dir=None):
     if smartrc_dir is None:
         smartrc_dir = sys.argv[1]
     super().__init__(smartrc_dir)
     if not self.is_settingfile:
         raise FileNotFoundError("smartrc setting file is not found")
     self.smartrc_pattern = re.compile(r'smartrc.*')
     self.gdrive = GDrive(smartrc_dir=smartrc_dir)
 def __init__(self, smartrc_dir=None):
     if smartrc_dir is None:
         self.SMARTRC_DIR = sys.argv[1]
     else:
         self.SMARTRC_DIR = smartrc_dir
     setting_filename =\
         path.join(self.SMARTRC_DIR, "setting/.smartrc.cfg")
     self.is_settingfile = False
     if path.isfile(setting_filename):
         self.read_setting()
         self.is_settingfile = True
         self.irrpfile = IRRPFile(smartrc_dir=self.SMARTRC_DIR)
         self.gdrive = GDrive(smartrc_dir=self.SMARTRC_DIR)
Beispiel #4
0
    def _download_worker(self, file_id, local_file, mime_type, sleep_delay=1):
        """Download file worker thread."""

        # For moment create new GDrive as http module used by underlying api is
        # not multi-thread aware and also add delay in for google 403 error if more
        # than approx 8 requests a second are made.
        #
        # TO DO: Get rid of delay and GDrive creation for each download.

        try:
            drive = GDrive(self._remote_drive.credentials)
            drive.file_download(file_id, local_file, mime_type)
            time.sleep(sleep_delay)
        except GDriveError as e:
            logging.error(e)
            self._download_errors += 1
Beispiel #5
0
    def __init__(self, credentials, local_upload_path, file_translator):
        """Set attributes, create file observer and start watching it."""
        try:

            self._credentials = credentials
            self._local_upload_path = local_upload_path
            self._remote_upload_folder = os.path.basename(local_upload_path)
            self._file_translator = file_translator

            if not os.path.exists(local_upload_path):
                os.makedirs(local_upload_path)

            self._drive = GDrive(self._credentials)

            # If remote folder does not exist create it off root

            file_query = "(name = '{}') and (not trashed)".format(
                self._remote_upload_folder)

            self._upload_folder = self._drive.file_list(
                query=file_query, file_fields='name, id, parents')

            if len(self._upload_folder) == 0:
                self._drive.folder_create(self._remote_upload_folder)
                self._upload_folder = self._drive.file_list(
                    query=file_query, file_fields='name, id, parents')

            # Create observer and start watching folder

            self._observer = Observer()
            self._observer.schedule(self,
                                    self._local_upload_path,
                                    recursive=False)
            self._observer.start()

        except (Exception, GDriveError) as e:
            logging.error(e)
            raise e
Beispiel #6
0
from gdrive import GDrive

GD = GDrive()
GD.listaArchivos()
# id = GD.crearFolder()
# if(id):
#   print(id)