mirror of
https://github.com/lnbits/lnbits.git
synced 2025-10-10 20:42:32 +02:00
feat: store icon, icon_url and name for installed extensions
This commit is contained in:
@@ -76,26 +76,29 @@ async def extensions_install(
|
|||||||
deactivate: str = Query(None),
|
deactivate: str = Query(None),
|
||||||
):
|
):
|
||||||
try:
|
try:
|
||||||
installed_extensions: List[
|
installed_exts: List["InstallableExtension"] = await get_installed_extensions()
|
||||||
"InstallableExtension"
|
installed_exts_ids = [e.id for e in installed_exts]
|
||||||
] = await get_installed_extensions()
|
|
||||||
installed_extensions_ids = [e.id for e in installed_extensions]
|
|
||||||
|
|
||||||
extension_list: List[
|
installable_exts: List[
|
||||||
InstallableExtension
|
InstallableExtension
|
||||||
] = await InstallableExtension.get_installable_extensions()
|
] = await InstallableExtension.get_installable_extensions()
|
||||||
extension_list += [
|
installable_exts += [
|
||||||
e for e in installed_extensions if e.id not in installed_extensions_ids
|
e for e in installed_exts if e.id not in installed_exts_ids
|
||||||
]
|
]
|
||||||
|
|
||||||
for e in extension_list:
|
for e in installable_exts:
|
||||||
installed_ext = [ie for ie in installed_extensions if e.id == ie.id]
|
installed_ext = [ie for ie in installed_exts if e.id == ie.id]
|
||||||
if len(installed_ext) != 0:
|
if len(installed_ext) != 0:
|
||||||
e.installed_release = installed_ext[0].installed_release
|
e.installed_release = installed_ext[0].installed_release
|
||||||
|
# use the installed extension values
|
||||||
|
e.name = installed_ext[0].name
|
||||||
|
e.short_description = installed_ext[0].short_description
|
||||||
|
e.icon = installed_ext[0].icon
|
||||||
|
e.icon_url = installed_ext[0].icon_url
|
||||||
|
|
||||||
except Exception as ex:
|
except Exception as ex:
|
||||||
logger.warning(ex)
|
logger.warning(ex)
|
||||||
extension_list = []
|
installable_exts = []
|
||||||
|
|
||||||
try:
|
try:
|
||||||
if deactivate:
|
if deactivate:
|
||||||
@@ -123,7 +126,7 @@ async def extensions_install(
|
|||||||
"shortDescription": ext.short_description,
|
"shortDescription": ext.short_description,
|
||||||
"stars": ext.stars,
|
"stars": ext.stars,
|
||||||
"dependencies": ext.dependencies,
|
"dependencies": ext.dependencies,
|
||||||
"isInstalled": ext.id in installed_extensions_ids,
|
"isInstalled": ext.id in installed_exts_ids,
|
||||||
"isAvailable": ext.id in all_extensions,
|
"isAvailable": ext.id in all_extensions,
|
||||||
"isActive": not ext.id in inactive_extensions,
|
"isActive": not ext.id in inactive_extensions,
|
||||||
"latestRelease": dict(ext.latest_release)
|
"latestRelease": dict(ext.latest_release)
|
||||||
@@ -133,7 +136,7 @@ async def extensions_install(
|
|||||||
if ext.installed_release
|
if ext.installed_release
|
||||||
else None,
|
else None,
|
||||||
},
|
},
|
||||||
extension_list,
|
installable_exts,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -236,6 +236,11 @@ class InstallableExtension(BaseModel):
|
|||||||
json.dump(config_json, json_file)
|
json.dump(config_json, json_file)
|
||||||
json_file.truncate()
|
json_file.truncate()
|
||||||
|
|
||||||
|
self.name = config_json.get("name")
|
||||||
|
self.short_description = config_json.get("short_description")
|
||||||
|
self.icon = config_json.get("icon")
|
||||||
|
self.icon_url = config_json.get("tile")
|
||||||
|
|
||||||
shutil.rmtree(self.ext_dir, True)
|
shutil.rmtree(self.ext_dir, True)
|
||||||
shutil.copytree(
|
shutil.copytree(
|
||||||
os.path.join(self.ext_upgrade_dir, self.id),
|
os.path.join(self.ext_upgrade_dir, self.id),
|
||||||
|
Reference in New Issue
Block a user