bbspost by shortname

this is very basic for now
This commit is contained in:
SpudGunMan
2024-08-09 23:09:21 -07:00
parent e17999a2d6
commit 35df43b727
2 changed files with 25 additions and 4 deletions
+12 -4
View File
@@ -92,16 +92,16 @@ def auto_response(message, snr, rssi, hop, message_from_id, channel_number, devi
elif "wxc" in message.lower() or "wx" in message.lower():
location = get_node_location(message_from_id, deviceID)
if use_meteo_wxApi and not "wxc" in message.lower() and not use_metric:
logger.debug(f"System: Returning Open-Meteo API for weather imperial")
logger.debug(f"System: Bot Returning Open-Meteo API for weather imperial")
weather = get_wx_meteo(str(location[0]),str(location[1]))
elif use_meteo_wxApi:
logger.debug(f"System: Returning Open-Meteo API for weather metric")
logger.debug(f"System: Bot Returning Open-Meteo API for weather metric")
weather = get_wx_meteo(str(location[0]),str(location[1]),1)
elif not use_meteo_wxApi and "wxc" in message.lower() or use_metric:
logger.debug(f"System: Returning NOAA API for weather metric")
logger.debug(f"System: Bot Returning NOAA API for weather metric")
weather = get_weather(str(location[0]),str(location[1]),1)
else:
logger.debug(f"System: Returning NOAA API for weather imperial")
logger.debug(f"System: Bot Returning NOAA API for weather imperial")
weather = get_weather(str(location[0]),str(location[1]))
bot_response = weather
elif "joke" in message.lower():
@@ -124,6 +124,14 @@ def auto_response(message, snr, rssi, hop, message_from_id, channel_number, devi
elif "@" in message and not "example:" in message:
toNode = message.split("@")[1].split("#")[0]
toNode = toNode.rstrip()
# if toNode is a string look for short name and convert to number
if toNode.isalpha():
toNode = get_num_from_short_name(toNode, deviceID)
if toNode == 0:
bot_response = "Node not found " + message.split("@")[1].split("#")[0] + ", case sensitive!"
return bot_response
else:
logger.debug(f"Bot: bbspost, Node name lookup found: {toNode} for " + message.split("@")[1].split("#")[0])
if "#" in message:
body = message.split("#")[1]
bot_response = bbs_post_dm(toNode, body, message_from_id)
+13
View File
@@ -149,6 +149,19 @@ def get_name_from_number(number, type='long', nodeInt=1):
name = str(decimal_to_hex(number)) # If name not found, use the ID as string
return name
return number
def get_num_from_short_name(short_name, nodeInt=1):
# Get the node number from the short name
logger.debug(f"System: Getting Node Number from Short Name: {short_name} on Device: {nodeInt}")
if nodeInt == 1:
for node in interface1.nodes.values():
if str(short_name) == node['user']['shortName']:
return node['num']
if nodeInt == 2:
for node in interface2.nodes.values():
if str(short_name) == node['user']['shortName']:
return node['num']
return 0
def get_node_list(nodeInt=1):
# Get a list of nodes on the device