diff --git a/comicapi/metadata/comet.py b/comicapi/metadata/comet.py index e87616b..d8b67e7 100644 --- a/comicapi/metadata/comet.py +++ b/comicapi/metadata/comet.py @@ -119,10 +119,13 @@ class CoMet(Metadata): def set_metadata(self, metadata: GenericMetadata, archive: Archiver) -> bool: if self.supports_metadata(archive): success = True + xml = b"" + if self.has_metadata(archive): + xml = archive.read_file(self.file) if self.file != self.comet_filename: success = self.remove_metadata(archive) - xml = self._bytes_from_metadata(metadata, archive.read_file(self.comet_filename)) - return success and archive.write_file(self.comet_filename, xml) + + return success and archive.write_file(self.comet_filename, self._bytes_from_metadata(metadata, xml)) else: logger.warning(f"Archive ({archive.name()}) does not support {self.name()} metadata") return False diff --git a/comicapi/metadata/comicrack.py b/comicapi/metadata/comicrack.py index e1faca0..7fea529 100644 --- a/comicapi/metadata/comicrack.py +++ b/comicapi/metadata/comicrack.py @@ -118,7 +118,10 @@ class ComicRack(Metadata): def set_metadata(self, metadata: GenericMetadata, archive: Archiver) -> bool: if self.supports_metadata(archive): - return archive.write_file(self.file, self._bytes_from_metadata(metadata, archive.read_file(self.file))) + xml = b"" + if self.has_metadata(archive): + xml = archive.read_file(self.file) + return archive.write_file(self.file, self._bytes_from_metadata(metadata, xml)) else: logger.warning(f"Archive ({archive.name()}) does not support {self.name()} metadata") return False