def _statusCallback(self, reply: QNetworkReply, error: QNetworkReply.NetworkError = None): url = reply.request().url().toString() prev_statuses = self._statuses.copy() self._statuses[url] = HttpRequestManager.replyIndicatesSuccess(reply, error) if any(self._statuses.values()) != any(prev_statuses.values()): self.internetReachableChanged.emit()
def _uploadFinishedCallback(self, reply: QNetworkReply, error: QNetworkReply.NetworkError = None): if not HttpRequestManager.replyIndicatesSuccess(reply, error): Logger.log("w", "Could not upload backup file: %s", HttpRequestManager.readText(reply)) self.backup_upload_error_message = self.DEFAULT_UPLOAD_ERROR_MESSAGE self._job_done.set()
def _onRestoreRequestCompleted( self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None) -> None: if not HttpRequestManager.replyIndicatesSuccess(reply, error): Logger.warning( "Requesting backup failed, response code %s while trying to connect to %s", reply.attribute(QNetworkRequest.HttpStatusCodeAttribute), reply.url()) self.restore_backup_error_message = self.DEFAULT_ERROR_MESSAGE self._job_done.set() return # We store the file in a temporary path fist to ensure integrity. temporary_backup_file = NamedTemporaryFile(delete=False) with open(temporary_backup_file.name, "wb") as write_backup: app = CuraApplication.getInstance() bytes_read = reply.read(self.DISK_WRITE_BUFFER_SIZE) while bytes_read: write_backup.write(bytes_read) bytes_read = reply.read(self.DISK_WRITE_BUFFER_SIZE) app.processEvents() if not self._verifyMd5Hash(temporary_backup_file.name, self._backup.get("md5_hash", "")): # Don't restore the backup if the MD5 hashes do not match. # This can happen if the download was interrupted. Logger.log( "w", "Remote and local MD5 hashes do not match, not restoring backup." ) self.restore_backup_error_message = self.DEFAULT_ERROR_MESSAGE # Tell Cura to place the backup back in the user data folder. with open(temporary_backup_file.name, "rb") as read_backup: cura_api = CuraApplication.getInstance().getCuraAPI() cura_api.backups.restoreBackup(read_backup.read(), self._backup.get("metadata", {})) self._job_done.set()
def _onDeleteRequestCompleted( reply: QNetworkReply, callable: Callable[[bool], None], error: Optional["QNetworkReply.NetworkError"] = None) -> None: callable(HttpRequestManager.replyIndicatesSuccess(reply, error))
def _onImageLoaded(self, reply: QNetworkReply, error: Optional["QNetworkReply.NetworkError"] = None) -> None: if not HttpRequestManager.replyIndicatesSuccess(reply, error): Logger.warning("Requesting preview image failed, response code {0} while trying to connect to {1}".format( reply.attribute(QNetworkRequest.HttpStatusCodeAttribute), reply.url())) return self.updatePreviewImageData(reply.readAll())