12306 余票监控程序。
注意:本程序仅用来监控 12306 系统中的余票,并非用于抢票,也不会添加任何抢票相关的功能。程序作者不保证结果的准确性,不为任何使用本程序而产生的纠纷负责。
在 GitHub Release 页面下载本程序的二进制文件。
二进制文件使用 Node.js SEA 打包,目前仅有 Windows x86_64 和 arm64 版本提供。
将 配置 好的 config.json
放置于可执行程序相同目录下后,直接运行即可。
或者,运行一次程序后,修改生成的 config.json
。
前往 Node.js 官网 下载并安装,或使用 包管理器 安装。
直接 下载 Zip 文件,或使用 Git:
$ git clone [email protected]:BobLiu0518/CRTicketMonitor.git
$ npm i
本项目针对 Linux 服务器进行开发,安装 screen
后,运行 ./run.sh
即可启动。
如果使用其他系统,可以在命令行中输入 npm start
运行。
若 config.json
不存在,启动 CRTM 会自动生成 config.json
,可在其基础上进行更改。
下面的模板是 config.json
中全部可用的配置项及其说明。
需要注意,JSON
文件不允许出现注释,如果使用下面的模板,请删除所有 //
开头的内容。
{
// 查询列表
"watch": [
// 可添加多个查询
{
// 基础信息
"from": "上海", // 起点站(包含同城站)
"to": "北京", // 终点站(包含同城站)
"date": "20241001", // 日期(YYYYMMDD)
// 车次列表(选填),不填时默认为全部车次
"trains": [
{
"code": "G2", // 车次号
"from": "上海", // 指定起点站(选填)
"to": "北京南", // 指定终点站(选填)
"seatCategory": ["二等座"], // 限定席别(选填,详见下文)
"checkRoundTrip": true // 查询全程车票情况(选填)
}
]
}
],
// 推送配置(详见下文)
"notifications": [
{
// 浏览器推送
"type": "Browser",
// 监听地址(选填)
"host": "127.0.0.1",
// 监听端口
"port": 12306
},
{
// Wecom 酱推送
"type": "WecomChan",
// 应用 ID
"agentId": "",
// 应用 Secret
"secret": "",
// 企业 ID
"companyId": "",
// 发送目标 Uid
"toUid": "@all"
},
{
// HTTP 推送
"type": "HTTP",
// 推送地址
"url": ""
}
],
// 刷新间隔(分钟,选填)
"interval": 15,
// 访问延迟(秒,选填)
"delay": 5
}
在 config.json
中,选择以下推送配置项中的一项或多项填写。
同一种类的配置项可以设置多个。
门槛最低的推送方式,只需保持浏览器后台运行即可。
无需额外配置,直接运行即可。如果运行时提示端口 Permission denied
,需修改 config.json
中的端口号后重试。端口号可以选择 1024~65535 之间的数。当然,你愿意的话 0~1023 也可以
运行后,用浏览器打开提示的网址,允许浏览器进行通知即可。
安全起见,配置项中的监听地址 host
建议填写本机(即 127.0.0.1
)。如果有其他设备需要连接,则需改为 0.0.0.0
。
使用 Wecom 酱,可以直接将通知推送至微信。
配置方法详见 企业微信应用消息配置,将该文档中获取的 ①agentid
、②secret
、③企业ID
三项内容分别填入 config.json
即可。
可以搭配 OneBot、Sever 酱 Turbo、IFTTT 或其他任何可以使用 HTTP API 进行推送的平台进行推送。
直接在 config.json
中填写 URL 即可,消息的内容在经过 URL Encode 后会被拼接至 URL 末尾。
使用例(供参考):
OneBot:http://127.0.0.1:5700/send_private_msg?user_id=××××&message=
Server 酱 Turbo:https://sctapi.ftqq.com/××××.send?title=CRTicketMontor通知&desp=
当然,你也可以自行选用其他的推送方式,在 notifications.js
中进行编写即可。
可选的席别如下:
- 卧铺:
高级软卧
软卧
(含动卧一等卧)硬卧
(含二等卧)
- 坐票:
商务座
特等座
优选一等座
一等座
二等座
软座
硬座
无座
- 其他:
其他
(含包厢硬卧等)YB
(未知类型)SRRB
(未知类型)