英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。
Tickets
基于 Tauri + Rust + Vue 3 的多平台购票工作台,支持 大麦 H5 与 Bilibili 会员购。
左侧切换平台,分别填写账号与活动信息。等待开售、购票重试与取消由 Rust 后端管理,切换页面不影响已启动的任务。
本项目用于技术学习与交流,请合理使用,勿用于商业代抢。
功能
- 多平台工作台:大麦、Bilibili、任务与记录、设置与帮助;各平台表单与任务独立。
- 活动与票档:解析官方链接或项目编号,选择场次、票档、观演人及购买数量;会员购支持按活动日期加载场次、联系人与配送地址。
- 后端定时:预约开售、限制尝试次数、控制重试间隔、随时停止;每个平台同时最多运行一个购票任务,余票监控可同时运行多个。
- 余票监控:大麦与会员购支持监控指定场次、票档,设置开始/结束时间、查询间隔与次数;首次发现可购票档时提醒并结束监控。
- 微信提醒:在应用内扫码绑定微信 ClawBot,大麦与会员购创建订单成功或发现余票时直接发送提醒,支持查看连接状态、测试通知和解绑。
- 自动校时:优先请求淘宝公共时间接口,失败时使用 Bilibili 时间接口;多次采样选取往返耗时最小的结果,自动填写修正值并显示估计误差。
- 订单处理:凭证失效后重新准备订单;验证、限购、重复订单等情况停止并提示处理。下单响应无法确认时提示检查官方订单,避免盲目重试。
- 统一账号:按平台管理多个账号及 Cookie,设置默认账号;购票与监控共用,旧版已保存凭证自动迁入。
- 记录与设置:实时任务状态、成功提示音、SQLite 操作日志、按平台/日期/关键词筛选、导出、全局代理和运行标识。
- 界面配色:四套预设、浅色/深色模式,以及全局与 Bilibili 独立主色;即时预览,保存后自动恢复。
- 订阅代理:使用
subscription-proxy-pool = "0.1.0"管理多个订阅、刷新节点、自动轮换或固定节点,兼容原有手动代理地址。 - 随机 UA:平台接口、公共校时、订阅下载和更新检查均通过 Rust 使用
ua_generator生成随机 User-Agent;会员购的相关请求指纹同步使用当次 UA。
下载
前往 Releases 选择对应系统的安装包。新功能以当前源码为准,已发布安装包可能尚未包含。
本地运行
需要 Node.js 18+、Rust 1.89 或更新的稳定版,以及 Tauri 1 系统依赖。
npm ci
npm run tauri dev
项目通过 .cargo/config.toml 使用 crates.io 官方 sparse 源,避免全局镜像缺少 subscription-proxy-pool 等依赖导致启动失败;无需修改本机全局 Cargo 配置。使用 pnpm 时也可执行 pnpm run tauri dev。
仅预览界面:
npm run dev
浏览器预览不执行平台请求、数据库操作或购票任务,这些功能需要在桌面应用中使用。
构建:
npm run build
npm run tauri build
安装包位于 src-tauri/target/release/bundle/。
使用
- 在 设置与帮助 → 账号与 Cookie 中选择平台并添加账号。用浏览器登录对应平台,在活动页面的开发者工具 Network 中找到接口请求,复制 Request Headers 中的完整 Cookie。大麦使用 H5 页面,Cookie 需要包含
_m_h5_tk;Bilibili 需要包含SESSDATA和bili_jct。 - 保存账号后回到大麦或 Bilibili 工作台,选择已保存账号,粘贴官方活动链接或直接填写项目编号,点击 加载活动。未指定账号时自动选用该平台默认账号。
- 选择场次与票档,再选择与购买张数一致的观演人。Bilibili 还需填写联系人、电话;需配送的票档选择收货地址。观演人与地址需预先在官方平台添加。
- 按需启用 定时开始。开售时间会自动带入,日期输入统一按北京时间(UTC+8)解释。
- 设置尝试次数与重试间隔,点击 开始购票 或 创建预约任务。可切换平台继续操作,在平台页或任务页停止任务。
- 订单创建成功后点击 前往支付,在官方订单页面确认并支付。启用微信购票与余票提醒后,会同时收到待支付通知。
大麦链接示例:https://m.damai.cn/damai/detail/item.html?itemId=720545258599
会员购链接支持 show.bilibili.com/platform/detail.html?id=... 与 mall.bilibili.com/neul-next/ticket-renovation/detail.html?id=...。
校时与定时
修正值定义为:服务器时间 − 本机时间。例如修正值为 +150 ms,表示本机慢了约 150 毫秒。
后端等待时长为 目标开售时间 − 修正值 − 当前本机时间,前端倒计时仅用于显示。已启动任务使用创建时的修正值,后续校时不会改变其触发时间。
- 公共时间接口为
api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp与api.bilibili.com/x/report/click/now,校时请求不携带账号 Cookie。 - Bilibili 时间接口只有秒级精度,界面会显示相应误差,不保证毫秒级准确。
- 校时失败保留当前修正值,允许稍后重试或手动填写。
- 保持应用运行、电脑唤醒和网络畅通;退出应用会停止任务,重启后不会自动恢复下单。
本地数据
账号在 设置与帮助 → 账号与 Cookie 中独立保存,支持按平台添加多个账号、设默认、更新和删除。Cookie 以明文存于当前设备的统一账号库 tickets.accounts;购票和监控表单只保存账号 ID,不复制凭证。删除账号会移除账号库中的 Cookie;更新或删除不改变已启动任务持有的凭证,后续查询和任务使用当前账号,更新后需重新加载已打开的活动。被删除的显式选择需要重新选择账号。
启动时自动迁移旧版购票、监控表单中勾选“记住 Cookie”的凭证,同平台相同 Cookie 合并,不同 Cookie 分别保留为账号;迁移成功后清除旧表单中的凭证。未勾选记住的凭证不会保存。账号持久化失败会提示错误,原数据保留,可重新读取后重试。保存账号只校验格式,不代表登录仍有效;Cookie 过期后在账号管理中更新一次即可。
完整观演人信息只用于当前运行,不写入日志或任务历史。通用设置统一保存在本机 tickets.settings,保存成功后才生效;旧 SQLite SETTINGS 中的代理和运行标识会补充迁入尚未保存的字段,原表保留。日志继续使用 LOG / 运行标识_LOG 表,写入使用参数绑定。开发环境与正式环境分别使用 sql-test.db 与 sql.db。
配色与订阅
在 设置与帮助 → 界面配色 中选择预设或自定义主色,可切换浅色/深色。修改立即预览;点击 保存设置 后持久化。未保存就离开设置页时恢复已保存配色。
在 代理与订阅 中选择 订阅节点,添加名称和 HTTP(S) 订阅链接,选择要使用的订阅并保存。选中订阅会自动加载,也可点击 刷新订阅 手动更新;选择节点后再次保存。各平台页仍需勾选 使用全局代理。
- 支持 Clash YAML / JSON、逐行代理链接,以及这些格式的 Base64 编码。可用节点协议为 HTTP、HTTPS、SOCKS5/H;SS、SSR、VMess、VLESS、Trojan、Hysteria 等节点会跳过,不会自动启动协议转换程序。
- 自动选择会在创建客户端时轮换节点;固定节点则始终使用所选节点。创建任务时固定代理,后续编辑或删除订阅不改变已创建任务的节点。
- 订阅刷新使用 ETag / Last-Modified 条件请求;同一链接刷新失败时保留本次运行中已加载的节点。失效订阅或已删除节点会明确报错。
- 配色、订阅名称/链接与节点选择保存在本机。订阅链接可能含访问令牌;节点认证信息仅存于后端内存,不写入日志或前端历史。重启后会重新加载选中的订阅。
- 浏览器仅支持界面预览和配置编辑;订阅刷新、更新检查及业务接口需要桌面应用。
余票监控与微信通知
- 在左侧独立的 余票监控 标签页点击 新增监控,选择大麦或会员购及已保存账号,填写活动链接,加载活动后选择场次、票档。售罄和未开售票档也可以选择,无需观演人或联系人信息。
- 设置查询间隔(默认 60 秒,可设 5–3600 秒)、最多查询次数(0 为不限),可预约开始并指定结束时间,统一使用北京时间。
- 点击 开始余票监控 或 预约余票监控。添加后回到监控列表,可继续新增同平台或跨平台的其他活动、场次和票档。每个监控独立运行和停止,可按平台或运行状态筛选;监控不占用购票名额,每个平台仍最多运行一个购票任务,应用同时最多运行 100 个任务;切换页面不会停止任务,退出应用或重启后不会自动恢复。
- 首次发现可购票档时立即在应用内提醒,启用提示音时播放声音;启用微信后再发送通知,包含活动、场次、票档及官方商品链接。提醒后任务结束,不自动下单。若微信发送失败,任务保留“发现余票”和商品链接,单独提示微信通知未确认送达;发送超时可能已送达,因此不自动重复发送,可在设置页检查通道后重新启动监控。
微信通知在 Tickets 内直接绑定,无需安装 OpenClaw 或配置大模型:
- 在桌面应用的 设置与帮助 → 微信 ClawBot 通知 中点击 扫码绑定微信,使用微信扫描二维码并确认。服务端要求验证码时,在页面填写后提交;二维码过期可重新获取。
- 绑定成功后,在微信中向刚绑定的 Bot 发一条消息。应用收到消息后自动识别接收会话,并显示 已连接。
- 点击 发送测试通知,在微信确认收到后,启用 微信购票与余票提醒。提醒开关和微信绑定均独立立即保存,无需再点页面上方 保存设置,同时适用于大麦和会员购。测试通知不会自动开启购票提醒;页面会明确显示当前是否启用。
购票任务在平台确认创建订单成功后发送一次微信通知,包含平台、活动、场次、票档和官方支付入口。通知表示订单已创建、等待支付,不代表支付成功,请及时前往官方页面处理。微信未绑定、登录失效或发送失败不会阻止购票,也不改变成功订单或触发重新下单;通知结果会显示在任务状态中,发送失败会单独弹出提示。任务启动时未启用提醒的,成功后明确显示“微信通知未发送:任务启动时未启用提醒”,可从任务卡片进入微信通知设置。发送超时可能已送达,因此不自动重复发送。
实现依据腾讯公开的 微信插件协议,由 Rust 后端通过 HTTPS 完成扫码、收取会话消息和发送通知。二维码在本地生成,登录凭证与会话令牌以未加密的明文保存在应用数据目录的 wechat/binding.json,仅由后端读写,不传入前端设置或操作日志;Unix 系统使用目录 0700、文件 0600 权限。旧版 OpenClaw 路径、账号和接收人配置需要重新扫码绑定,不能直接用于当前连接。
保持应用运行才能接收消息并发送提醒,退出应用后停止通知。绑定保留到下次启动,可在设置中解除;切换设置页面会取消尚未完成的扫码。购票与监控任务固定启动时已保存的提醒开关、Bot 账号和接收人,更改设置只对新任务生效。同一账号重新登录或收到新消息时,会使用更新后的凭证。长时间没有对话导致发送失败时,请先向 Bot 发一条消息刷新会话,登录失效则重新扫码。长期会话有效期及服务端主动发送限制仍需实际微信账号验证,测试通知成功不代表可以无限期主动推送。
监控只读取详情接口,不通过尝试下单探测库存。明确有库存或可售状态才通知;字段缺失、未知状态或目标票档暂未返回时继续等待。库存数为 0、未开售、停售、售罄、登记/候补状态不视为有票。查询失败会延迟重试,连续 5 次失败后停止并提示检查网络及登录状态。接口有缓存或不公开库存时可能无法及时检测,收到通知时票也可能已售出,最终以官方页面为准。
支持范围
- 大麦以 H5 接口支持的活动为准,会员购优先使用新商品详情接口,兼容旧详情接口。
- 当前支持无需选座的票档;支付在官方页面完成。
- 登录过期或需要人机验证时,先在官方页面处理,再重新加载活动并启动任务。
- 平台接口可能变化。构建和模拟测试不能替代真实账号、实际开售时的验证,也不保证一定购票成功。
待办事项
- 其他平台支持
- 聚合搜索
更新记录
- 新增自定义配色和深色模式,接入订阅代理管理,统一接口随机 UA,并使预约任务固定所选代理。
- 新增 Bilibili 会员购,更新商品详情、订单准备与
createV2链路,支持有效订单编号确认和官方支付入口。 - 重做工作台界面,新增独立平台标签、任务记录页与设置帮助页。
- 修复大麦多场次选择、观演人数统计和订单层级组装;移除旧前端购票循环。
- 保留原有 SQLite 日志与运行标识配置,修复带引号内容的日志写入。
星标历史
- 本文标题:tickets - 大麦网(大麦)
- 本文链接:https://www.cn121.com/desktop/shiyutim-tickets.html
- 原项目:shiyutim/tickets 版权归原作者 shiyutim 及贡献者所有
- 收录信息:本站于 2026-10-07 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
- 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
- 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 shiyutim/tickets。
- 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
- 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
- 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。