Commit Graph

42 Commits

Author SHA1 Message Date
agessaman 7b6ddc97fc Update invalid prefix format message to clarify usage example 2025-09-07 15:49:21 -07:00
agessaman d3ce007eed Fix @ command to only match at beginning of messages 2025-09-07 15:48:52 -07:00
agessaman 69bac5585f Restrict prefix command to beginning of messages only 2025-09-07 15:44:25 -07:00
agessaman 41205fb2f4 added prefix command to check usage of prefixes and list free prefixes 2025-09-07 15:26:01 -07:00
agessaman cb6a319b1b Add random selection to 'prefix free' command 2025-09-07 15:18:18 -07:00
agessaman 226fa8ee76 Fix 'prefix free' command accuracy 2025-09-07 15:16:46 -07:00
agessaman 5e0c937df2 Add 'prefix free' command to list available prefixes 2025-09-07 15:14:35 -07:00
agessaman 39c7aedc05 Make API source dynamic based on configured URL 2025-09-07 15:10:55 -07:00
agessaman 20d59c2452 Improve prefix command response formatting 2025-09-07 15:07:53 -07:00
agessaman f4bddd1ec4 Add database fallback to prefix command
- Prefix command now falls back to local SQLite database when API is unavailable
- Queries repeater_contacts table for repeaters matching prefix pattern
- Uses public_key LIKE 'prefix%' to find repeaters by first two characters
- Only returns active repeaters (is_active = 1)
- Adds device type indicators: (Repeater) or (Room Server)
- Response indicates data source: 'API cache' vs 'local database (offline mode)'
- Updated help text to mention database fallback capability
- Tested with sample data: correctly finds repeaters by prefix
- Provides offline functionality when API is down or network unavailable
- Maintains API-first approach with intelligent fallback
2025-09-07 15:01:10 -07:00
agessaman d695d0177a added prefix command that accesses MeshExplorer with configurable endpoint 2025-09-07 14:57:31 -07:00
agessaman 9cf17e9145 Fix scheduled messages and add debugging 2025-09-07 10:49:12 -07:00
agessaman ef02529a4b make @ command work in public channels 2025-09-07 10:45:43 -07:00
agessaman 5193272b0d Fix @ command to work in public channels 2025-09-07 10:45:12 -07:00
agessaman 40326409b6 Improve ping keyword matching with precise word boundaries 2025-09-06 18:52:21 -07:00
agessaman b17016087b Add sender name to routing info logs 2025-09-06 18:38:38 -07:00
agessaman 1846044e39 Add timezone support for bot operations
- Add timezone configuration to config.ini and config.ini.example
- Update hello_command.py to use configured timezone for time-appropriate greetings
- Add pytz dependency to requirements.txt
- Support standard timezone names (America/New_York, Europe/London, etc.)
- Fallback to system timezone if configured timezone is invalid or empty
- Update core.py create_default_config to include timezone setting
- Time-appropriate greetings now work correctly across different timezones
2025-09-06 13:02:30 -07:00
agessaman 694c5b0e04 attribution v0.1.1 2025-09-06 12:13:13 -07:00
agessaman 054652d73d Move meshcore_protocol.py to docs/local for reference
- Move meshcore_protocol.py to docs/local/ as it's not used by current bot
- Remove from git tracking (file was not referenced by any modules)
- Update README.md to remove protocol troubleshooting reference
- File preserved for potential future reference or development
- Current bot uses official meshcore library instead of custom protocol
2025-09-06 12:10:15 -07:00
agessaman 012fc3e6f9 Remove bot_cli.py from repository
- File was already removed from filesystem
- Now properly removed from git tracking
- Completes the cleanup of outdated CLI functionality
2025-09-06 12:08:13 -07:00
agessaman 6aaabcafb2 Remove outdated bot_cli.py
- Remove bot_cli.py as it was incompatible with current architecture
- CLI was trying to call non-existent methods on MeshCoreBot class
- Add bot_cli.py to .gitignore to prevent future commits
- Update README.md to remove CLI references
- Bot management can be done through config.ini file editing
2025-09-06 12:07:59 -07:00
agessaman 4e1e2a8403 update wording v0.1 2025-09-06 12:03:43 -07:00
agessaman 8c8c50889d Fix scheduler async/await runtime warning
- Convert send_scheduled_message to synchronous wrapper for schedule library
- Add _send_scheduled_message_async for actual async implementation
- Handle event loop creation in scheduler thread
- Fixes RuntimeWarning: coroutine was never awaited
2025-09-06 12:01:47 -07:00
agessaman ebcb89e556 updated bot description language 2025-09-06 11:55:25 -07:00
agessaman 5753e0999d Update create_default_config to match config.ini.example structure 2025-09-06 11:55:02 -07:00
agessaman c21743137c Move tests directory to local docs folder
- Move entire tests/ directory to docs/local/tests/
- Remove all test files from git tracking (20 files removed)
- Add tests/ to .gitignore to prevent future commits of test files
- Tests are development/experimental code not needed for public repository
- Repository is now cleaner and more focused on production code
2025-09-06 11:50:05 -07:00
agessaman 8803070d78 move demo script to tests directory 2025-09-06 11:48:14 -07:00
agessaman be6bb74346 Move internal documentation to local docs folder
- Move MODULAR_STRUCTURE.md, RACE_CONDITION_FIX.md, and REPEATER_MANAGEMENT.md to docs/local/
- Remove these files from git tracking (they were internal development notes)
- Add docs/local/ to .gitignore to prevent future commits of internal docs
- Keep only README.md as the public documentation in the repository
2025-09-06 11:47:17 -07:00
agessaman f47bf87549 Update README.md to be factual and concise
- Remove promotional language and focus on technical details
- Update configuration examples to match actual config.ini structure
- Add accurate list of available commands
- Include proper template variables for keyword responses
- Add architecture section explaining plugin system
- Simplify installation and usage instructions
- Remove outdated protocol examples and focus on current functionality
- Add proper attribution to MeshLink bot by K7MHI Kelly Keeton
2025-09-06 11:46:00 -07:00
agessaman de92fdfdd2 Reorganize API keys under [External_Data] section
- Move n2yo_api_key and airnow_api_key from [Solar_Config] to [External_Data]
- Update code references to use [External_Data] section instead of [Solar_Config]
- Update config.ini.example to match the new organization
- Improve error message to specify the correct config section
- This provides better organization with all external API keys in one place
2025-09-06 11:37:45 -07:00
agessaman 9b74a39872 Remove __pycache__ files from git tracking
- Remove all Python bytecode cache files from git tracking
- These files are automatically generated and should not be committed
- __pycache__/ is already properly excluded in .gitignore
- This cleans up the repository and follows Python best practices
2025-09-06 11:34:49 -07:00
agessaman cf887938ac Clean up channel information logging
- Suppress raw JSON output from meshcore-cli commands during channel fetching
- Make channel logging more concise - only show channel names instead of full data structures
- Redirect stdout temporarily to /dev/null during next_cmd calls to prevent verbose output
- This eliminates the duplicate channel information that was being printed twice
2025-09-06 11:33:05 -07:00
agessaman 04279c7322 Fix remaining errors and clean up print statements
- Remove problematic debug and log command attempts that cause 'Unknown command' errors
- Replace remaining print statement in meshcore_protocol.py with proper logging
- Add explanatory comment about debug mode availability
- This eliminates the ERROR messages seen in the logs during startup
2025-09-06 11:31:02 -07:00
agessaman 2487378233 Fix startup flood advert using meshcore.commands.send_advert()
- Replace next_cmd approach with direct meshcore.commands.send_advert(flood=True)
- Add 2-second delay before sending startup advert to ensure connection is established
- Simplify error handling since send_advert() is more reliable
- Apply same fix to manual advert command for consistency
- This should resolve the issue where flood adverts weren't being sent on startup
2025-09-06 11:29:02 -07:00
agessaman 2206265e10 Update modules with latest development changes
- Enhanced command processing with exclamation mark handling
- Improved message handling and RF data correlation
- Updated repeater management functionality
- Enhanced command implementations across all modules
- Updated database manager and core functionality
- All changes maintain backward compatibility
2025-09-06 11:22:58 -07:00
agessaman e21b26c1cb Replace print statements with proper logging
- Convert debug print statements in meshcore_protocol.py to proper logging
- Add comment explaining print statement in core.py (used during initialization)
- All debug/error messages now use logger instead of print
- Maintains existing logging infrastructure and patterns
- Improves production readiness and debugging capabilities
2025-09-06 11:22:00 -07:00
agessaman fc4e2ea4e4 Update .gitignore and remove tracked database/log files
- Add mctomqtt.py to .gitignore (development utility)
- Add *.db pattern to .gitignore for database files
- Remove mctomqtt.py from git tracking
- Remove meshcore_bot.log from git tracking
- Remove repeater_contacts.db from git tracking

These files should not be committed as they contain:
- Development utilities (mctomqtt.py)
- Runtime logs (meshcore_bot.log)
- User-specific database files (*.db)
2025-09-06 11:20:26 -07:00
agessaman 2e248014ef Remove config.ini from tracking and update config.ini.example
- Remove config.ini from git tracking (already in .gitignore)
- Update config.ini.example with production-ready defaults
- Add missing configuration sections (RF correlation, Weather, Solar_Config)
- Remove API keys and personal information from example
- Set appropriate log levels for production (INFO instead of DEBUG)
- Include all available commands in help text
2025-09-06 11:17:55 -07:00
agessaman 8beede60b1 added aqi command 2025-09-05 22:12:51 -07:00
agessaman a03ee89fb4 Implement repeater manager and enhance logging configuration in MeshCore Bot. Added repeater database path to config, improved command handling for weather commands, and refined logging setup for better output control. Updated command aliases for consistency and enhanced error handling in geocoding. Adjusted weather command to support city and state formats. 2025-09-05 20:32:57 -07:00
agessaman 04b3542411 Enhance configuration and command structure for MeshCore Bot. Added RF data correlation settings in config.ini, implemented a BotTxRateLimiter for transmission control, and refactored command handling to support plugins. Removed obsolete scripts and improved command metadata for better usability. 2025-09-04 18:48:59 -07:00
agessaman 9fa8b02be6 Initial commit: MeshCore Bot project 2025-09-04 15:33:51 -07:00