diff --git a/lnbits/app.py b/lnbits/app.py index c48ea3e2..3f8b1525 100644 --- a/lnbits/app.py +++ b/lnbits/app.py @@ -211,7 +211,7 @@ def register_ext_routes(app: FastAPI, ext: Extension) -> None: logger.trace(f"adding route for extension {ext_module}") - prefix = f"/upgrades/{ext.hash}" if ext.hash != "" else "" + prefix = f"/upgrades/{ext.upgrade_hash}" if ext.upgrade_hash != "" else "" app.include_router(router=ext_route, prefix=prefix) diff --git a/lnbits/core/views/api.py b/lnbits/core/views/api.py index 818be296..e28cdd3c 100644 --- a/lnbits/core/views/api.py +++ b/lnbits/core/views/api.py @@ -756,14 +756,15 @@ async def api_install_extension( # mount routes for the new version core_app_extra.register_new_ext_routes(extension) - if ext_info.module_installed: + if extension.upgrade_hash: ext_info.nofiy_upgrade() except Exception as ex: logger.warning(ex) ext_info.clean_extension_files() raise HTTPException( - status_code=HTTPStatus.INTERNAL_SERVER_ERROR, detail="Failed to install extension." + status_code=HTTPStatus.INTERNAL_SERVER_ERROR, + detail="Failed to install extension.", ) diff --git a/lnbits/extension_manager.py b/lnbits/extension_manager.py index cea31551..f5b1dd32 100644 --- a/lnbits/extension_manager.py +++ b/lnbits/extension_manager.py @@ -30,13 +30,13 @@ class Extension(NamedTuple): hidden: bool = False migration_module: Optional[str] = None db_name: Optional[str] = None - hash: Optional[str] = "" + upgrade_hash: Optional[str] = "" @property def module_name(self): return ( f"lnbits.extensions.{self.code}" - if self.hash == "" + if self.upgrade_hash == "" else f"lnbits.upgrades.{self.code}-{self.hash}.{self.code}" ) @@ -47,7 +47,7 @@ class Extension(NamedTuple): is_valid=True, is_admin_only=False, # todo: is admin only name=ext_info.name, - hash=ext_info.hash if ext_info.module_installed else "", + upgrade_hash=ext_info.hash if ext_info.module_installed else "", ) @@ -301,8 +301,6 @@ class InstallableExtension(BaseModel): def nofiy_upgrade(self) -> None: """Update the list of upgraded extensions. The middleware will perform redirects based on this""" - if not self.hash: - return clean_upgraded_exts = list( filter(