#!/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)}