crypto.ai/cryptoai/utils/discord_bot.py
2025-05-01 13:46:37 +08:00

63 lines
1.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json
import requests
import traceback
import datetime
from typing import Dict, Any, List, Optional, Union
class DiscordBot:
"""Discord Webhook机器人用于发送分析结果到Discord频道"""
def __init__(self, webhook_url: str):
"""
初始化Discord Webhook机器人
Args:
webhook_url: Discord Webhook的URL
"""
self.webhook_url = webhook_url
def send_message(self, content: str, username: str = None, avatar_url: str = None) -> Dict[str, Any]:
"""
发送普通消息
Args:
content: 消息内容
username: 自定义机器人名称
avatar_url: 自定义机器人头像URL
Returns:
接口返回结果
"""
data = {"content": content}
if username:
data["username"] = username
if avatar_url:
data["avatar_url"] = avatar_url
return self._post(data)
def _post(self, data: Dict[str, Any]) -> Dict[str, Any]:
"""
发送数据到Discord Webhook
Args:
data: 要发送的数据
Returns:
接口返回结果
"""
try:
headers = {'Content-Type': 'application/json'}
response = requests.post(self.webhook_url, json=data, headers=headers)
if response.status_code == 204: # Discord返回成功时无内容
return {"success": True}
return response.json()
except Exception as e:
print(f"发送Discord消息时出错: {e}")
traceback.print_exc()
return {"success": False, "error": str(e)}