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
27 lines
742 B
Python
27 lines
742 B
Python
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
model_config = {"env_prefix": "NTR_", "env_file": ".env", "env_file_encoding": "utf-8"}
|
|
|
|
port: int = 8000
|
|
host: str = "127.0.0.1"
|
|
db_path: str = "./ntr_fetcher.db"
|
|
poll_interval_seconds: int = 3600
|
|
admin_token: str
|
|
soundcloud_user: str = "nicktherat"
|
|
show_day: int = 2
|
|
show_hour: int = 22
|
|
show_rotation_delay_hours: int = 0
|
|
|
|
web_user: str | None = None
|
|
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])
|