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