st/SKILL.md
2026-05-19 09:41:46 +08:00

79 lines
3.6 KiB
Markdown
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.

---
name: stock
description: "当用户发送「股票 代码」或「gp 代码」时触发。调用腾讯股票行情接口获取实时数据,再调用本地微信机器人发消息接口把股票信息发给当前用户。"
argument-hint: "参数为股票代码,例如 600519 或 sz000001"
---
# Stock Skill
## 描述
这是一个用于查询股票实时行情并直接发送给当前用户的技能。
当用户发送 `股票 600519``gp sz000001` 时,调用腾讯股票行情接口获取实时数据,再调用本地微信机器人接口把格式化后的股票信息发出去。
这个仓库里额外提供了一个可执行脚本 `scripts/stock.py`,方便宿主机器人直接调用。
## 触发条件
- 用户发送 `股票 <股票代码>``gp <股票代码>`
- 股票代码可以是纯数字(如 `600519`),也可以带市场前缀(如 `sh600519`、`sz000001`
## 接口信息
- 获取股票行情:`https://qt.gtimg.cn/q={stock_code}`
- 请求方式:`GET`
- 发消息接口:`http://127.0.0.1:{ROBOT_WECHAT_CLIENT_PORT}/api/v1/robot/message/send/text`
- 请求方式:`POST`
- 本地脚本:`scripts/stock.py`
### 腾讯股票行情返回示例
```
v_sh600519="1~贵州茅台~600519~1945.50~1942.00~1941.00~1946.80~1940.02~1945.71~4291131~8365444900~183~1945.60~826~1945.59~649~1945.58~699~1945.57~589~1945.56~1449~1945.71~1014~1945.72~722~1945.73~369~1945.74~471~1945.75~202~1945.76~2026-05-19~15:00:00~00~-1.18~-0.06~1945.50~1906.02~1945.50~1895216~4901415~1.22~836544.4900~18.55~403727.15~0.37~107.86~15.03~232.10~10.49~10.61~PB~0.23~0.53~-0.22~10.99~1945.50~1900.16~~ 1044479.27~1.22~1895216~4901415~0.06~10.47~10.49~10.61~0.01~-82.56~1945.50~1906.02~0.03~-0.06~1945.50~-0.39~1942.00~1036.50~1.88~181580~185384~1945.50~1900.16~0.00~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~0~"
```
### 字段说明
| 索引 | 含义 |
|------|------|
| 1 | 股票名称 |
| 2 | 股票代码 |
| 3 | 当前价格 |
| 4 | 昨收价 |
| 5 | 今开价 |
| 6 | 成交量(手) |
| 7 | 成交额(万) |
| 8 | 最高价 |
| 9 | 最低价 |
| 10 | 涨跌额 |
| 11 | 涨跌幅(%) |
## 环境变量
- `ROBOT_WECHAT_CLIENT_PORT`:本地微信机器人服务端口。
- `ROBOT_FROM_WX_ID`:当前消息来源用户的 wxid。
## 执行步骤
1. 当用户发送 `股票 <代码>``gp <代码>` 时触发该技能。
2. 在仓库根目录下执行本地脚本:`python3 scripts/stock.py <股票代码>`。
3. 脚本内部自动处理股票代码格式(补全市场前缀 sh/sz
4. 脚本发送 `GET` 请求到 `https://qt.gtimg.cn/q={stock_code}`
5. 脚本解析返回的行情数据,提取关键字段。
6. 脚本从环境变量中读取 `ROBOT_WECHAT_CLIENT_PORT``ROBOT_FROM_WX_ID`
7. 脚本发送 `POST` 请求到 `http://127.0.0.1:{ROBOT_WECHAT_CLIENT_PORT}/api/v1/robot/message/send/text`,请求体为:
```json
{
"to_wxid": "{ROBOT_FROM_WX_ID}",
"content": "【{股票名称}({股票代码})】
当前价:{当前价格}
涨跌幅:{涨跌幅}%
涨跌额:{涨跌额}
最高:{最高价}
最低:{最低价}
今开:{今开价}
昨收:{昨收价}
成交量:{成交量}
成交额:{成交额}"
}
```
8. 如果任一步骤失败,回复兜底文案:`股票查询失败,请稍后再试。`
## 回复要求
- 成功时,直接发送格式化股票信息,不要额外追加解释文字。
- 失败时,使用固定兜底文案回复。