From ee0ceb667bdbd1baf4e1f77483fb5f785ea98d6a Mon Sep 17 00:00:00 2001 From: agessaman Date: Sun, 2 Nov 2025 16:57:25 -0800 Subject: [PATCH] resolve edge case where get_channel_number() would return zero and the bot would respond in the public channel despite being unconfigured. --- modules/channel_manager.py | 14 +++++++++++--- modules/command_manager.py | 5 +++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/modules/channel_manager.py b/modules/channel_manager.py index a9bb31f..c96a6b7 100644 --- a/modules/channel_manager.py +++ b/modules/channel_manager.py @@ -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""" diff --git a/modules/command_manager.py b/modules/command_manager.py index 8b2a27e..f9b25e8 100644 --- a/modules/command_manager.py +++ b/modules/command_manager.py @@ -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