From ecb0cc8647705f7e1f6c62e09f23c6413673d159 Mon Sep 17 00:00:00 2001 From: Peter Bieringer Date: Fri, 19 Jun 2026 06:02:31 +0200 Subject: [PATCH] extend item verification code on commandline --- radicale/item/__init__.py | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/radicale/item/__init__.py b/radicale/item/__init__.py index 565488a1..60d2eccc 100644 --- a/radicale/item/__init__.py +++ b/radicale/item/__init__.py @@ -377,7 +377,38 @@ def verify(file: str, encoding: str): logger.info("Item content (hexdump/lines):\n%s", utils.hexdump_lines(content)) return False else: - logger.info("Verifying item: %s successful", file) + logger.info("Verifying item(vobject/read_components): %s successful", file) + + try: + tag = radicale_item.predict_tag_of_whole_collection(vobject_items) + radicale_item.check_and_sanitize_items(vobject_items, tag=tag) + except Exception as e: + logger.error("Verifying item: %s problem: %s", file, e) + logger.warning("Item content:\n%s", utils.textwrap_str(content)) + return False + else: + logger.info("Verifying item(radicale/check_and_sanitze): %s successful", file) + + vobject_item, = vobject_items + + try: + item = radicale_item.Item(collection_path="verify", vobject_item=vobject_item) + except Exception as e: + logger.error("Verifying item: %s problem: %s", file, e) + logger.warning("Item content:\n%s", utils.textwrap_str(content)) + return False + else: + logger.info("Verifying item(radicale/Item): %s successful", file) + + try: + item.prepare() + except Exception as e: + logger.error("Verifying item: %s problem: %s", file, e) + logger.warning("Item content:\n%s", utils.textwrap_str(content)) + return False + else: + logger.info("Verifying item(radicale/prepare): %s successful", file) + return True