--- 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. 如果任一步骤失败,回复兜底文案:`股票查询失败,请稍后再试。` ## 回复要求 - 成功时,直接发送格式化股票信息,不要额外追加解释文字。 - 失败时,使用固定兜底文案回复。