Files
rlwilliamson-dev e5666b7cce feat(rain): minute-level rain nowcast command + proactive incoming/ending push
Add a rain nowcast (Open-Meteo 15-minutely precipitation — worldwide, no API
key) as both an on-demand `rain`/`nowcast` command and an opt-in Weather_Service
push that announces rain starting and stopping at the bot's position.

- modules/commands/rain_command.py — command plus pure, unit-tested
  fetch/analyze/dedup/label helpers (also reused by the service)
- modules/service_plugins/weather_service.py — background poller mirroring the
  existing weather-alert poll pattern; ships disabled (opt-in)
- Location labels resolve to "City, ST" (US) / "City, Country" (non-US)
- 34 unit tests; rain_command added to the strict-mypy module list
2026-06-03 18:56:24 -05:00

82 lines
860 B
Plaintext

# Git
.git
.gitignore
.gitattributes
# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
*.egg-info/
dist/
build/
*.egg
# Virtual environments
venv/
env/
ENV/
# IDE
.vscode/
.idea/
*.swp
*.swo
*~
# OS
.DS_Store
**/.DS_Store
Thumbs.db
# macOS AppleDouble sidecar files (created when copying to SMB/exFAT shares).
# Keep them out of the build context so the plugin loader doesn't try to import them.
._*
**/._*
# Project specific
*.db
*.db-shm
*.db-wal
*.log
logs/
backups/
*.ini
config.ini
config.ini.example
config.ini.minimal-example
config.min.ini
# Documentation
docs/
*.md
!README.md
# Test files
test_scripts/
*.test.py
*_test.py
# Development
dev/
flake.lock
flake.nix
nix/
# Service files
*.service
*.plist
*.sh
!install-service.sh
!uninstall-service.sh
# Website
website/
# MQTT bridge
mctomqtt.py
# Database backups
backup_database.py