增加龙虎榜批量分析功能,修复一些小bug
This commit is contained in:
@@ -0,0 +1,251 @@
|
||||
# Webhook自定义关键词功能说明
|
||||
|
||||
## 功能概述
|
||||
|
||||
系统现已支持自定义Webhook关键词配置,用户可以根据自己的钉钉/飞书机器人安全设置灵活配置关键词。
|
||||
|
||||
## 配置方法
|
||||
|
||||
### 1. 在.env文件中配置
|
||||
|
||||
```env
|
||||
# ========== Webhook通知配置(可选)==========
|
||||
WEBHOOK_ENABLED="true"
|
||||
WEBHOOK_TYPE="dingtalk"
|
||||
WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN"
|
||||
WEBHOOK_KEYWORD="aiagents通知"
|
||||
```
|
||||
|
||||
### 2. 配置说明
|
||||
|
||||
| 配置项 | 说明 | 示例 |
|
||||
|-------|------|------|
|
||||
| WEBHOOK_ENABLED | 是否启用Webhook | true / false |
|
||||
| WEBHOOK_TYPE | Webhook类型 | dingtalk(钉钉)/ feishu(飞书)|
|
||||
| WEBHOOK_URL | Webhook地址 | 机器人Webhook完整URL |
|
||||
| WEBHOOK_KEYWORD | 自定义关键词 | aiagents通知(或您机器人设置的任何关键词)|
|
||||
|
||||
## 钉钉机器人关键词设置
|
||||
|
||||
### 步骤1:创建钉钉自定义机器人
|
||||
1. 打开钉钉群聊
|
||||
2. 点击右上角"..." → 机器人 → 添加机器人
|
||||
3. 选择"自定义"机器人
|
||||
|
||||
### 步骤2:安全设置
|
||||
1. 安全设置选择:**自定义关键词**
|
||||
2. 输入关键词:**aiagents通知**(或您自己定义的关键词)
|
||||
3. 复制Webhook地址
|
||||
|
||||

|
||||
|
||||
### 步骤3:配置到系统
|
||||
将关键词和Webhook地址配置到`.env`文件中:
|
||||
|
||||
```env
|
||||
WEBHOOK_KEYWORD="aiagents通知"
|
||||
WEBHOOK_URL="https://oapi.dingtalk.com/robot/send?access_token=YOUR_TOKEN"
|
||||
```
|
||||
|
||||
**重要提示**:
|
||||
- `.env`文件中的关键词必须与钉钉机器人设置的关键词完全一致
|
||||
- 如果不匹配,消息将发送失败
|
||||
- 如果关键词为空,则不会在消息中添加关键词前缀
|
||||
|
||||
## 飞书机器人配置
|
||||
|
||||
飞书机器人通常不需要关键词,可以将WEBHOOK_KEYWORD留空或使用默认值:
|
||||
|
||||
```env
|
||||
WEBHOOK_TYPE="feishu"
|
||||
WEBHOOK_KEYWORD=""
|
||||
```
|
||||
|
||||
## 消息格式
|
||||
|
||||
### 钉钉消息示例
|
||||
|
||||
**有关键词时:**
|
||||
```markdown
|
||||
标题:aiagents通知 - 000001 平安银行
|
||||
|
||||
### aiagents通知 - 股票监测提醒
|
||||
|
||||
**股票代码**: 000001
|
||||
**股票名称**: 平安银行
|
||||
...
|
||||
```
|
||||
|
||||
**无关键词时:**
|
||||
```markdown
|
||||
标题:000001 平安银行
|
||||
|
||||
### 股票监测提醒
|
||||
|
||||
**股票代码**: 000001
|
||||
**股票名称**: 平安银行
|
||||
...
|
||||
```
|
||||
|
||||
## 测试配置
|
||||
|
||||
配置完成后,运行测试工具验证:
|
||||
|
||||
```bash
|
||||
# Windows
|
||||
.\venv\Scripts\python.exe test_notification_config.py
|
||||
|
||||
# Linux/Mac
|
||||
python test_notification_config.py
|
||||
```
|
||||
|
||||
**成功输出示例:**
|
||||
```
|
||||
============================================================
|
||||
[Webhook] 测试Webhook配置
|
||||
============================================================
|
||||
|
||||
当前配置:
|
||||
- 启用状态: [已启用]
|
||||
- Webhook类型: dingtalk
|
||||
- 配置完整性: [完整]
|
||||
|
||||
[钉钉] 正在发送Webhook...
|
||||
[成功] 钉钉Webhook发送成功
|
||||
[成功] 钉钉Webhook测试成功!请检查钉钉群消息。
|
||||
```
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q1: 提示"关键词不匹配"
|
||||
|
||||
**原因**:
|
||||
- .env文件中的WEBHOOK_KEYWORD与钉钉机器人设置不一致
|
||||
- .env文件编码问题导致关键词乱码
|
||||
|
||||
**解决方案**:
|
||||
1. 检查钉钉机器人的关键词设置
|
||||
2. 确保.env文件使用UTF-8编码
|
||||
3. 运行`fix_env.py`重新生成.env文件:
|
||||
```bash
|
||||
python fix_env.py
|
||||
```
|
||||
|
||||
### Q2: .env文件中文显示乱码
|
||||
|
||||
**原因**:
|
||||
文件编码不是UTF-8
|
||||
|
||||
**解决方案**:
|
||||
运行修复脚本:
|
||||
```bash
|
||||
python fix_env.py
|
||||
```
|
||||
|
||||
### Q3: 如何修改关键词
|
||||
|
||||
**方法1:直接编辑.env文件**
|
||||
1. 用支持UTF-8的编辑器(VS Code、Notepad++等)打开.env
|
||||
2. 修改WEBHOOK_KEYWORD的值
|
||||
3. 保存为UTF-8编码
|
||||
|
||||
**方法2:使用环境配置界面**
|
||||
1. 启动应用
|
||||
2. 进入"环境配置"页面
|
||||
3. 修改"Webhook自定义关键词"
|
||||
4. 保存配置
|
||||
|
||||
**方法3:使用配置管理器**
|
||||
```python
|
||||
from config_manager import config_manager
|
||||
|
||||
# 读取当前配置
|
||||
config = config_manager.read_env()
|
||||
|
||||
# 修改关键词
|
||||
config['WEBHOOK_KEYWORD'] = '您的新关键词'
|
||||
|
||||
# 保存配置
|
||||
config_manager.write_env(config)
|
||||
```
|
||||
|
||||
### Q4: 是否可以不使用关键词
|
||||
|
||||
**可以!**
|
||||
|
||||
如果您的钉钉机器人使用其他安全方式(如加签、IP白名单),可以将关键词设为空:
|
||||
|
||||
```env
|
||||
WEBHOOK_KEYWORD=""
|
||||
```
|
||||
|
||||
系统会自动检测,如果关键词为空,则不会在消息中添加关键词前缀。
|
||||
|
||||
## 更新日志
|
||||
|
||||
### v1.1 (2025-10-14)
|
||||
- ✅ 新增WEBHOOK_KEYWORD配置项
|
||||
- ✅ 支持自定义关键词
|
||||
- ✅ 修复.env文件中文编码问题
|
||||
- ✅ 优化消息格式,去除多余空格
|
||||
- ✅ 提供fix_env.py工具修复编码问题
|
||||
|
||||
### v1.0 (2025-10-14)
|
||||
- ✅ 初始版本
|
||||
- ✅ 硬编码"aiagents通知"关键词
|
||||
|
||||
## 相关文件
|
||||
|
||||
- `.env` - 环境配置文件
|
||||
- `.env.example` - 配置模板
|
||||
- `fix_env.py` - 编码修复工具
|
||||
- `config_manager.py` - 配置管理模块
|
||||
- `notification_service.py` - 通知服务模块
|
||||
- `sector_strategy_scheduler.py` - 定时任务模块
|
||||
- `test_notification_config.py` - 测试工具
|
||||
|
||||
## 技术实现
|
||||
|
||||
### 配置读取流程
|
||||
|
||||
```python
|
||||
# 1. 从环境变量读取
|
||||
import os
|
||||
from dotenv import load_dotenv
|
||||
load_dotenv()
|
||||
keyword = os.getenv('WEBHOOK_KEYWORD', 'aiagents通知')
|
||||
|
||||
# 2. 在notification_service中使用
|
||||
class NotificationService:
|
||||
def _load_config(self):
|
||||
config['webhook_keyword'] = os.getenv('WEBHOOK_KEYWORD')
|
||||
|
||||
def _send_dingtalk_webhook(self, notification):
|
||||
keyword = self.config.get('webhook_keyword', '')
|
||||
title_prefix = f"{keyword} - " if keyword else ""
|
||||
# ...构建消息
|
||||
```
|
||||
|
||||
### 消息构建逻辑
|
||||
|
||||
```python
|
||||
# 如果有关键词
|
||||
if keyword:
|
||||
title = f"{keyword} - {notification['symbol']} {notification['name']}"
|
||||
text = f"### {keyword} - 股票监测提醒\n..."
|
||||
else:
|
||||
title = f"{notification['symbol']} {notification['name']}"
|
||||
text = f"### 股票监测提醒\n..."
|
||||
```
|
||||
|
||||
## 总结
|
||||
|
||||
现在系统完全支持自定义Webhook关键词,用户可以根据自己的需求灵活配置:
|
||||
|
||||
✅ **灵活性**:支持任意自定义关键词
|
||||
✅ **兼容性**:支持钉钉和飞书
|
||||
✅ **易用性**:简单配置即可使用
|
||||
✅ **稳定性**:自动处理编码问题
|
||||
|
||||
祝您使用愉快!
|
||||
|
||||
Reference in New Issue
Block a user