koishi-plugin-stock 1.0.8 → 1.0.10
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 +55 -8
- package/images/qi.jpeg +0 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +52 -0
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -1,25 +1,72 @@
|
|
|
1
1
|
# koishi-plugin-stock
|
|
2
2
|
|
|
3
|
-
一个Koishi
|
|
3
|
+
一个Koishi插件,当用户发送特定命令时自动获取股票数据并显示结果。支持活跃市值、异动分析、涨停看板和选股功能,并提供指令级黑名单配置。
|
|
4
4
|
|
|
5
5
|
## 功能
|
|
6
6
|
|
|
7
|
-
- 用户发送"活跃市值"命令时,自动从
|
|
8
|
-
- 用户发送"异动 [股票代码]"命令时,自动从
|
|
9
|
-
- 用户发送"涨停看板"
|
|
10
|
-
- 用户发送"选股 [策略名称]"命令时,自动从
|
|
7
|
+
- 用户发送"活跃市值"命令时,自动从 `indexes`API获取数据并格式化显示
|
|
8
|
+
- 用户发送"异动 [股票代码]"命令时,自动从 `analyze`API获取指定股票的异动分析数据
|
|
9
|
+
- 用户发送"涨停看板"命令时,自动从 `limit_up`API下载图片并显示
|
|
10
|
+
- 用户发送"选股 [策略名称]"命令时,自动从 `dyq_select` API获取选股结果
|
|
11
|
+
- 用户发送"骑"命令时,自动返回 `images/qi.jpeg` 图片
|
|
12
|
+
- 支持为每个指令单独设置黑名单,可限制特定用户使用特定功能
|
|
11
13
|
- 自动格式化数据显示给用户
|
|
12
14
|
|
|
13
15
|
## 安装
|
|
14
16
|
|
|
15
17
|
```bash
|
|
16
|
-
npm install koishi-plugin-
|
|
18
|
+
npm install koishi-plugin-stock
|
|
17
19
|
```
|
|
18
20
|
|
|
19
21
|
## 配置
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
此插件支持以下配置选项:
|
|
24
|
+
|
|
25
|
+
- `allCommandsBlacklist`: 全部指令黑名单用户ID数组
|
|
26
|
+
- `activeMarketCapBlacklist`: 活跃市值指令黑名单用户ID数组
|
|
27
|
+
- `stockAlertBlacklist`: 异动指令黑名单用户ID数组
|
|
28
|
+
- `limitUpBoardBlacklist`: 涨停看板指令黑名单用户ID数组
|
|
29
|
+
- `stockSelectionBlacklist`: 选股指令黑名单用户ID数组
|
|
30
|
+
- `rideBlacklist`: 骑指令黑名单用户ID数组
|
|
22
31
|
|
|
23
32
|
## 使用
|
|
24
33
|
|
|
25
|
-
|
|
34
|
+
- 发送"活跃市值"获取最新的市场指数数据
|
|
35
|
+
- 发送"异动 [股票代码]"获取指定股票的异动分析,如"异动 000001"
|
|
36
|
+
- 发送"涨停看板"获取涨停股票看板图片
|
|
37
|
+
- 发送"选股 [策略名称或编号]"获取选股结果,支持的策略:N型(1)、填坑(2)、少妇(3)、突破(4)、补票(5)、少妇pro(6)
|
|
38
|
+
- 发送"骑"获取图片
|
|
39
|
+
|
|
40
|
+
配置黑名单可在插件设置中进行,将特定用户ID添加到相应指令的黑名单中即可限制其使用权限。
|
|
41
|
+
|
|
42
|
+
## 更新日志
|
|
43
|
+
|
|
44
|
+
### v1.0.10
|
|
45
|
+
- 修复了"骑"指令,使用本地图片路径并返回base64编码的图片
|
|
46
|
+
|
|
47
|
+
### v1.0.9
|
|
48
|
+
- 添加了"骑"指令,可返回本地图片
|
|
49
|
+
|
|
50
|
+
### v1.0.8
|
|
51
|
+
- 添加了指令级黑名单功能,可为每个指令单独设置黑名单
|
|
52
|
+
|
|
53
|
+
### v1.0.7
|
|
54
|
+
- 修复了一些小问题
|
|
55
|
+
|
|
56
|
+
### v1.0.6
|
|
57
|
+
- 优化了部分功能
|
|
58
|
+
|
|
59
|
+
### v1.0.5
|
|
60
|
+
- 添加了选股功能的数字编号支持
|
|
61
|
+
|
|
62
|
+
### v1.0.4
|
|
63
|
+
- 添加了选股功能的数字编号(1-6对应不同策略)
|
|
64
|
+
|
|
65
|
+
### v1.0.3
|
|
66
|
+
- 添加了选股功能,支持多种选股策略
|
|
67
|
+
|
|
68
|
+
### v1.0.2
|
|
69
|
+
- 添加了涨停看板功能
|
|
70
|
+
|
|
71
|
+
### v1.0.1
|
|
72
|
+
- 初始版本,包含活跃市值和异动分析功能
|
package/images/qi.jpeg
ADDED
|
Binary file
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -9,6 +9,7 @@ exports.Config = koishi_1.Schema.object({
|
|
|
9
9
|
stockAlertBlacklist: koishi_1.Schema.array(String).description('异动指令黑名单用户ID'),
|
|
10
10
|
limitUpBoardBlacklist: koishi_1.Schema.array(String).description('涨停看板指令黑名单用户ID'),
|
|
11
11
|
stockSelectionBlacklist: koishi_1.Schema.array(String).description('选股指令黑名单用户ID'),
|
|
12
|
+
rideBlacklist: koishi_1.Schema.array(String).description('骑指令黑名单用户ID'),
|
|
12
13
|
});
|
|
13
14
|
function apply(ctx, config) {
|
|
14
15
|
// 检查用户是否在特定指令的黑名单中
|
|
@@ -36,6 +37,11 @@ function apply(ctx, config) {
|
|
|
36
37
|
return true;
|
|
37
38
|
}
|
|
38
39
|
break;
|
|
40
|
+
case '骑':
|
|
41
|
+
if (config.rideBlacklist?.includes(userId)) {
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
break;
|
|
39
45
|
}
|
|
40
46
|
// 检查全局黑名单
|
|
41
47
|
if (config.allCommandsBlacklist?.includes(userId)) {
|
|
@@ -148,6 +154,30 @@ function apply(ctx, config) {
|
|
|
148
154
|
return `获取【${strategy}】选股数据失败,请稍后重试。`;
|
|
149
155
|
}
|
|
150
156
|
});
|
|
157
|
+
// 监听骑命令
|
|
158
|
+
ctx.command('骑', '获取骑图片')
|
|
159
|
+
.action(async ({ session }) => {
|
|
160
|
+
if (isUserInSpecificBlacklist(session, '骑')) {
|
|
161
|
+
return '您已被加入黑名单,无法使用此功能。';
|
|
162
|
+
}
|
|
163
|
+
try {
|
|
164
|
+
// 读取本地图片文件并转换为base64
|
|
165
|
+
const fs = require('fs').promises;
|
|
166
|
+
const path = require('path');
|
|
167
|
+
// 构建图片的绝对路径
|
|
168
|
+
const imagePath = path.resolve(__dirname, '../images/qi.jpeg');
|
|
169
|
+
// 读取图片文件
|
|
170
|
+
const imageData = await fs.readFile(imagePath);
|
|
171
|
+
// 将图片数据转换为base64编码
|
|
172
|
+
const base64Image = imageData.toString('base64');
|
|
173
|
+
// 返回base64编码的图片
|
|
174
|
+
return `<img src="data:image/jpeg;base64,${base64Image}" />`;
|
|
175
|
+
}
|
|
176
|
+
catch (error) {
|
|
177
|
+
console.error('获取骑图片失败:', error);
|
|
178
|
+
return '获取骑图片失败,请稍后重试。';
|
|
179
|
+
}
|
|
180
|
+
});
|
|
151
181
|
// 使用中间件方式监听特定关键词(作为备用方案)
|
|
152
182
|
ctx.middleware(async (session, next) => {
|
|
153
183
|
const content = session.content?.trim();
|
|
@@ -251,6 +281,28 @@ function apply(ctx, config) {
|
|
|
251
281
|
}
|
|
252
282
|
}
|
|
253
283
|
}
|
|
284
|
+
else if (content === '骑') {
|
|
285
|
+
if (isUserInSpecificBlacklist(session, '骑')) {
|
|
286
|
+
return '您已被加入黑名单,无法使用此功能。';
|
|
287
|
+
}
|
|
288
|
+
try {
|
|
289
|
+
// 读取本地图片文件并转换为base64
|
|
290
|
+
const fs = require('fs').promises;
|
|
291
|
+
const path = require('path');
|
|
292
|
+
// 构建图片的绝对路径
|
|
293
|
+
const imagePath = path.resolve(__dirname, '../images/qi.jpeg');
|
|
294
|
+
// 读取图片文件
|
|
295
|
+
const imageData = await fs.readFile(imagePath);
|
|
296
|
+
// 将图片数据转换为base64编码
|
|
297
|
+
const base64Image = imageData.toString('base64');
|
|
298
|
+
// 返回base64编码的图片
|
|
299
|
+
return `<img src="data:image/jpeg;base64,${base64Image}" />`;
|
|
300
|
+
}
|
|
301
|
+
catch (error) {
|
|
302
|
+
console.error('获取骑图片失败:', error);
|
|
303
|
+
return '获取骑图片失败,请稍后重试。';
|
|
304
|
+
}
|
|
305
|
+
}
|
|
254
306
|
return next();
|
|
255
307
|
});
|
|
256
308
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "koishi-plugin-stock",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "A Koishi plugin that fetches stock data
|
|
3
|
+
"version": "1.0.10",
|
|
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",
|
|
7
7
|
"scripts": {
|
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
"./package.json": "./package.json"
|
|
19
19
|
},
|
|
20
20
|
"files": [
|
|
21
|
-
"lib"
|
|
21
|
+
"lib",
|
|
22
|
+
"images"
|
|
22
23
|
],
|
|
23
24
|
"keywords": [
|
|
24
25
|
"koishi",
|