def saveFile(name): """ save plugin code. code is provides via http body :param name: the plugin name :return: empty http reponse """ with open("./modules/plugins/" + name + "/__init__.py", "wb") as fo: fo.write(request.get_data()) cbpi.emit_message("PLUGIN %s SAVED" % (name)) return ('', 204)
def createPlugin(name): """ Create a new plugin file :param name: the plugin name :return: empty http response 204 """ if not os.path.exists("./modules/plugins/" + name): os.makedirs("./modules/plugins/" + name) with open("./modules/plugins/" + name + "/__init__.py", "wb") as fo: fo.write("") cbpi.emit_message("PLUGIN %s CREATED" % (name)) return ('', 204) else: cbpi.emit_message("Failed to create plugin %s. Name arlready in use" % (name)) return ('', 500)
def reload(name): """ hot reload plugnin :param name: :return: """ try: if name in cache["modules"]: reload(cache["modules"][name]) cbpi.emit_message("REALOD OF PLUGIN %s SUCCESSFUL" % (name)) return ('', 204) else: cache["modules"][name] = import_module("modules.plugins.%s" % (name)) return ('', 204) except Exception as e: cbpi.emit_message("REALOD OF PLUGIN %s FAILED" % (name)) return json.dumps(e.message)