Skip to content

Commit

Permalink
disable threading from uploader process
Browse files Browse the repository at this point in the history
  • Loading branch information
sdaoudi committed Aug 21, 2023
1 parent 3a3792d commit 9defd3f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 16 deletions.
20 changes: 7 additions & 13 deletions custom_components/gdrive_uploader/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,27 +28,21 @@ def handle_upload(call):
parent_id = call.data.get(ATTR_PARENT_ID)
target_dir_name = call.data.get(ATTR_TARGET_DIR_NAME, "")
gdrive = GDriveApi(secret_file_path)

def do_upload():
"""Upload the file."""
try:
gdrive.upload_file(upload_file_path, parent_id, target_dir_name)
except (FileExistsError, FileNotFoundError) as error:
_LOGGER.error(error)

if not gdrive.resource_exists(parent_id, target_dir_name):
gdrive.create_folder(parent_id, target_dir_name)

threading.Thread(target=do_upload).start()
try:
gdrive.upload_file(upload_file_path, parent_id, target_dir_name)
except (FileExistsError, FileNotFoundError) as error:
_LOGGER.error(error)

def handle_delete(call):
secret_file_path = config.get(DOMAIN, {}).get(CONF_SECRET_FILE_PATH)
parent_id = call.data.get(ATTR_PARENT_ID)
dir_name = call.data.get(ATTR_DIR_NAME)
gdrive = GDriveApi(secret_file_path)
delete_lock = threading.Lock()

def do_delete():
gdrive.delete_directory_by_name(parent_id, dir_name)
with delete_lock:
gdrive.delete_directory_by_name(parent_id, dir_name)

threading.Thread(target=do_delete).start()

Expand Down
8 changes: 5 additions & 3 deletions custom_components/gdrive_uploader/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ def __init__(self, client_secret_file_path: str):
self.drive = GoogleDrive(gauth)

def create_folder(self, parent_folder_id, subfolder_name):
_LOGGER.debug(f"Create folder {subfolder_name} in parent {parent_folder_id}")
new_folder = self.drive.CreateFile(
{
'title': subfolder_name,
Expand Down Expand Up @@ -50,7 +51,10 @@ def resource_exists(self, parent_directory_id, resource_title):
resource_list = self.drive.ListFile({'q': f"'{parent_directory_id}' in parents and trashed=false"}).GetList()
for resource in resource_list:
if(resource['title'] == resource_title):
_LOGGER.debug(f"resource {resource_title} exists in parent {parent_directory_id}")
return True

_LOGGER.debug(f"resource {resource_title} not exists in parent {parent_directory_id}")
return False

def upload_file(self, source_file_path, parent_dir_id, directory_name):
Expand Down Expand Up @@ -87,7 +91,7 @@ def upload_file(self, source_file_path, parent_dir_id, directory_name):

file.SetContentFile(source_file_path)
file.Upload()
_LOGGER.debug(f"A new file is create with id: {file['id']}")
_LOGGER.debug(f"A new file is created with id: {file['id']}")
return file

def delete_directory_by_name(self, parent_dir_id, directory_name):
Expand All @@ -104,5 +108,3 @@ def _delete_resource(self, resource_id):
if file['mimeType'] == 'application/vnd.google-apps.folder':
self._delete_resource(file['id'])
file.Delete()


0 comments on commit 9defd3f

Please sign in to comment.