enhance echo

enhance echo
This commit is contained in:
SpudGunMan
2025-09-28 16:28:31 -07:00
parent f9ab6a79d3
commit 6e3d83401f
5 changed files with 38 additions and 7 deletions
+1
View File
@@ -98,6 +98,7 @@ git clone https://github.com/spudgunman/meshing-around
| `whereami` | Returns the address of the sender's location if known |
| `whoami` | Returns details of the node asking, also returned when position exchanged 📍 | ✅ |
| `whois` | Returns details known about node, more data with bbsadmin node | ✅ |
| 'echo' | Echo string back, disabled by default | ✅ |
### Radio Propagation & Weather Forecasting
| Command | Description | |
+2
View File
@@ -98,6 +98,8 @@ dont_retry_disconnect = False
#echo command, will echo back your message as the bot
enableEcho = False
# command will only echo 1:1 if sent on this channel, otherwise it will prepend @yourname
echoChannel = 9
[emergencyHandler]
# enable or disable the emergency response handler
+4 -1
View File
@@ -298,12 +298,15 @@ def handle_motd(message, message_from_id, isDM):
return msg
def handle_echo(message, message_from_id, deviceID, isDM, channel_number):
if "?" in message and isDM:
if "?" in message.lower():
return "echo command returns your message back to you. Example:echo Hello World"
elif "echo " in message.lower():
echo_msg = message.split("echo ")[1]
if echo_msg.strip() == "":
return "Please provide a message to echo back to you. Example:echo Hello World"
if echoChannel and channel_number != echoChannel:
echo_msg = "@" + get_name_from_number(message_from_id, 'short', deviceID) + " " + echo_msg
# return the echo message
return echo_msg
else:
return "Please provide a message to echo back to you. Example:echo Hello World"
+2 -1
View File
@@ -230,7 +230,8 @@ try:
llmReplyToNonCommands = config['general'].getboolean('llmReplyToNonCommands', True)
dont_retry_disconnect = config['general'].getboolean('dont_retry_disconnect', False) # default False, retry on disconnect
favoriteNodeList = config['general'].get('favoriteNodeList', '').split(',')
enableEcho = config['general'].getboolean('enableEcho', False) # default False, undocumented
enableEcho = config['general'].getboolean('enableEcho', False) # default False
echoChannel = config['general'].getint('echoChannel', '9') # default 9, empty string to ignore
# emergency response
emergency_responder_enabled = config['emergencyHandler'].getboolean('enabled', False)
+29 -5
View File
@@ -147,22 +147,44 @@ def handle_ping(message_from_id, deviceID, message, hop, snr, rssi, isDM, chann
return msg
def handle_motd(message):
def handle_motd(message, message_from_id, isDM):
global MOTD
if "$" in message:
isAdmin = False
msg = ""
# check if the message_from_id is in the bbs_admin_list
if bbs_admin_list != ['']:
for admin in bbs_admin_list:
if str(message_from_id) == admin:
isAdmin = True
break
else:
isAdmin = True
# admin help via DM
if "?" in message and isDM and isAdmin:
msg = "Message of the day, set with 'motd $ HelloWorld!'"
elif "?" in message and isDM and not isAdmin:
# non-admin help via DM
msg = "Message of the day"
elif "$" in message and isAdmin:
motd = message.split("$")[1]
MOTD = motd.rstrip()
return "MOTD Set to: " + MOTD
logger.debug(f"System: {message_from_id} changed MOTD: {MOTD}")
msg = "MOTD changed to: " + MOTD
else:
return MOTD
msg = "MOTD: " + MOTD
return msg
def handle_echo(message, message_from_id, deviceID, isDM, channel_number):
if "?" in message and isDM:
if "?" in message.lower() and isDM:
return "echo command returns your message back to you. Example:echo Hello World"
elif "echo " in message.lower():
echo_msg = message.split("echo ")[1]
if echo_msg.strip() == "":
return "Please provide a message to echo back to you. Example:echo Hello World"
if echoChannel and channel_number != echoChannel:
echo_msg = "@" + get_name_from_number(message_from_id, 'short', deviceID) + " " + echo_msg
# return the echo message
return echo_msg
else:
return "Please provide a message to echo back to you. Example:echo Hello World"
@@ -425,6 +447,8 @@ async def start_rx():
logger.debug("System: Celestial Telemetry Enabled")
if motd_enabled:
logger.debug(f"System: MOTD Enabled using {MOTD}")
if enableEcho:
logger.debug(f"System: Echo command Enabled")
if sentry_enabled:
logger.debug(f"System: Sentry Mode Enabled {sentry_radius}m radius reporting to channel:{secure_channel}")
if store_forward_enabled: