st/gp/SKILL.md
2026-05-19 09:56:18 +08:00

123 lines
4.4 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 代码」时触发。调用 mairuiapi 实时交易数据接口获取行情,再调用本地微信机器人发消息接口把股票信息发给当前用户。"
argument-hint: "参数为股票代码,例如 600519 或 000001"
---
# Stock Skill
## 描述
这是一个用于查询股票实时行情并直接发送给当前用户的技能。
当用户发送 `股票 600519``gp 000001` 时,调用 mairuiapi 实时交易数据接口获取行情数据,再调用本地微信机器人接口把格式化后的股票信息发出去。
这个仓库里额外提供了一个可执行脚本 `scripts/stock.py`,方便宿主机器人直接调用。
## 触发条件
- 用户发送 `股票 <股票代码>``gp <股票代码>`
- 股票代码为纯数字(如 `600519`、`000001`
## 接口信息
- 获取股票行情:`https://api.mairuiapi.com/hsrl/ssjy/{stock_code}/{licence}`
- 请求方式:`GET`
- 发消息接口:`http://127.0.0.1:{ROBOT_WECHAT_CLIENT_PORT}/api/v1/robot/message/send/text`
- 请求方式:`POST`
- 本地脚本:`scripts/stock.py`
### API 返回示例(贵州茅台 600519
```json
[{
"t": "2026-05-19 15:00:00",
"p": 1323.0,
"pc": -0.75,
"ud": -9.95,
"v": 4.97,
"cje": 6594983723.0,
"zf": 1.73,
"hs": 0.4,
"pe": 15.2,
"lb": 0.89,
"fm": 0.18,
"h": 1342.68,
"l": 1319.61,
"o": 1336.0,
"yc": 1332.95,
"sz": 16567534944.45,
"lt": 16567534944.45,
"zs": 0.04,
"sjl": 6.12,
"zdf60": -13.24,
"zdfnc": -3.93
}]
```
### 字段说明
| 字段 | 数据类型 | 字段说明 |
|------|---------|---------|
| fm | number | 五分钟涨跌幅(% |
| h | number | 最高价(元) |
| hs | number | 换手(% |
| lb | number | 量比(% |
| l | number | 最低价(元) |
| lt | number | 流通市值(元) |
| o | number | 开盘价(元) |
| pe | number | 市盈率动态总市值除以预估全年净利润例如当前公布一季度净利润1000万则预估全年净利润4000万 |
| pc | number | 涨跌幅(% |
| p | number | 当前价格(元) |
| sz | number | 总市值(元) |
| cje | number | 成交额(元) |
| ud | number | 涨跌额(元) |
| v | number | 成交量(手) |
| yc | number | 昨日收盘价(元) |
| zf | number | 振幅(% |
| zs | number | 涨速(% |
| sjl | number | 市净率 |
| zdf60 | number | 60日涨跌幅% |
| zdfnc | number | 年初至今涨跌幅(% |
| t | string | 更新时间 yyyy-MM-ddHH:mm:ss |
## 环境变量
- `ROBOT_WECHAT_CLIENT_PORT`:本地微信机器人服务端口。
- `ROBOT_FROM_WX_ID`:当前消息来源用户的 wxid。
- `STOCK_LICENCE`mairuiapi 的 licence 密钥(可选,默认使用内置 licence
## 执行步骤
1. 当用户发送 `股票 <代码>``gp <代码>` 时触发该技能。
2. 在仓库根目录下执行本地脚本:`python3 scripts/stock.py <股票代码>`。
3. 脚本从环境变量 `STOCK_LICENCE` 获取 licence如果未设置则使用内置默认值。
4. 脚本发送 `GET` 请求到 `https://api.mairuiapi.com/hsrl/ssjy/{stock_code}/{licence}`
5. 脚本解析返回的 JSON 数据,提取关键字段。
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": "【600519】
📈 当前价1323.00
📊 涨跌幅:-0.75%
📊 涨跌额:-9.95
⬆️ 最高1342.68
⬇️ 最低1319.61
🔓 今开1336.00
🔒 昨收1332.95
📈 成交量4.97手
💰 成交额6594983723.00
🔄 换手率0.40%
📐 振幅1.73%
📊 市盈率15.20
📊 市净率6.12
📊 量比0.89
⚡ 涨速0.04%
⏱ 五分钟涨跌0.18%
📅 60日涨跌-13.24%
📅 年初至今:-3.93%
====================
更新时间2026-05-19 15:00:00"
}
```
8. 如果任一步骤失败,回复兜底文案:`股票查询失败,请稍后再试。`
## 回复要求
- 成功时,直接发送格式化股票信息,不要额外追加解释文字。
- 失败时,使用固定兜底文案回复。