-
Notifications
You must be signed in to change notification settings - Fork 283
Expand file tree
/
Copy pathkzz_spider.mjs
More file actions
75 lines (66 loc) · 2.56 KB
/
kzz_spider.mjs
File metadata and controls
75 lines (66 loc) · 2.56 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// scripts/kzz_spider.mjs
import MessageSender from '../../utils/message_sender.js';
import {getNowKzz} from "../mjs/kzz-util.mjs";
function formatBondMessage(bonds) {
// 获取当前时间并格式化
const now = new Date();
// 格式化日期为 YYYY-MM-DD
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, '0');
const day = String(now.getDate()).padStart(2, '0');
// 格式化时间为 HH:mm:ss
const hours = String(now.getHours()).padStart(2, '0');
const minutes = String(now.getMinutes()).padStart(2, '0');
const seconds = String(now.getSeconds()).padStart(2, '0');
// 获取星期几(0-6,0表示星期日)
const weekDay = now.getDay();
// 将星期转换为数字格式(0=星期日,1=星期一,...6=星期六)
const weekDayNumber = weekDay === 0 ? 0 : weekDay;
const weekDict = {
0: '天',
1: '一',
2: '二',
3: '三',
4: '四',
5: '五',
6: '六',
};
const weekName = weekDict[weekDayNumber];
// 组装标题和时间信息
let message = "可转债打新消息推送\n";
message += `现在是: ${year}-${month}-${day} ${hours}:${minutes}:${seconds} 星期${weekName}\n`;
// 添加每条债券信息
if (bonds && bonds.length > 0) {
bonds.forEach(bond => {
message += `${bond.name}[${bond.code}] 申购日:${bond.date}\n`;
});
} else {
message += `近日暂未可转债打新消息`;
}
return message;
}
export default {
schedule: {
cron: '0 0 9 * * 1,2,3,4,5', // 每周工作日9点
timezone: 'Asia/Shanghai', // 直接用北京时间时区
runOnInit: false // 启动时立即执行一次
},
run: async (fastify) => {
fastify.log.info('📊 kzz_spider.mjs send dingtalk message...');
let kzzData = await getNowKzz(
`获取未来3天的可转债数据`,
'http://data.eastmoney.com/kzz/',
3
);
// console.log(kzzData);
// kzzData = [
// {name: '微导转债', code: '118058', date: '2025-08-06'},
// {name: '晶科转债', code: '118099', date: '2025-08-07'},
// {name: '隆基转债', code: '113050', date: '2025-08-08'}
// ];
const sendMsg = formatBondMessage(kzzData);
await MessageSender.send(sendMsg);
fastify.log.info(`📤 send dingtalk message successfully: ${sendMsg}`);
fastify.log.info('📤 kzz_spider.mjs send dingtalk message successfully');
}
};