import httpx from app.notifications.base import NotificationProvider from app.config import settings class ServerChanProvider(NotificationProvider): def __init__(self): self.key = settings.SERVERCHAN_KEY def validate_config(self) -> bool: return bool(self.key) async def send(self, title: str, content: str) -> bool: if not self.validate_config(): return False url = f"https://sctapi.ftqq.com/{self.key}.send" data = { "title": title, "desp": content } async with httpx.AsyncClient() as client: response = await client.post(url, data=data) return response.status_code == 200