koishi-plugin-stock
v2.2.1
Published
A Koishi plugin that fetches stock data and provides market analysis, including active market cap, stock alerts, limit-up board, stock selection features, and heart method card drawing with configurable blacklists for each command.
Maintainers
Readme
koishi-plugin-stock
一个Koishi插件,当用户发送特定命令时自动获取股票数据并显示结果。支持活跃市值、异动分析、涨停看板、跌停看板、选股和心法抽卡功能,并提供指令级黑名单配置和定时广播任务。
功能
- 用户发送"活跃市值"命令时,自动从
indexesAPI获取数据并格式化显示 - 用户发送"异动 [股票代码]"命令时,自动从
analyzeAPI获取指定股票的异动分析数据 - 用户发送"涨停看板"命令时,自动从
limit_upAPI下载图片并显示 - 用户发送"跌停看板"命令时,自动从
limit_downAPI下载图片并显示 - 用户发送"选股 [策略名称]"命令时,自动从
dyq_selectAPI获取选股结果 - 用户发送"骑"命令时,自动返回
images/qi.jpeg图片 - 用户发送"心法抽卡"命令时,随机抽取一条交易心法并播放对应音频
- 用户发送"我要验牌 [序号]"命令时,播放指定序号的心法语音
- 用户发送"我要验牌 全部"命令时,显示所有心法文本列表
- 支持定时广播任务,可自定义时间发送活跃市值、涨停/跌停看板(仅交易日广播)
- 支持为每个指令单独设置黑名单,可限制特定用户使用特定功能
- 自动格式化数据显示给用户
安装
npm install koishi-plugin-stock配置
此插件支持以下配置选项:
allCommandsBlacklist: 全部指令黑名单用户ID数组activeMarketCapBlacklist: 活跃市值指令黑名单用户ID数组stockAlertBlacklist: 异动指令黑名单用户ID数组limitUpBoardBlacklist: 涨停看板指令黑名单用户ID数组limitDownBoardBlacklist: 跌停看板指令黑名单用户ID数组stockSelectionBlacklist: 选股指令黑名单用户ID数组rideBlacklist: 骑指令黑名单用户ID数组heartMethodBlacklist: 心法抽卡指令黑名单用户ID数组allCommandsChannelBlacklist: 全部指令黑名单频道ID数组activeMarketCapChannelBlacklist: 活跃市值指令黑名单频道ID数组stockAlertChannelBlacklist: 异动指令黑名单频道ID数组limitUpBoardChannelBlacklist: 涨停看板指令黑名单频道ID数组limitDownBoardChannelBlacklist: 跌停看板指令黑名单频道ID数组stockSelectionChannelBlacklist: 选股指令黑名单频道ID数组rideChannelBlacklist: 骑指令黑名单频道ID数组heartMethodChannelBlacklist: 心法抽卡指令黑名单频道ID数组broadcastTasks: 定时广播任务列表,每个任务包含:times: 触发时间 (逗号分隔的事列,如09:30,15:00)type: 消息类型 (private/channel)targetIds: 目标 ID 列表 (逗号分隔的事列)content: 广播内容 (活跃市值/涨停看板/跌停看板)
使用
- 发送"活跃市值"获取最新的市场指数数据
- 发送"异动 [股票代码]"获取指定股票的异动分析,如"异动 000001"
- 发送"涨停看板"获取涨停股票看板图片
- 发送"跌停看板"获取跌停股票看板图片
- 发送"选股 [策略名称或编号]"获取选股结果,支持的策略:N型(1)、填坑(2)、少妇(3)、突破(4)、补票(5)、少妇pro(6)
- 发送"骑"获取图片
- 发送"心法抽卡"随机抽取一条交易心法并播放对应音频
- 发送"我要验牌 全部"查看所有心法文本列表
- 发送"我要验牌 <序号>"播放指定序号的心法语音(1-58)
配置黑名单可在插件设置中进行,将特定用户ID添加到相应指令的黑名单中即可限制其使用权限。
更新日志
v2.2.0 (2026-03-02)
- API升级:更新选股功能API端点路径
- 策略扩展:支持更多选股策略的英文标识映射
- 功能增强:提升选股命令的可用性和准确性
v2.1.9 (2026-03-02)
- 消息格式优化:简化定时广播前缀为"[定时广播]",移除冗余的内容标识
- 格式统一:所有定时推送消息格式为"[定时广播] 指数看板:..."
- 保持所有功能逻辑不变,仅优化消息显示格式
v2.1.8 (2026-03-02)
- 用户体验优化:为定时广播消息添加"[定时广播 - 内容]"前缀标识
- 消息识别:用户可以清楚区分定时推送和手动触发的消息
- 保持所有功能逻辑不变,仅优化消息格式
v2.1.7 (2026-03-02)
- 核心修复:修复定时广播任务只发送提示消息的问题
- 功能完善:定时任务现在直接获取并发送真实数据(活跃市值、涨跌停看板)
- 重试机制:为定时任务添加HTTP重试机制和错误处理
- 用户体验:用户无需手动触发,定时任务自动推送完整数据
v2.1.6 (2026-03-02)
- 性能优化:超时时间从15秒调整为10秒
- 重试机制:添加3次重试机制,使用指数退避策略(2s/4s/8s)
- 统一处理:所有API请求使用统一的重试函数
- 可观测性:增强日志记录,便于问题排查
v2.1.5 (2026-03-02)
- 性能优化:增加API请求超时时间至15秒
- 错误处理增强:添加详细的错误类型识别和针对性提示
- 安全性提升:统一使用HTTPS协议替代HTTP
- 用户体验改善:区分超时错误与其他网络错误,提供更准确的错误信息
v2.1.4 (2026-02-28)
- 新增心法:添加第58条心法 "我能怎么办,我真的我,我,我真的没招了,我"
- 心法总数更新为58条
- 保持所有功能稳定运行
v2.1.3 (2026-02-28)
- 紧急修复:修复"骑"命令图片读取问题
- 改为从本地images/qi.jpeg读取图片而非网络请求
- 增强错误日志,提供更详细的调试信息
- 保持所有其他功能不变
v2.1.2 (2026-02-28)
- 紧急修复:修复插件指令注册问题
- 恢复所有股票相关指令:活跃市值、异动、涨停看板、跌停看板、选股、骑
- 将middleware方式改为ctx.command方式,确保指令在插件界面正确显示
- 保持所有功能逻辑不变,仅修复指令注册方式
v2.1.1 (2026-02-28)
- 紧急修复:修复插件配置项声明问题
- 正确导出Config和ConfigSchema供Koishi识别
- 保持所有功能不变,仅修复配置导出问题
v2.1.0 (2026-02-28)
- 架构重构:将代码拆分为多个模块文件
- 模块化:分离commands、core、utils等不同功能模块
- 代码组织:提高代码可维护性和可读性
- 保持所有功能不变,仅重构代码结构
v2.0.15 (2026-02-28)
- 紧急修复:修复交易日API返回格式问题
- 正确解析{"code":1,"msg":"success","data":{"is_trading_day":true}}格式
- 增强错误处理,提供更友好的错误提示
- 保持所有其他功能稳定运行
v2.0.14 (2026-02-28)
- 紧急修复:修复定时广播任务未触发问题
- 恢复每日9:30和15:00的定时广播功能
- 增强日志输出,便于调试和监控
- 保持所有其他功能不变
v2.0.13 (2026-02-25)
- 紧急修复:修复心法数据JSON解析错误
- 将心法数据直接嵌入TypeScript源码,避免编码问题
- 增强错误处理和日志记录
- 保持所有其他功能稳定运行
注:更早版本历史请查看Git提交记录
- 增强编码兼容性:自动检测并移除BOM字符确保JSON解析成功
v2.0.10 (2026-02-25)
- 增强心法抽卡调试日志:添加详细的状态跟踪和错误诊断信息
- 优化心法数据加载过程:增加文件存在性检查和JSON解析验证
- 改进错误处理:提供更清晰的错误信息和堆栈跟踪
v2.0.9 (2026-02-25)
- 新增心法抽卡功能:用户发送"心法抽卡"命令时,随机抽取一条交易心法并播放对应音频
- 新增心法抽卡黑白名单配置:支持为心法抽卡功能单独设置用户和频道黑名单
- 完善插件文件包含:将audio目录和audio_mapping.json包含在npm包中
v2.0.8 (2026-01-30)
- 优化黑名单处理逻辑:当触发指令的用户或频道处于黑名单时,插件将静默处理(直接不回复),不再发送提示消息。
v2.0.7 (2026-01-30)
- 新增定时广播任务失败重试机制:当网络中断导致消息发送失败时,自动开启 3 次重试,每次间隔 1 分钟
- 引入任务时效性检查:重试过程中若达到该任务的下一个执行时间点,则自动取消当前重试,防止消息堆积
v2.0.6 (2026-01-30)
- 优化定时任务触发逻辑:改用
IntlAPI 获取确切的上海时区时间,解决部分环境下时区偏移导致的触发失败问题 - 增强时间格式容错:自动处理
9:30vs09:30以及全角冒号等配置问题 - 完善节假日 API:增加对 Cloudflare 拦截页面的防御逻辑,请求失败时自动回退到基础周末检查,确保任务触发稳定性
- 改进日志输出:在
info级别增加关键任务触发和跳过的日志,方便诊断问题
v2.0.5 (2026-01-28)
- 使用标准 Koishi 配置注释、每个配置分类上壳有中文注释,更清晰地区分配置组
v2.0.4 (2026-01-28)
- 实现 Koishi 业界标准的配置分组,每个配置项打上对应的 role 标签,在插件设置页中形成可折叠的分组
v2.0.3 (2026-01-28)
- 优化插件配置页显示,使用 Koishi 行业标准方式实现配置分类,每个配置项描述前缀形成分类标签
v2.0.2 (2026-01-28)
- 优化插件配置页显示,描述中添加配置分类标签(用户黑名单、频道黑名单、定时广播)
v2.0.1 (2026-01-28)
- 优化插件设置页配置展示,按功能分类整理配置项(系统设置、用户黑名单、频道黑名单、定时广播)
v2.0.0 (2026-01-28)
- 修复时区问题:Node.js 返回 UTC 时间而非本地时间,手动调整 UTC+8 获取中国时间
- 定时任务功能现已正常工作
- 添加
enableDebugLog配置选项,调试日志默认关闭,需要时可启用 - 清理历史有问题的旧版本
v1.0.22 (2026-01-28)
- 修复时区问题:手动调整 UTC+8 转换为中国本地时间
- 优化交易日检查的时区不一致问题
v1.0.21 (2026-01-28)
- 添加调试信息用于时间不匹配问题诊断
v1.0.20 (2026-01-28)
- 修复定时任务检查间隔需要重新编译的问题
- 改为 1 秒检查一次,使用 logger.info 输出日志
v1.0.19 (2026-01-28)
- 修复定时任务 1 分钟检查一次的问题,改为 1 秒检查一次,确保不会错过任务时间
- 日志级别改为 info,方便查看日志
v1.0.18 (2026-01-28)
- 添加详细的执行日志,追踪图片下载、消息发送的全过程
- 添加机器人信息输出,便于调试发送失败
v1.0.17 (2026-01-28)
- 修复广播任务配置中
content字段不保存的问题 - 添加
content字段的默认值:活跃市值
v1.0.16 (2026-01-28)
- 添加插件启动日志,方便确认插件是否正常加载
- 添加定时任务运行状态日志,方便调试
v1.0.15 (2026-01-28)
- 修复定时广播任务不发送的问题
- 优化配置验证逻辑,添加了详细的错误日志
- 改进了 API 调用的错误处理,单个API失败不会中断整个任务执行
v1.0.14 (2026-01-28)
- 改进定时广播配置,支持一个任务配置多个触发时间
- 支持指定多个目标 ID,支持一次广播给多个用户/群组
- 优化了广播发送逻辑,增强了错误处理能力
v1.0.13 (2026-01-27)
- 新增定时广播任务功能,支持自定义时间发送指数和看板数据
- 自动识别中国交易日(排除周末及法定节假日)
v1.0.12 (2026-01-27)
- 添加了"跌停看板"指令,可获取跌停股票看板图片
v1.0.11 (2026-01-22)
- 添加了频道/群聊黑名单功能,支持按频道ID限制指令使用
v1.0.10 (2026-01-22)
- 修复了"骑"指令,使用本地图片路径并返回base64编码的图片
v1.0.9 (2026-01-22)
- 添加了"骑"指令,可返回本地图片
v1.0.8 (2026-01-22)
- 添加了指令级黑名单功能,可为每个指令单独设置黑名单
v1.0.7 (2026-01-22)
- 修复了一些小问题
v1.0.6 (2026-01-22)
- 优化了部分功能
v1.0.5 (2026-01-22)
- 添加了选股功能的数字编号支持
v1.0.4 (2026-01-22)
- 添加了选股功能的数字编号(1-6对应不同策略)
v1.0.3 (2026-01-22)
- 添加了选股功能,支持多种选股策略
v1.0.2 (2026-01-22)
- 添加了涨停看板功能
v1.0.1 (2026-01-22)
- 初始版本,包含活跃市值和异动分析功能
