koishi-plugin-stock 2.0.7 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -30
- package/lib/index.js +12 -12
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -57,110 +57,113 @@ npm install koishi-plugin-stock
|
|
|
57
57
|
|
|
58
58
|
## 更新日志
|
|
59
59
|
|
|
60
|
-
### v2.0.
|
|
60
|
+
### v2.0.8 (2026-01-30)
|
|
61
|
+
- 优化黑名单处理逻辑:当触发指令的用户或频道处于黑名单时,插件将静默处理(直接不回复),不再发送提示消息。
|
|
62
|
+
|
|
63
|
+
### v2.0.7 (2026-01-30)
|
|
61
64
|
- 新增定时广播任务失败重试机制:当网络中断导致消息发送失败时,自动开启 3 次重试,每次间隔 1 分钟
|
|
62
65
|
- 引入任务时效性检查:重试过程中若达到该任务的下一个执行时间点,则自动取消当前重试,防止消息堆积
|
|
63
66
|
|
|
64
|
-
### v2.0.6
|
|
67
|
+
### v2.0.6 (2026-01-30)
|
|
65
68
|
- 优化定时任务触发逻辑:改用 `Intl` API 获取确切的上海时区时间,解决部分环境下时区偏移导致的触发失败问题
|
|
66
69
|
- 增强时间格式容错:自动处理 `9:30` vs `09:30` 以及全角冒号等配置问题
|
|
67
70
|
- 完善节假日 API:增加对 Cloudflare 拦截页面的防御逻辑,请求失败时自动回退到基础周末检查,确保任务触发稳定性
|
|
68
71
|
- 改进日志输出:在 `info` 级别增加关键任务触发和跳过的日志,方便诊断问题
|
|
69
72
|
|
|
70
|
-
### v2.0.5
|
|
73
|
+
### v2.0.5 (2026-01-28)
|
|
71
74
|
- 使用标准 Koishi 配置注释、每个配置分类上壳有中文注释,更清晰地区分配置组
|
|
72
75
|
|
|
73
|
-
### v2.0.4
|
|
76
|
+
### v2.0.4 (2026-01-28)
|
|
74
77
|
- 实现 Koishi 业界标准的配置分组,每个配置项打上对应的 role 标签,在插件设置页中形成可折叠的分组
|
|
75
78
|
|
|
76
|
-
### v2.0.3
|
|
79
|
+
### v2.0.3 (2026-01-28)
|
|
77
80
|
- 优化插件配置页显示,使用 Koishi 行业标准方式实现配置分类,每个配置项描述前缀形成分类标签
|
|
78
81
|
|
|
79
|
-
### v2.0.2
|
|
82
|
+
### v2.0.2 (2026-01-28)
|
|
80
83
|
- 优化插件配置页显示,描述中添加配置分类标签(用户黑名单、频道黑名单、定时广播)
|
|
81
84
|
|
|
82
|
-
### v2.0.1
|
|
85
|
+
### v2.0.1 (2026-01-28)
|
|
83
86
|
- 优化插件设置页配置展示,按功能分类整理配置项(系统设置、用户黑名单、频道黑名单、定时广播)
|
|
84
87
|
|
|
85
|
-
### v2.0.0
|
|
88
|
+
### v2.0.0 (2026-01-28)
|
|
86
89
|
- 修复时区问题:Node.js 返回 UTC 时间而非本地时间,手动调整 UTC+8 获取中国时间
|
|
87
90
|
- 定时任务功能现已正常工作
|
|
88
91
|
- 添加 `enableDebugLog` 配置选项,调试日志默认关闭,需要时可启用
|
|
89
92
|
- 清理历史有问题的旧版本
|
|
90
93
|
|
|
91
|
-
### v1.0.22
|
|
94
|
+
### v1.0.22 (2026-01-28)
|
|
92
95
|
- 修复时区问题:手动调整 UTC+8 转换为中国本地时间
|
|
93
96
|
- 优化交易日检查的时区不一致问题
|
|
94
97
|
|
|
95
|
-
### v1.0.21
|
|
98
|
+
### v1.0.21 (2026-01-28)
|
|
96
99
|
- 添加调试信息用于时间不匹配问题诊断
|
|
97
100
|
|
|
98
|
-
### v1.0.20
|
|
101
|
+
### v1.0.20 (2026-01-28)
|
|
99
102
|
- 修复定时任务检查间隔需要重新编译的问题
|
|
100
103
|
- 改为 1 秒检查一次,使用 logger.info 输出日志
|
|
101
104
|
|
|
102
|
-
### v1.0.19
|
|
105
|
+
### v1.0.19 (2026-01-28)
|
|
103
106
|
- 修复定时任务 1 分钟检查一次的问题,改为 1 秒检查一次,确保不会错过任务时间
|
|
104
107
|
- 日志级别改为 info,方便查看日志
|
|
105
108
|
|
|
106
|
-
### v1.0.18
|
|
109
|
+
### v1.0.18 (2026-01-28)
|
|
107
110
|
- 添加详细的执行日志,追踪图片下载、消息发送的全过程
|
|
108
111
|
- 添加机器人信息输出,便于调试发送失败
|
|
109
112
|
|
|
110
|
-
### v1.0.17
|
|
113
|
+
### v1.0.17 (2026-01-28)
|
|
111
114
|
- 修复广播任务配置中 `content` 字段不保存的问题
|
|
112
115
|
- 添加 `content` 字段的默认值:活跃市值
|
|
113
116
|
|
|
114
|
-
### v1.0.16
|
|
117
|
+
### v1.0.16 (2026-01-28)
|
|
115
118
|
- 添加插件启动日志,方便确认插件是否正常加载
|
|
116
119
|
- 添加定时任务运行状态日志,方便调试
|
|
117
120
|
|
|
118
|
-
### v1.0.15
|
|
121
|
+
### v1.0.15 (2026-01-28)
|
|
119
122
|
- 修复定时广播任务不发送的问题
|
|
120
123
|
- 优化配置验证逻辑,添加了详细的错误日志
|
|
121
124
|
- 改进了 API 调用的错误处理,单个API失败不会中断整个任务执行
|
|
122
125
|
|
|
123
|
-
### v1.0.14
|
|
126
|
+
### v1.0.14 (2026-01-28)
|
|
124
127
|
- 改进定时广播配置,支持一个任务配置多个触发时间
|
|
125
128
|
- 支持指定多个目标 ID,支持一次广播给多个用户/群组
|
|
126
129
|
- 优化了广播发送逻辑,增强了错误处理能力
|
|
127
130
|
|
|
128
|
-
### v1.0.13
|
|
131
|
+
### v1.0.13 (2026-01-27)
|
|
129
132
|
- 新增定时广播任务功能,支持自定义时间发送指数和看板数据
|
|
130
133
|
- 自动识别中国交易日(排除周末及法定节假日)
|
|
131
134
|
|
|
132
|
-
### v1.0.12
|
|
135
|
+
### v1.0.12 (2026-01-27)
|
|
133
136
|
- 添加了"跌停看板"指令,可获取跌停股票看板图片
|
|
134
137
|
|
|
135
|
-
### v1.0.11
|
|
138
|
+
### v1.0.11 (2026-01-22)
|
|
136
139
|
- 添加了频道/群聊黑名单功能,支持按频道ID限制指令使用
|
|
137
140
|
|
|
138
|
-
### v1.0.10
|
|
141
|
+
### v1.0.10 (2026-01-22)
|
|
139
142
|
- 修复了"骑"指令,使用本地图片路径并返回base64编码的图片
|
|
140
143
|
|
|
141
|
-
### v1.0.9
|
|
144
|
+
### v1.0.9 (2026-01-22)
|
|
142
145
|
- 添加了"骑"指令,可返回本地图片
|
|
143
146
|
|
|
144
|
-
### v1.0.8
|
|
147
|
+
### v1.0.8 (2026-01-22)
|
|
145
148
|
- 添加了指令级黑名单功能,可为每个指令单独设置黑名单
|
|
146
149
|
|
|
147
|
-
### v1.0.7
|
|
150
|
+
### v1.0.7 (2026-01-22)
|
|
148
151
|
- 修复了一些小问题
|
|
149
152
|
|
|
150
|
-
### v1.0.6
|
|
153
|
+
### v1.0.6 (2026-01-22)
|
|
151
154
|
- 优化了部分功能
|
|
152
155
|
|
|
153
|
-
### v1.0.5
|
|
156
|
+
### v1.0.5 (2026-01-22)
|
|
154
157
|
- 添加了选股功能的数字编号支持
|
|
155
158
|
|
|
156
|
-
### v1.0.4
|
|
159
|
+
### v1.0.4 (2026-01-22)
|
|
157
160
|
- 添加了选股功能的数字编号(1-6对应不同策略)
|
|
158
161
|
|
|
159
|
-
### v1.0.3
|
|
162
|
+
### v1.0.3 (2026-01-22)
|
|
160
163
|
- 添加了选股功能,支持多种选股策略
|
|
161
164
|
|
|
162
|
-
### v1.0.2
|
|
165
|
+
### v1.0.2 (2026-01-22)
|
|
163
166
|
- 添加了涨停看板功能
|
|
164
167
|
|
|
165
|
-
### v1.0.1
|
|
168
|
+
### v1.0.1 (2026-01-22)
|
|
166
169
|
- 初始版本,包含活跃市值和异动分析功能
|
package/lib/index.js
CHANGED
|
@@ -319,7 +319,7 @@ function apply(ctx, config) {
|
|
|
319
319
|
ctx.command('活跃市值', '获取活跃市值数据')
|
|
320
320
|
.action(async ({ session }) => {
|
|
321
321
|
if (isUserInSpecificBlacklist(session, '活跃市值')) {
|
|
322
|
-
return
|
|
322
|
+
return;
|
|
323
323
|
}
|
|
324
324
|
try {
|
|
325
325
|
// 使用Koishi的HTTP服务发起请求获取数据
|
|
@@ -337,7 +337,7 @@ function apply(ctx, config) {
|
|
|
337
337
|
ctx.command('异动 <stockCode:text>', '获取指定股票的异动分析数据')
|
|
338
338
|
.action(async ({ session }, stockCode) => {
|
|
339
339
|
if (isUserInSpecificBlacklist(session, '异动')) {
|
|
340
|
-
return
|
|
340
|
+
return;
|
|
341
341
|
}
|
|
342
342
|
if (!stockCode) {
|
|
343
343
|
return '请输入股票代码,格式:异动 [股票代码]';
|
|
@@ -357,7 +357,7 @@ function apply(ctx, config) {
|
|
|
357
357
|
ctx.command('涨停看板', '获取涨停看板图片')
|
|
358
358
|
.action(async ({ session }) => {
|
|
359
359
|
if (isUserInSpecificBlacklist(session, '涨停看板')) {
|
|
360
|
-
return
|
|
360
|
+
return;
|
|
361
361
|
}
|
|
362
362
|
try {
|
|
363
363
|
// 使用Koishi的HTTP服务下载图片
|
|
@@ -378,7 +378,7 @@ function apply(ctx, config) {
|
|
|
378
378
|
ctx.command('跌停看板', '获取跌停看板图片')
|
|
379
379
|
.action(async ({ session }) => {
|
|
380
380
|
if (isUserInSpecificBlacklist(session, '跌停看板')) {
|
|
381
|
-
return
|
|
381
|
+
return;
|
|
382
382
|
}
|
|
383
383
|
try {
|
|
384
384
|
// 使用Koishi的HTTP服务下载图片
|
|
@@ -399,7 +399,7 @@ function apply(ctx, config) {
|
|
|
399
399
|
ctx.command('选股 <strategy:text>', '根据指定策略选股(支持策略:N型、填坑、少妇、突破、补票、少妇pro)')
|
|
400
400
|
.action(async ({ session }, strategy) => {
|
|
401
401
|
if (isUserInSpecificBlacklist(session, '选股')) {
|
|
402
|
-
return
|
|
402
|
+
return;
|
|
403
403
|
}
|
|
404
404
|
if (!strategy) {
|
|
405
405
|
return '请输入选股策略,格式:选股 [策略名称或编号]\n支持的策略:N型(1)、填坑(2)、少妇(3)、突破(4)、补票(5)、少妇pro(6)';
|
|
@@ -445,7 +445,7 @@ function apply(ctx, config) {
|
|
|
445
445
|
ctx.command('骑', '获取骑图片')
|
|
446
446
|
.action(async ({ session }) => {
|
|
447
447
|
if (isUserInSpecificBlacklist(session, '骑')) {
|
|
448
|
-
return
|
|
448
|
+
return;
|
|
449
449
|
}
|
|
450
450
|
try {
|
|
451
451
|
// 读取本地图片文件并转换为base64
|
|
@@ -470,7 +470,7 @@ function apply(ctx, config) {
|
|
|
470
470
|
const content = session.content?.trim();
|
|
471
471
|
if (content === '活跃市值') {
|
|
472
472
|
if (isUserInSpecificBlacklist(session, '活跃市值')) {
|
|
473
|
-
return
|
|
473
|
+
return;
|
|
474
474
|
}
|
|
475
475
|
try {
|
|
476
476
|
// 使用Koishi的HTTP服务发起请求获取数据
|
|
@@ -485,7 +485,7 @@ function apply(ctx, config) {
|
|
|
485
485
|
}
|
|
486
486
|
else if (content?.startsWith('异动 ')) {
|
|
487
487
|
if (isUserInSpecificBlacklist(session, '异动')) {
|
|
488
|
-
return
|
|
488
|
+
return;
|
|
489
489
|
}
|
|
490
490
|
// 解析股票代码
|
|
491
491
|
const match = content.match(/^异动\s+(.+)$/);
|
|
@@ -505,7 +505,7 @@ function apply(ctx, config) {
|
|
|
505
505
|
}
|
|
506
506
|
else if (content === '涨停看板') {
|
|
507
507
|
if (isUserInSpecificBlacklist(session, '涨停看板')) {
|
|
508
|
-
return
|
|
508
|
+
return;
|
|
509
509
|
}
|
|
510
510
|
try {
|
|
511
511
|
// 使用Koishi的HTTP服务下载图片
|
|
@@ -524,7 +524,7 @@ function apply(ctx, config) {
|
|
|
524
524
|
}
|
|
525
525
|
else if (content === '跌停看板') {
|
|
526
526
|
if (isUserInSpecificBlacklist(session, '跌停看板')) {
|
|
527
|
-
return
|
|
527
|
+
return;
|
|
528
528
|
}
|
|
529
529
|
try {
|
|
530
530
|
// 使用Koishi的HTTP服务下载图片
|
|
@@ -543,7 +543,7 @@ function apply(ctx, config) {
|
|
|
543
543
|
}
|
|
544
544
|
else if (content?.startsWith('选股 ')) {
|
|
545
545
|
if (isUserInSpecificBlacklist(session, '选股')) {
|
|
546
|
-
return
|
|
546
|
+
return;
|
|
547
547
|
}
|
|
548
548
|
// 解析选股策略
|
|
549
549
|
const match = content.match(/^选股\s+(.+)$/);
|
|
@@ -589,7 +589,7 @@ function apply(ctx, config) {
|
|
|
589
589
|
}
|
|
590
590
|
else if (content === '骑') {
|
|
591
591
|
if (isUserInSpecificBlacklist(session, '骑')) {
|
|
592
|
-
return
|
|
592
|
+
return;
|
|
593
593
|
}
|
|
594
594
|
try {
|
|
595
595
|
// 读取本地图片文件并转换为base64
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "koishi-plugin-stock",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.8",
|
|
4
4
|
"description": "A Koishi plugin that fetches stock data and provides market analysis, including active market cap, stock alerts, limit-up board, and stock selection features with configurable blacklists for each command.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"typings": "lib/index.d.ts",
|