From 18fa848e47c10ff72485904fb70f172deea94efd Mon Sep 17 00:00:00 2001 From: SpudGunMan Date: Tue, 2 Jul 2024 11:07:26 -0700 Subject: [PATCH] delete message enhancment --- mesh_bot.py | 4 ++-- modules/bbstools.py | 29 +++++++++++++++++++---------- 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/mesh_bot.py b/mesh_bot.py index 9821b65..8e2ca95 100755 --- a/mesh_bot.py +++ b/mesh_bot.py @@ -120,7 +120,7 @@ def auto_response(message, snr, rssi, hop, message_from_id): message = message.split("#")[1] message = message.rstrip() - bot_response = bbs_post_message(subject,message) + bot_response = bbs_post_message(subject,message,message_from_id) else: bot_response = "example: bbspost $subject #message" else: @@ -136,7 +136,7 @@ def auto_response(message, snr, rssi, hop, message_from_id): # Check if the user added a message number to the message if "#" in message: messageID = int(message.split("#")[1]) - bot_response = bbs_delete_message(messageID) + bot_response = bbs_delete_message(messageID, message_from_id) else: bot_response = "Please add a message number ex: bbsdelete #14" else: diff --git a/modules/bbstools.py b/modules/bbstools.py index 202c55c..c57cb07 100644 --- a/modules/bbstools.py +++ b/modules/bbstools.py @@ -5,6 +5,7 @@ import pickle # pip install pickle import os bbs_ban_list = [] # list of banned nodes numbers ex: [2813308004, 4258675309] +bbs_admin_list = [] # list of admin nodes numbers ex: [2813308004, 4258675309] trap_list_bbs = ("bbslist", "bbspost", "bbsread", "bbsdelete", "bbshelp") @@ -47,19 +48,27 @@ def bbs_list_messages(): message_list = message_list[:-1] return message_list -def bbs_delete_message(messageID = 0): +def bbs_delete_message(messageID = 0, fromNode = 0): # delete a message from the bbsdb if messageID > 0: - bbs_messages.pop(messageID - 1) - # reset the messageID - for i in range(len(bbs_messages)): - bbs_messages[i][0] = i + 1 - - return "Msg #" + str(messageID) + " deleted." + # if same user wrote message they can delete it + if fromNode == bbs_messages[messageID - 1][3] or fromNode in bbs_admin_list: + bbs_messages.pop(messageID - 1) + # reset the messageID + for i in range(len(bbs_messages)): + bbs_messages[i][0] = i + 1 + + # save the bbsdb + save_bbsdb() + + return "Msg #" + str(messageID) + " deleted." + else: + print (f"!!System: node {fromNode}, tried to delete a message: {bbs_messages[messageID - 1]} and was dropped.") + return "You are not authorized to delete this message." else: return "Please specify a message number to delete." -def bbs_post_message(subject, message, fromNode = 0): +def bbs_post_message(subject, message, fromNode): # post a message to the bbsdb and assign a messageID messageID = len(bbs_messages) + 1 @@ -70,8 +79,8 @@ def bbs_post_message(subject, message, fromNode = 0): # append the message to the list bbs_messages.append([messageID, subject, message, fromNode]) - print (f"System: NEW Message Posted, subject: {subject}, message: {message}") - + print (f"System: NEW Message Posted, subject: {subject}, message: {message} from {fromNode}") + # save the bbsdb save_bbsdb()