From 5df10f0ab91fd9b17d373186e94d4e685ffd6915 Mon Sep 17 00:00:00 2001 From: MarekWo Date: Sun, 1 Mar 2026 17:23:40 +0100 Subject: [PATCH] feat(v2): Expand console router with status, channels, help commands - Add 'status' command: connection, name, battery, contacts count - Add 'channels' command: list configured channels (0-7) - Add 'help' command: list all available commands with descriptions - Update unknown command message to suggest 'help' Co-Authored-By: Claude Opus 4.6 --- app/main.py | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/app/main.py b/app/main.py index 0babf42..c288750 100644 --- a/app/main.py +++ b/app/main.py @@ -236,8 +236,48 @@ def _execute_console_command(args: list) -> str: result = device_manager.send_dm(pubkey, text) return result.get('message', result.get('error', 'Unknown')) + elif cmd == 'status': + connected = device_manager.is_connected + info = device_manager.get_device_info() + name = info.get('name', info.get('adv_name', 'Unknown')) if info else 'Unknown' + bat = device_manager.get_battery() + bat_str = f"{bat.get('voltage', '?')}V" if bat and isinstance(bat, dict) else str(bat) if bat else 'N/A' + contacts_count = len(device_manager.db.get_contacts()) if device_manager.db else 0 + return ( + f"Device Status:\n" + f" Connected: {connected}\n" + f" Name: {name}\n" + f" Battery: {bat_str}\n" + f" Contacts: {contacts_count}" + ) + + elif cmd == 'channels': + lines = [] + for i in range(8): + ch = device_manager.get_channel_info(i) + if ch and ch.get('name'): + lines.append(f" [{i}] {ch['name']}") + if not lines: + return "No channels configured" + return f"Channels ({len(lines)}):\n" + "\n".join(lines) + + elif cmd == 'help': + return ( + "Available commands:\n" + " infos — Device info (firmware, freq, etc.)\n" + " status — Connection status, battery, contacts count\n" + " bat — Battery voltage\n" + " contacts — List all contacts\n" + " channels — List configured channels\n" + " chan — Send channel message\n" + " msg — Send direct message\n" + " advert — Send advertisement\n" + " floodadv — Send flood advertisement\n" + " help — Show this help" + ) + else: - return f"Unknown command: {cmd}\nAvailable: infos, contacts, bat, advert, floodadv, chan, msg" + return f"Unknown command: {cmd}\nType 'help' for available commands." if __name__ == '__main__':