feat: add dashboard ping button and .env file support

Add a "Send IRC Message" section to the admin dashboard that sends a
configurable privmsg to any IRC nick or channel via all connected bots.
New POST /admin/ping endpoint broadcasts a "privmsg" WebSocket message
type, handled by both Limnoria and Sopel plugins.

Also enable pydantic-settings .env file loading (python-dotenv) and
add .env.example documenting all NTR_* configuration variables.

Made-with: Cursor
This commit is contained in:
cottongin
2026-04-01 22:20:18 -04:00
parent 82049ab47f
commit a5f77187b3
10 changed files with 147 additions and 1 deletions

View File

@@ -2,7 +2,7 @@ from pydantic_settings import BaseSettings
class Settings(BaseSettings):
model_config = {"env_prefix": "NTR_"}
model_config = {"env_prefix": "NTR_", "env_file": ".env", "env_file_encoding": "utf-8"}
port: int = 8000
host: str = "127.0.0.1"
@@ -18,6 +18,9 @@ class Settings(BaseSettings):
web_password: str | None = None
secret_key: str | None = None
ping_target: str | None = None
ping_message: str | None = None
@property
def dashboard_enabled(self) -> bool:
return all([self.web_user, self.web_password, self.secret_key])