From 5cc08030ce0aba845fe235c6dfba263200b773af Mon Sep 17 00:00:00 2001 From: Jokob-sk Date: Sat, 19 Aug 2023 15:05:52 +1000 Subject: [PATCH] Optimization and cleanup --- front/php/templates/header.php | 4 +- .../README.md | 0 .../config.json | 0 pialert/database.py | 6 +- pialert/plugin.py | 80 ++++++++++++++++--- 5 files changed, 72 insertions(+), 18 deletions(-) rename front/plugins/{known_template => known_template__ignore}/README.md (100%) rename front/plugins/{known_template => known_template__ignore}/config.json (100%) diff --git a/front/php/templates/header.php b/front/php/templates/header.php index b48f11a9..a0418ea8 100755 --- a/front/php/templates/header.php +++ b/front/php/templates/header.php @@ -253,9 +253,9 @@ if ($ENABLED_DARKMODE === True) {
  • -
  • +
  • diff --git a/front/plugins/known_template/README.md b/front/plugins/known_template__ignore/README.md similarity index 100% rename from front/plugins/known_template/README.md rename to front/plugins/known_template__ignore/README.md diff --git a/front/plugins/known_template/config.json b/front/plugins/known_template__ignore/config.json similarity index 100% rename from front/plugins/known_template/config.json rename to front/plugins/known_template__ignore/config.json diff --git a/pialert/database.py b/pialert/database.py index 90eb504a..14cc4b11 100755 --- a/pialert/database.py +++ b/pialert/database.py @@ -430,7 +430,7 @@ class DB(): #------------------------------------------------------------------------------- def get_table_as_json(self, sqlQuery): - mylog('debug',[ '[Database] - get_table_as_json - Query: ', sqlQuery]) + # mylog('debug',[ '[Database] - get_table_as_json - Query: ', sqlQuery]) try: self.sql.execute(sqlQuery) columnNames = list(map(lambda x: x[0], self.sql.description)) @@ -444,7 +444,7 @@ class DB(): tmp = row_to_json(columnNames, row) result["data"].append(tmp) - mylog('debug',[ '[Database] - get_table_as_json - returning ', len(rows), " rows with columns: ", columnNames]) + # mylog('debug',[ '[Database] - get_table_as_json - returning ', len(rows), " rows with columns: ", columnNames]) return json_struc(result, columnNames) #------------------------------------------------------------------------------- @@ -452,7 +452,7 @@ class DB(): #------------------------------------------------------------------------------- def read(self, query, *args): """check the query and arguments are aligned and are read only""" - mylog('debug',[ '[Database] - Read All: SELECT Query: ', query, " params: ", args]) + # mylog('debug',[ '[Database] - Read All: SELECT Query: ', query, " params: ", args]) try: assert query.count('?') == len(args) assert query.upper().strip().startswith('SELECT') diff --git a/pialert/plugin.py b/pialert/plugin.py index f61ad2bd..c9a228f5 100755 --- a/pialert/plugin.py +++ b/pialert/plugin.py @@ -70,18 +70,23 @@ def run_plugin_scripts(db, runType, pluginsState = None): #------------------------------------------------------------------------------- def get_plugins_configs(): + pluginsList = [] # Create an empty list to store plugin configurations - pluginsList = [] - - # only top level directories required. No need for the loop - # for root, dirs, files in os.walk(pluginsPath): - + # Get a list of top-level directories in the specified pluginsPath dirs = next(os.walk(pluginsPath))[1] - for d in dirs: # Loop over directories, not files - if not d.startswith( "__" ): # ignore __pycache__ - pluginsList.append(json.loads(get_file_content(pluginsPath + "/" + d + '/config.json'))) + + # Loop through each directory (plugin folder) in dirs + for d in dirs: + # Check if the directory name does not start with "__" and does not end with "__ignore" + if not d.startswith("__") and not d.endswith("__ignore"): + # Construct the path to the config.json file within the plugin folder + config_path = os.path.join(pluginsPath, d, "config.json") + + # Load the contents of the config.json file as a JSON object and append it to pluginsList + pluginsList.append(json.loads(get_file_content(config_path))) + + return pluginsList # Return the list of plugin configurations - return pluginsList @@ -227,7 +232,24 @@ def execute_plugin(db, plugin, pluginsState = plugins_state() ): columns = line.split("|") # There has to be always 9 columns if len(columns) == 9: - sqlParams.append((plugin["unique_prefix"], columns[0], columns[1], 'null', columns[2], columns[3], columns[4], columns[5], columns[6], 0, columns[7], 'null', columns[8])) + # Construct a tuple of values to be inserted into the database table. + sqlParams.append( + ( + plugin["unique_prefix"], # "Plugin" column value from the plugin dictionary + columns[0], # "Object_PrimaryID" value from columns list + columns[1], # "Object_SecondaryID" value from columns list + 'null', # Placeholder for "DateTimeCreated" column + columns[2], # "DateTimeChanged" value from columns list + columns[3], # "Watched_Value1" value from columns list + columns[4], # "Watched_Value2" value from columns list + columns[5], # "Watched_Value3" value from columns list + columns[6], # "Watched_Value4" value from columns list + 0, # Placeholder for "Status" column + columns[7], # "Extra" value from columns list + 'null', # Placeholder for "UserData" column + columns[8] # "ForeignKey" value from columns list + ) + ) else: mylog('none', ['[Plugins] Skipped invalid line in the output: ', line]) else: @@ -247,7 +269,24 @@ def execute_plugin(db, plugin, pluginsState = plugins_state() ): for row in arr: # There has to be always 9 columns if len(row) == 9 and (row[0] in ['','null']) == False : - sqlParams.append((plugin["unique_prefix"], row[0], handle_empty(row[1]), 'null', row[2], row[3], row[4], handle_empty(row[5]), handle_empty(row[6]), 0, row[7], 'null', row[8])) + # Construct a tuple of values to be inserted into the database table. + sqlParams.append( + ( + plugin["unique_prefix"], # "Plugin" plugin dictionary + row[0], # "Object_PrimaryID" row + handle_empty(row[1]), # "Object_SecondaryID" column after handling empty values + 'null', # Placeholder "DateTimeCreated" column + row[2], # "DateTimeChanged" row + row[3], # "Watched_Value1" row + row[4], # "Watched_Value2" row + handle_empty(row[5]), # "Watched_Value3" column after handling empty values + handle_empty(row[6]), # "Watched_Value4" column after handling empty values + 0, # Placeholder "Status" column + row[7], # "Extra" row + 'null', # Placeholder "UserData" column + row[8] # "ForeignKey" row + ) + ) else: mylog('none', ['[Plugins] Skipped invalid sql result']) @@ -281,7 +320,22 @@ def execute_plugin(db, plugin, pluginsState = plugins_state() ): for row in arr: # There has to be always 9 columns if len(row) == 9 and (row[0] in ['','null']) == False : - sqlParams.append((plugin["unique_prefix"], row[0], handle_empty(row[1]), 'null', row[2], row[3], row[4], handle_empty(row[5]), handle_empty(row[6]), 0, row[7], 'null', row[8])) + # Create a tuple containing values to be inserted into the database. + # Each value corresponds to a column in the table in the order of the columns. + sqlParams.append( + (plugin["unique_prefix"], # "Plugin" + row[0], # "Object_PrimaryID" + handle_empty(row[1]), # "Object_SecondaryID" + 'null', # "DateTimeCreated" column (null placeholder) + row[2], # "DateTimeChanged" + row[3], # "Watched_Value1" + row[4], # "Watched_Value2" + handle_empty(row[5]), # "Watched_Value3" + handle_empty(row[6]), # "Watched_Value4" + 0, # "Status" column (placeholder) + row[7], # "Extra" + 'null', # "UserData" column (null placeholder) + row[8])) # "ForeignKey" else: mylog('none', ['[Plugins] Skipped invalid sql result']) @@ -484,7 +538,7 @@ def process_plugin_events(db, plugin, pluginsState): # compare hash of the IDs for uniqueness if any(x.idsHash == tmpObject.idsHash for x in pluginObjects): - mylog('debug', ['[Plugins] Found existing object']) + # mylog('debug', ['[Plugins] Found existing object']) pluginEvents[index].status = "exists" index += 1