From d1b22da9cd0822bbcdb038690838b06df5276f91 Mon Sep 17 00:00:00 2001 From: "itdrui.de" Date: Mon, 23 Feb 2026 20:52:55 +0100 Subject: [PATCH] updates: read installed version from addon.xml on disk --- addon/default.py | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/addon/default.py b/addon/default.py index 4ada12a..9e33fce 100644 --- a/addon/default.py +++ b/addon/default.py @@ -1283,14 +1283,32 @@ def _settings_key_for_plugin(name: str) -> str: return f"update_version_{safe}" if safe else "update_version_unknown" +def _installed_addon_version_from_disk() -> str: + if xbmcvfs is None: + return "0.0.0" + try: + addon_xml = xbmcvfs.translatePath(f"special://home/addons/{UPDATE_ADDON_ID}/addon.xml") + except Exception: + return "0.0.0" + if not addon_xml or not os.path.exists(addon_xml): + return "0.0.0" + try: + root = ET.parse(addon_xml).getroot() + version = str(root.attrib.get("version") or "").strip() + return version or "0.0.0" + except Exception: + return "0.0.0" + + def _sync_update_version_settings() -> None: - addon = _get_addon() - addon_version = "0.0.0" - if addon is not None: - try: - addon_version = str(addon.getAddonInfo("version") or "0.0.0") - except Exception: - addon_version = "0.0.0" + addon_version = _installed_addon_version_from_disk() + if addon_version == "0.0.0": + addon = _get_addon() + if addon is not None: + try: + addon_version = str(addon.getAddonInfo("version") or "0.0.0") + except Exception: + addon_version = "0.0.0" _set_setting_string("update_version_addon", addon_version) _set_setting_string("update_installed_version", addon_version)