Commit Graph

54 Commits

Author SHA1 Message Date
agessaman d2152fac41 update sports command for baseball to show top/bottom of inning 2025-10-10 22:29:19 -07:00
agessaman aff563f312 fixed stats trigger to only respond to first word 2025-10-09 21:38:44 -07:00
agessaman b067ba42e1 clean up channels command implementation and output 2025-10-08 18:43:52 -07:00
agessaman ae43a53793 added option to geolocate repeaters by their location, used by the prefix command 2025-10-07 17:29:58 -07:00
agessaman 52c7e5fa31 added channel overrides for sports command; updated channels command; added stats command; consolidated t_phrase as a shortcut to test; added scheduled adverts 2025-10-05 16:09:39 -07:00
agessaman 0ced52b2a2 Refactor Path Command to enhance path decoding and response handling 2025-10-04 09:47:40 -07:00
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 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 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 5753e0999d Update create_default_config to match config.ini.example structure 2025-09-06 11:55:02 -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