mirror of
https://github.com/agessaman/meshcore-bot.git
synced 2026-05-15 03:45:29 +00:00
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:
@@ -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"""
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user