diff --git a/main.py b/main.py index ae4d362..cb76ed2 100644 --- a/main.py +++ b/main.py @@ -56,7 +56,7 @@ def index(): commit = info['commit'] if commit != latestVersion(branch): print("New version available",flush=True) - plugins += render_template('components/dashboard-plugin.html', name='Update', output='New version available') + plugins += render_template('components/dashboard-alert.html', name='Update', output='A new version of FireWallet is available') return render_template("index.html", account=account, plugins=plugins) diff --git a/plugin.py b/plugin.py index bc2dd9c..b162a6e 100644 --- a/plugin.py +++ b/plugin.py @@ -6,12 +6,19 @@ import hashlib import subprocess +def import_module(module_name): + if module_name in sys.modules: + return importlib.reload(sys.modules[module_name]) + else: + return importlib.import_module(module_name) + + def listPlugins(update=False): plugins = [] for file in os.listdir("plugins"): if file.endswith(".py"): if file != "main.py": - plugin = importlib.import_module("plugins."+file[:-3]) + plugin = import_module("plugins."+file[:-3]) if "info" not in dir(plugin): continue details = plugin.info @@ -42,7 +49,7 @@ def listPlugins(update=False): for file in os.listdir(f"customPlugins/{importPath}"): if file.endswith(".py"): if file != "main.py": - plugin = importlib.import_module(f"customPlugins.{importPath}."+file[:-3]) + plugin = import_module(f"customPlugins.{importPath}."+file[:-3]) if "info" not in dir(plugin): continue details = plugin.info @@ -106,7 +113,7 @@ def hashPlugin(plugin: str): def getPluginData(pluginStr: str): - plugin = importlib.import_module(pluginStr.replace("/",".")) + plugin = import_module(pluginStr.replace("/",".")) # Check if the plugin is verified signatures = [] @@ -141,12 +148,12 @@ def getPluginData(pluginStr: str): def getPluginFunctions(plugin: str): - plugin = importlib.import_module(plugin.replace("/",".")) + plugin = import_module(plugin.replace("/",".")) return plugin.functions def runPluginFunction(plugin: str, function: str, params: dict, authentication: str): - plugin_module = importlib.import_module(plugin.replace("/",".")) + plugin_module = import_module(plugin.replace("/",".")) if function not in plugin_module.functions: return {"error": "Function not found"} @@ -182,12 +189,12 @@ def runPluginFunction(plugin: str, function: str, params: dict, authentication: def getPluginFunctionInputs(plugin: str, function: str): - plugin = importlib.import_module(plugin.replace("/",".")) + plugin = import_module(plugin.replace("/",".")) return plugin.functions[function]["params"] def getPluginFunctionReturns(plugin: str, function: str): - plugin = importlib.import_module(plugin.replace("/",".")) + plugin = import_module(plugin.replace("/",".")) return plugin.functions[function]["returns"] diff --git a/templates/components/dashboard-alert.html b/templates/components/dashboard-alert.html new file mode 100644 index 0000000..12aeb15 --- /dev/null +++ b/templates/components/dashboard-alert.html @@ -0,0 +1,8 @@ +
+
+
+
{{name}}
+
{{output | safe}}
+
+
+
\ No newline at end of file