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

34
.env.example Normal file
View File

@@ -0,0 +1,34 @@
# NtR SoundCloud Fetcher — environment variables
# Copy to .env and fill in values. Shell env vars override these.
# --- Required -----------------------------------------------------------
NTR_ADMIN_TOKEN=changeme
# --- Server --------------------------------------------------------------
# NTR_HOST=127.0.0.1
# NTR_PORT=8000
# NTR_DB_PATH=./ntr_fetcher.db
# NTR_POLL_INTERVAL_SECONDS=3600
# --- SoundCloud -----------------------------------------------------------
# NTR_SOUNDCLOUD_USER=nicktherat
# --- Show schedule --------------------------------------------------------
# NTR_SHOW_DAY=2 # 0=Mon … 6=Sun (default: 2=Wed)
# NTR_SHOW_HOUR=22 # Hour in Eastern time
# NTR_SHOW_ROTATION_DELAY_HOURS=0
# --- Dashboard (all three required to enable) -----------------------------
# NTR_WEB_USER=
# NTR_WEB_PASSWORD=
# NTR_SECRET_KEY=
# --- Ping (optional defaults for the dashboard ping form) -----------------
# NTR_PING_TARGET=
# NTR_PING_MESSAGE=