resolve edge case where get_channel_number() would return zero and the bot would respond in the public channel despite being unconfigured.

This commit is contained in:
agessaman
2025-11-02 16:57:25 -08:00
parent b773dcd0a1
commit ee0ceb667b
2 changed files with 16 additions and 3 deletions
+11 -3
View File
@@ -217,14 +217,22 @@ class ChannelManager:
self.logger.warning(f"Channel {channel_num} not found in cached channels")
return f"Channel{channel_num}"
def get_channel_number(self, channel_name: str) -> int:
"""Get channel number from channel name"""
def get_channel_number(self, channel_name: str) -> Optional[int]:
"""
Get channel number from channel name
Args:
channel_name: The channel name to look up
Returns:
Channel number if found, None if not found (to distinguish from channel 0)
"""
for num, channel_info in self._channels_cache.items():
if channel_info.get('channel_name', '').lower() == channel_name.lower():
return num
self.logger.warning(f"Channel name '{channel_name}' not found in cached channels")
return 0
return None
def get_channel_key(self, channel_num: int) -> str:
"""Get channel encryption key from channel number"""
+5
View File
@@ -283,6 +283,11 @@ class CommandManager:
# Get channel number from channel name
channel_num = self.bot.channel_manager.get_channel_number(channel)
# Check if channel was found (None indicates channel name not found)
if channel_num is None:
self.logger.error(f"Channel '{channel}' not found. Cannot send message.")
return False
self.logger.info(f"Sending channel message to {channel} (channel {channel_num}): {content}")
# Use meshcore-cli send_chan_msg function