Commit Graph
60 Commits
Author SHA1 Message Date
agessaman cdcbf7a25b added channels command to share common channels, updated the satpass command to have common shortcuts 2025-10-01 18:43:00 -07:00
agessaman cf46a7b1de Enhance SportsCommand with women's league support and date formatting improvements 2025-09-30 20:48:20 -07:00
agessaman 82ee7fd793 improved zipcode handling in aqi command, improved emoji handling in hello command 2025-09-28 15:20:25 -07:00
agessaman e292b6e040 Update AQI command to use OpenMeteo API and enhance location handling 2025-09-27 12:39:33 -07:00
agessaman 576c93ad06 updates to fix formatting in sports command 2025-09-25 19:20:11 -07:00
agessaman f0b93d80e9 add dice and roll commands, fixed sports command home/away ordering. 2025-09-23 21:18:28 -07:00
agessaman a2a66006ed fix keyword matching 2025-09-21 11:31:52 -07:00
agessaman 025d3d539f Refactor command syntax and enhance test command functionality
- Updated the test command response format to include optional phrases.
- Removed the at_phrase command and its references from the command manager and help command.
- Adjusted configuration examples to reflect the new syntax for message acknowledgments.
- Enhanced the sports command with additional WNBA team support and improved city mappings for team searches.
2025-09-17 21:12:43 -07:00
agessaman 9aaf29a988 Add NWSL team support and enhance soccer score formatting in SportsCommand
- Introduced custom team abbreviations for NWSL teams to differentiate from MLS.
- Added functionality to retrieve city-specific teams and their scores.
- Improved score formatting for soccer games to display home and away teams correctly.
- Updated game status messages to reflect the correct home/away format for soccer.
- Enhanced keyword matching for city searches to return multiple teams.
2025-09-16 18:07:35 -07:00
agessaman d7eab28395 improved repeater purge, implement sports command, and improve message path detection. 2025-09-16 16:36:02 -07:00
agessaman 7445e2ad10 first draft of a sports command using the ESPN endpoints 2025-09-13 13:35:35 -07:00
agessaman be630c00e6 Enhance joke command with length handling and update configuration settings for jokes. Modify help command to support message context for help text retrieval. 2025-09-09 21:28:07 -07:00
agessaman 5d89778ad8 Add joke command settings and enhance weather command keyword matching 2025-09-08 20:13:17 -07:00
agessaman 948828cf30 Add DM retry settings and improve message sending reliability with meshcore-2.1.6+ integration v0.2 2025-09-07 19:52:31 -07:00
agessaman 01d6fc1de6 Fix scheduled messages posting to wrong channel 2025-09-07 17:33:26 -07:00
agessaman dec697b087 Add configurable transmission delay to prevent message collisions 2025-09-07 16:17:09 -07:00
agessaman 845d5fb4b0 Add total count context to 'prefix free' command 2025-09-07 16:08:20 -07:00
agessaman 1ad3472d54 Fix repeater command to only work in DMs and at beginning of messages 2025-09-07 15:55:13 -07:00
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