From a70c63edf4d15f94719fde5943985ffc4447db50 Mon Sep 17 00:00:00 2001 From: avollkopf <43980694+avollkopf@users.noreply.github.com> Date: Sat, 1 Apr 2023 14:18:44 +0200 Subject: [PATCH] add http api to retreive only plugin names --- cbpi/controller/plugin_controller.py | 3 ++- cbpi/http_endpoints/http_plugin.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/cbpi/controller/plugin_controller.py b/cbpi/controller/plugin_controller.py index 23da582..6ac1f00 100644 --- a/cbpi/controller/plugin_controller.py +++ b/cbpi/controller/plugin_controller.py @@ -230,7 +230,8 @@ class PluginController(): for key, module in discovered_plugins.items(): try: meta = metadata(key) - result.append(dict(Name=meta["Name"])) + if meta["Name"] != "cbpi4gui": + result.append(dict(Name=meta["Name"])) except Exception as e: logger.error("FAILED to load plugin {} ".format(key)) diff --git a/cbpi/http_endpoints/http_plugin.py b/cbpi/http_endpoints/http_plugin.py index fc3ae2c..9a36beb 100644 --- a/cbpi/http_endpoints/http_plugin.py +++ b/cbpi/http_endpoints/http_plugin.py @@ -86,3 +86,21 @@ class PluginHttpEndpoints: """ plugin_list = await self.cbpi.plugin.load_plugin_list() return web.json_response(plugin_list, dumps=json_dumps) + + @request_mapping(path="/names", method="GET", auth_required=False) + async def list(self, request): + """ + --- + description: Get a list of avialable plugin names + tags: + - Plugin + produces: + - application/json + responses: + "200": + description: successful operation. Return "pong" text + "405": + description: invalid HTTP Method + """ + plugin_names = await self.cbpi.plugin.load_plugin_names() + return web.json_response(plugin_names, dumps=json_dumps)