def size(self) -> str: return get_readable_file_size(self.size_raw())
def size(self): return get_readable_file_size(self.__size)
def downloaded(self) -> str: return get_readable_file_size(self.obj.downloadedBytes)
def upload(self, file_name: str): self.is_downloading = False self.is_uploading = True self.__listener.onUploadStarted() file_dir = f"{DOWNLOAD_DIR}{self.__listener.message.message_id}" file_path = f"{file_dir}/{file_name}" size = get_readable_file_size(get_path_size(file_path)) LOGGER.info("Uploading File: " + file_path) self.updater = setInterval(self.update_interval, self._on_upload_progress) if os.path.isfile(file_path): try: mime_type = get_mime_type(file_path) link = self.upload_file(file_path, file_name, mime_type, parent_id) if self.is_cancelled: return if link is None: raise Exception('Upload has been manually cancelled') LOGGER.info("Uploaded To G-Drive: " + file_path) except Exception as e: if isinstance(e, RetryError): LOGGER.info( f"Total Attempts: {e.last_attempt.attempt_number}") err = e.last_attempt.exception() else: err = e LOGGER.error(err) self.__listener.onUploadError(str(err)) return finally: self.updater.cancel() if self.is_cancelled: return else: try: dir_id = self.create_directory( os.path.basename(os.path.abspath(file_name)), parent_id) result = self.upload_dir(file_path, dir_id) if result is None: raise Exception('Upload has been manually cancelled!') link = f"https://drive.google.com/folderview?id={dir_id}" if self.is_cancelled: LOGGER.info("Deleting uploaded data from Drive...") msg = self.deletefile(link) LOGGER.info(f"{msg}") return LOGGER.info("Uploaded To G-Drive: " + file_name) except Exception as e: if isinstance(e, RetryError): LOGGER.info( f"Total Attempts: {e.last_attempt.attempt_number}") err = e.last_attempt.exception() else: err = e LOGGER.error(err) self.__listener.onUploadError(str(err)) return finally: self.updater.cancel() if self.is_cancelled: return files = self.total_files folders = self.total_folders typ = self.typee self.__listener.onUploadComplete(link, size, files, folders, typ) return link
def size(self): return get_readable_file_size(self.torrent_info().size)