25 lines
708 B
Python
25 lines
708 B
Python
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 |