Commit Graph

  • f4cd1a27e5 Fix issue where bot is sometimes unable to open the database file. agessaman 2025-12-28 09:17:23 -08:00
  • 3cdeae8a0d Implement caching for location name in WeatherService to optimize reverse geocoding agessaman 2025-12-27 10:23:46 -08:00
  • d7f16f31e4 Refactor MQTT connection handling in PacketCaptureService and WeatherService to be non-blocking agessaman 2025-12-27 09:35:34 -08:00
  • 35bc6260a4 Enhance command configuration and logging for joke commands agessaman 2025-12-27 08:21:51 -08:00
  • e62765baf0 add magic8 lincomatic 2025-12-24 16:56:24 -08:00
  • 2395c0765d add elapsed for test command lincomatic 2025-12-24 16:10:26 -08:00
  • b200c3f500 Enhance WxCommand logic for period handling and improve map uploader service memory management agessaman 2025-12-22 23:33:17 -08:00
  • 43c217fb0d Update map uploader service documentation for coordinate validation agessaman 2025-12-22 12:02:56 -08:00
  • 7e80dedb6d Add map uploader configuration and update requirements agessaman 2025-12-22 11:43:25 -08:00
  • c3d3c85f01 Implement service plugin architecture and enhance weather service configuration agessaman 2025-12-22 10:29:43 -08:00
  • 5f65d36d8c added a http internet connection check fallback to http agessaman 2025-12-21 22:19:16 -08:00
  • a2d207b0c5 Add packet capture service documentation to README agessaman 2025-12-21 18:58:44 -08:00
  • d6aec8ce29 Add service plugins configuration and packet capture integration agessaman 2025-12-21 15:44:46 -08:00
  • b1b4aaf612 Merge pull request #20 from agessaman/dev v0.6.1 Adam Gessaman 2025-12-20 15:16:13 -08:00
  • 261e53ae11 clarify timezone instructions by removing quotes agessaman 2025-12-19 14:36:45 -08:00
  • 32929dedad Update CommandManager with internet connectivity checks for commands agessaman 2025-12-17 12:38:54 -08:00
  • f0b4f1e078 Refine command manager logging and enhance weather command alert handling agessaman 2025-12-16 18:28:26 -08:00
  • 399a6b9773 Fixed country counts in WebViewer agessaman 2025-12-13 21:57:25 -08:00
  • f525d2e1d0 Enhance message handling and web viewer with path information support agessaman 2025-12-13 14:41:56 -08:00
  • bdd3a0fd41 Enhance SportsCommand with improved game fetching logic agessaman 2025-12-12 21:15:40 -08:00
  • 4abd6fff69 Update configuration and command handling for prefix settings agessaman 2025-12-11 20:41:31 -08:00
  • 8a1310c0f0 Merge pull request #18 from agessaman/pr16-security-enhancements-dev Adam Gessaman 2025-12-11 19:57:00 -08:00
  • f71970c1c1 Restore Greeter Command configuration to config.ini.example agessaman 2025-12-11 19:42:47 -08:00
  • 4d997afbcc Remove 'repeater_interactions' from the DBManager class whitelist as it isn't used. agessaman 2025-12-09 22:08:40 -08:00
  • d62e63cdb9 Apply code quality improvements to PR16 security enhancements agessaman 2025-12-09 21:44:42 -08:00
  • af8221c778 Apply code quality improvements from review agessaman 2025-12-09 21:27:06 -08:00
  • 095a2fba98 Fix duplicate entry in admin_command Edilson Osorio Jr 2025-12-09 17:26:59 +02:00
  • 8a35dc8270 feat: Add security utilities for path validation, SQL injection prevention, and input sanitization. eddieoz 2025-12-08 23:37:41 +02:00
  • d80d808f02 fixes: add DNS timeout, removed duplicate import, added OS-aware path validation, used centralized validation function for pubkey, made sanitize input length limit configurable, used explicit base directory, added a few type hints. agessaman 2025-12-09 19:58:42 -08:00
  • 3f8ae492f1 Fix duplicate entry in admin_command Edilson Osorio Jr 2025-12-09 17:26:59 +02:00
  • 5a5c29992b feat: Add security utilities for path validation, SQL injection prevention, and input sanitization. eddieoz 2025-12-08 23:37:41 +02:00
  • 7bacd5b485 Implement upgrade mode in install-service.sh for non-destructive updates and enhance channel fetching logic in MessageScheduler to eliminate periodic refresh. The upgrade mode allows users to update files and dependencies without losing existing configurations. Additionally, the channel fetching now occurs only once on launch to prevent data loss during updates. agessaman 2025-12-07 19:40:38 -08:00
  • d446640a50 Enhance channel fetching logic in ChannelManager to include device connectivity checks and implement timeout protection during channel refresh in MessageScheduler. Introduce sender location prioritization in PathCommand and TestCommand for improved repeater selection accuracy. Update logging for better diagnostics on fetch operations and proximity calculations. agessaman 2025-12-07 14:02:14 -08:00
  • cc53ab4268 Refactor proximity selection logic in PathCommand and TestCommand to prioritize bot location for the last repeater. Introduce configurable recency and proximity weights for scoring, enhancing the accuracy of repeater selection. Update logging for better debugging of selection scores. agessaman 2025-12-06 19:38:03 -08:00
  • 36b6746550 Enhance channel management and dark mode styling in web viewer. Update BotDataViewer to dynamically retrieve max channel limits from configuration, improving error messages for channel availability. Implement dark mode styles for modals, tables, and other UI elements across multiple templates, ensuring better contrast and readability. Update JavaScript logic in RadioManager to reflect dynamic channel limits and provide user feedback on available slots. agessaman 2025-12-06 19:03:55 -08:00
  • d52b0f8744 added backup script for the databases, added device time setting to radio connection handler agessaman 2025-12-06 18:27:11 -08:00
  • b34ca9fa07 Implement retry logic for NOAA API calls in WxCommand to enhance resilience against timeouts and transient errors. Reduce URL timeout from 10 to 8 seconds for faster failure detection. Update weather data fetching methods to utilize a retry-enabled session, improving error handling and logging for better diagnostics. agessaman 2025-12-06 16:18:00 -08:00
  • 183976e899 Add dark mode support across web viewer templates. agessaman 2025-12-06 12:35:58 -08:00
  • ff1adf719e Implement bot reply rate calculations for 24-hour, 7-day, and 30-day time windows in the analytics. Update web viewer template to display these new reply rates and adjust JavaScript to handle the updated data structure. agessaman 2025-12-06 10:29:55 -08:00
  • c151fba7a5 Enhance configuration and database management for feed and channel operations. Add channel refresh interval setting to config.ini.example, implement feed manager functionality with new database tables for feed subscriptions and activity tracking, and improve greeter command logic with human greeting detection and Levenshtein distance matching for user greetings. Update web viewer to include feed management pages and integrate global template variables for better user experience. agessaman 2025-12-06 10:18:12 -08:00
  • 67e8f68c1a Update command help translations to remove markdown formatting for a cleaner display across multiple languages. agessaman 2025-12-03 19:30:57 -08:00
  • 236d67e70a update some defaults for a better fresh install experience agessaman 2025-12-03 09:38:17 -08:00
  • 4cc9cc4c9c Implement duplicate greeting cleanup and enhance greeter command logic. Add new API endpoints for greeter management and update web viewer to include greeter statistics. Improve error handling and logging for greeted users, ensuring unique entries in the database. agessaman 2025-12-02 21:15:40 -08:00
  • f08e739152 Merge pull request #15 from agessaman/dev v0.6 Adam Gessaman 2025-12-02 20:09:59 -08:00
  • 99c4dd55e7 Improved success and failure conditions for message delivery, including handling unexpected event types and timeouts. agessaman 2025-12-02 20:01:15 -08:00
  • 3687dde3fd Add response format configuration for multitest command and enhance greeter command rollout logic. Update .gitignore to exclude database write-ahead logs and shared memory files. Improve error handling and logging in greeter command for better tracking of rollout status and user greetings. agessaman 2025-12-02 19:46:32 -08:00
  • 71d157a974 Enhance command execution and analytics features. Update CommandManager to allow DM-only commands in public channels to silently ignore errors if the channel is not configured. Refactor BaseCommand to improve execution checks based on channel permissions. In the web viewer, add time window parameters for analytics in the database stats API, and implement Chart.js for visualizing activity trends over the last 30 days. Update dashboard templates to include time window selectors for top users, commands, paths, and channels, improving user experience and data accessibility. agessaman 2025-11-30 20:04:20 -08:00
  • b1c39edbb8 Add contact deletion functionality to the API and UI. Implement a new endpoint for deleting contacts, including error handling and logging. Update the contacts management interface to include a delete confirmation modal and handle the deletion process, ensuring proper updates to the displayed contact list and statistics. agessaman 2025-11-30 16:37:35 -08:00
  • f40eda8a85 Improve installation and uninstallation scripts. Add user to dialout group for serial port access in install-service.sh, and implement safety features in uninstall-service.sh, including backup options and confirmation prompts for destructive actions. Update error handling and messaging for clarity across both scripts. agessaman 2025-11-27 21:44:38 -08:00
  • 7982cdce4c Add alert command configuration to config.ini.example and README. Update install-service.sh to support macOS and Linux service installations with improved user prompts and error handling. Enhance installation script with detailed steps for setting up the bot as a system service, including virtual environment creation and dependency installation. agessaman 2025-11-27 21:07:08 -08:00
  • 6de424f894 Refactor geocoding methods in commands to utilize shared utility functions for improved consistency and efficiency. Introduce geocode_zipcode_sync and geocode_city_sync for streamlined location retrieval, enhancing error handling and caching mechanisms. Update AQI, solar forecast, and weather commands to leverage these new methods, reducing code duplication and improving maintainability. agessaman 2025-11-26 15:29:37 -08:00
  • 92f063b4bc Add Nominatim rate limiting and caching enhancements across commands. Introduce NominatimRateLimiter for API compliance, update geocoding methods to utilize rate-limited calls, and extend caching duration for geocoding results to 30 days. Refactor command implementations to improve efficiency and prevent duplicate API requests. agessaman 2025-11-26 14:34:45 -08:00
  • a6d2065379 Enhance command execution logic in CommandManager by adding channel access checks and improved error handling for message sending. Commands that cannot execute due to channel restrictions or cooldowns are now skipped. Additionally, refine error logging to differentiate between timeout warnings and actual failures when sending messages. agessaman 2025-11-26 08:38:56 -08:00
  • e0347edf08 Implement score extraction methods in SportsCommand for consistent score formatting and enhance game data fetching logic. Refactor existing methods to utilize new score extraction, improving handling of various score formats and game statuses, including penalty shootouts. agessaman 2025-11-25 22:16:12 -08:00
  • c8437999f3 update logging on the greeter command to be more intuitive agessaman 2025-11-25 21:42:14 -08:00
  • 5c2af1a014 added generic per-command channel configuration, allows commands to be mapped to different channels or dms only agessaman 2025-11-25 21:19:48 -08:00
  • 82aa5ee160 Add greeter command configuration to config.ini.example and implement greeter functionality in message handling. Introduce favorite status management for repeaters, allowing users to toggle favorite status via API. Update path command and test command to incorporate favorite bias in scoring. Enhance database schema to support star status tracking for repeaters and roomservers. agessaman 2025-11-25 17:26:40 -08:00
  • 732b7551ba Enhance message handling and repeater management by adding packet_hash support for tracking advertisements. Implement geocoding cache to prevent duplicate API calls based on packet_hash, improving efficiency in location data retrieval. Update relevant methods to accept packet_hash and ensure proper handling in geocoding logic. agessaman 2025-11-23 11:45:31 -08:00
  • 9d2d0e325c Add hourly weather forecast support to WxCommand. Updated response formatting to prioritize current conditions and additional details while ensuring display width constraints are respected. Improved observation data retrieval for more accurate current conditions. agessaman 2025-11-22 12:13:42 -08:00
  • 6b23f977f3 Update README and sports_command.py to enhance command descriptions and team ID stability. Expanded command help text for clarity, added new commands, and updated ESPN team IDs for accuracy. Included notes on verifying team IDs to prevent "no games found" errors. agessaman 2025-11-21 19:56:36 -08:00
  • aa40a1dd23 Merge pull request #13 from agessaman/dev-localization v0.5 Adam Gessaman 2025-11-21 19:27:06 -08:00
  • bfd3336fe6 Removed connection toast as redundant. agessaman 2025-11-21 19:17:51 -08:00
  • acc599c112 Initialize packet_stream table for real-time monitoring in the database. Added methods to create the table and relevant indexes in both BotDataViewer and BotIntegration classes, ensuring robust data handling and logging for initialization errors. agessaman 2025-11-21 19:07:44 -08:00
  • 6c660dc14c Enhance configuration and command files to support new distance metrics in message responses. Updated Keywords section to include {path_distance} and {firstlast_distance} placeholders. Refactored distance calculation methods into utils and improved path command logic for better accuracy in distance reporting. Added detailed logging for packet hash calculations and message handling in multitest command. agessaman 2025-11-20 21:41:10 -08:00
  • 0ec60e48c2 Add multitest functionality to message handler for path collection and implement packet hash calculation for message tracking. Updated translations to support multitest commands. agessaman 2025-11-18 20:11:11 -08:00
  • 412883ac67 Enhance weather command functionality by adding support for multi-day and tomorrow forecasts. Updated parsing logic to handle forecast type options and improved response formatting. Integrated new weather data retrieval methods for both local and global commands, ensuring consistent user experience across different locales. Added localization support for new forecast messages in multiple languages. agessaman 2025-11-18 18:51:10 -08:00
  • 7e2c478662 Implement localization support across various commands and configuration. Added language settings in config.ini.example, integrated translation functionality in command responses, and enhanced error handling with localized messages. Improved fallback mechanisms for missing translations and updated help text for better user guidance. agessaman 2025-11-16 20:17:58 -08:00
  • 46cbf3ffea Add solarforecast command using forecast.solar. Add Forecast.Solar API key configuration to example file and implement major city geocoding queries in utils module for improved location resolution. agessaman 2025-11-15 20:49:51 -08:00
  • ed7f5691c7 Add support for plugin overrides in configuration, allowing alternative plugin implementations. Enhanced weather display settings with configurable units for temperature, wind speed, and precipitation. Updated repeater_manager to improve contact removal logic with better error handling and logging. agessaman 2025-11-15 15:07:43 -08:00
  • a93ce069a7 Added backwards compatability helper function and migrated some config headers to be more consistent. agessaman 2025-11-14 19:01:28 -08:00
  • e0df11724f update path command to have an optional p shortcut, enabled via config.ini; updated catfacts to have more and more accurate facts. agessaman 2025-11-14 18:40:25 -08:00
  • d963e75473 improvements to geocoding management in repeater_manager and path guessing in path command agessaman 2025-11-13 20:43:45 -08:00
  • f37e99f446 Refactor companion purging logic in RepeaterManager to use activity scoring for better accuracy. Enhanced logging for debugging and improved handling of contact removal with verification steps. agessaman 2025-11-12 18:33:50 -08:00
  • f162336d44 updated documentation about placeholders in responses, improvements to path data in webviewer agessaman 2025-11-11 20:18:01 -08:00
  • 41d9803638 Merge pull request #8 from andydvsn/main Adam Gessaman 2025-11-11 19:18:21 -08:00
  • 7a94f6018c Merge branch 'agessaman:main' into main Andrew Davison 2025-11-11 18:47:31 +00:00
  • 46f04fbbe5 switched from using the bot's local time instead of the message sent time for keyword replacement agessaman 2025-11-11 09:36:29 -08:00
  • 9ea71d5414 Add format_keyword_response method to CommandManager for consistent message formatting agessaman 2025-11-11 09:13:32 -08:00
  • 237ca5a176 fixed recursion when response format is not configured agessaman 2025-11-11 08:57:30 -08:00
  • c844391a4c Update installer and service for venv Andrew Davison 2025-11-11 12:52:12 +00:00
  • fd7f64c346 Add max prefix range configuration and distance filtering in PrefixCommand agessaman 2025-11-09 21:14:44 -08:00
  • e2fb2d8cf7 fixed situation where 0 free prefixes was being interpreted as an error instead of data agessaman 2025-11-08 08:23:11 -08:00
  • 72bc36f081 Enhance geocoding functionality and logging in RepeaterManager and BotDataViewer agessaman 2025-11-06 21:38:33 -08:00
  • e114de7947 Implement companion contact purging and configurable recency/proximity weighting agessaman 2025-11-06 20:58:52 -08:00
  • cc97c48bbf add initial tcp support to the bot agessaman 2025-11-06 20:06:18 -08:00
  • b47355fded get next forecast instead of assuming tomorrow agessaman 2025-11-06 19:59:32 -08:00
  • f6ede4a90c Updated satpass command to default to radiopass api endpint by default. Included visual pass option to only return visual passes. Improved handling of satellite pass data, including better logging and validation for pass durations.s. agessaman 2025-11-06 10:13:21 -08:00
  • b3ddef401c Add prefix time window configuration options agessaman 2025-11-02 21:41:21 -08:00
  • ee0ceb667b resolve edge case where get_channel_number() would return zero and the bot would respond in the public channel despite being unconfigured. agessaman 2025-11-02 16:57:25 -08:00
  • b773dcd0a1 Update help text in PrefixCommand to include 'available' as an option for listing free prefixes and adjust command handling to recognize 'AVAILABLE' alongside 'FREE'. agessaman 2025-11-02 16:41:21 -08:00
  • 47a578dfa2 update all nominatim lookups to use 10 second timeout; add repeater database management command documentation agessaman 2025-10-31 22:14:02 -07:00
  • 972474d040 Fix BLE connection parameter in core.py to use the correct variable name for device name. agessaman 2025-10-29 21:41:29 -07:00
  • 4f195b050e added configuration option for path guessing symbols agessaman 2025-10-27 14:10:12 -07:00
  • acd17621a6 Enhance RepeaterManager with daily advertisement tracking and statistics agessaman 2025-10-24 22:27:25 -07:00
  • 25f72fff89 Add meshcore-cli to requirements.txt agessaman 2025-10-22 22:07:00 -07:00
  • 836af3341a - Renamed 'modern_tracking.html' to 'contacts.html' for clarity in web viewer. - Updated routes in 'app.py' to reflect the new contacts template. - Enhanced 'sports_command.py' adding support for additional Portland teams - Improved game data fetching logic to check multiple dates for recent and upcoming games. agessaman 2025-10-22 21:49:12 -07:00
  • 2b9ee79f23 remove purging template stub v0.4 agessaman 2025-10-21 22:07:50 -07:00
  • 7bb51f219b Web Viewer Integration agessaman 2025-10-21 21:57:00 -07:00
  • f524b3109d removed hardcoded reference to map.w0z.is, updated the path command to try to resolve prefix collisions using proximity and recency agessaman 2025-10-18 18:24:22 -07:00
  • 4adf9fe301 Updated database schema for complete contact tracking and optimized handling of repeater commands. Revised method for removing contacts from the device to use meshcore.py. agessaman 2025-10-18 17:16:50 -07:00