仅用于学习和研究 Rust、Docker 与接口调用流程。请遵守法律法规、平台规则和活动规则;不要用于任何违法违规用途。账号、Cookie、配置和运行结果由使用者自行负责。
下面命令在 Windows PowerShell 里执行。
cd E:\dm-ticket第一次运行才需要执行。如果已经有 config\config.yaml,不要重复覆盖。
Copy-Item config\config.yaml.example config\config.yaml这里启动的是 token-server,用于提供程序需要的 bx_token / bx_ua。不用自己构建镜像。
docker compose -f docker-compose.dev.yml up -d$env:TOKEN_SERVER_URL="http://127.0.0.1:8080"
cargo run --bin dm-login用大麦 App 扫终端里的二维码。成功后,终端会输出一长串 Cookie。
浏览器里 Cookie 大概长这样,扫码登录输出的也是同类内容:
notepad config\config.yaml最少要改这些:
accounts:
- cookie: "这里粘贴扫码登录输出的 Cookie"
remark: 账号1
ticket:
id: "这里填门票 itemId"
num: 1
sessions: 1
grade: 1保存后关闭记事本。
$env:TOKEN_SERVER_URL="http://127.0.0.1:8080"
cargo run --bin dm-ticket运行后会打印账号、门票、场次、票档、开售时间等信息:
提交结果示例:
另一个运行示例:
抢票前不要执行这条。只有不用了再执行:
docker compose -f docker-compose.dev.yml down第一次运行:
cd E:\dm-ticket
Copy-Item config\config.yaml.example config\config.yaml
docker compose -f docker-compose.dev.yml up -d
$env:TOKEN_SERVER_URL="http://127.0.0.1:8080"
cargo run --bin dm-login
notepad config\config.yaml
$env:TOKEN_SERVER_URL="http://127.0.0.1:8080"
cargo run --bin dm-ticket以后再运行:
cd E:\dm-ticket
docker compose -f docker-compose.dev.yml up -d
$env:TOKEN_SERVER_URL="http://127.0.0.1:8080"
cargo run --bin dm-ticket不用了再停:
docker compose -f docker-compose.dev.yml down配置文件位置:
E:\dm-ticket\config\config.yaml
最重要的是这一段:
accounts:
- cookie: "你的 Cookie"
remark: 账号1
interval: 30
early_submit_time: 5
request_time: -1
wait_for_submit_time: 0
retry_times: 2
retry_interval: 100
ticket:
id: "721571231867"
num: 1
sessions: 1
grade: 2
priority_purchase_time: 0
pick_up_leaks:
num: 0
interval: 2000
times: 100
grades: [1, 2]| 配置 | 意思 |
|---|---|
cookie |
扫码登录后输出的 Cookie |
remark |
账号备注,随便写 |
ticket.id |
门票详情页 URL 里的 itemId |
ticket.num |
买几张票 |
ticket.sessions |
场次序号,从 1 开始 |
ticket.grade |
票档序号,从 1 开始 |
retry_times |
失败后重试几次 |
retry_interval |
每次重试间隔,单位毫秒 |
early_submit_time |
提前多少毫秒开始提交 |
wait_for_submit_time |
生成订单后等多久再提交,默认 0 |
门票详情页 URL 里一般有:
itemId=710947802955
那就填:
id: "710947802955"示例图:
点购买后看到场次列表,从第一个开始数:
sessions: 1示例图:
选完场次后看到票档,从第一个开始数:
grade: 1示例图:
依赖服务还没启动好。等几秒再运行,或者重新启动:
docker compose -f docker-compose.dev.yml up -d错误示例:
重新扫码:
$env:TOKEN_SERVER_URL="http://127.0.0.1:8080"
cargo run --bin dm-login然后把新 Cookie 填进 config\config.yaml。
执行:
Copy-Item config\config.yaml.example config\config.yamlsessions 和 grade 都是从 1 开始,不是从 0 开始。
如果看到:
Could not resolve host
lookup auth.docker.io timeout
failed to fetch oauth token
这是 Docker 网络、DNS 或代理问题,不是代码问题。
如果看到:
pull access denied for classmatelin/alitoken-server
说明你用的是旧版 compose 文件。当前仓库已经改成可拉取的:
xdp1998/alitoken-server:latest
先更新代码,或者手动把 docker-compose.dev.yml 里的 token-server 镜像改成上面这个。
cargo fmt --check
cargo test --locked -j1
cargo check --locked --bins -j1
cargo build --locked --release --bins -j1






