# dm-ticket **Repository Path**: killerddd3/dm-ticket ## Basic Information - **Project Name**: dm-ticket - **Description**: 大麦网自动购票, 支持docker一键部署。Damai automatically purchases tickets, running in docker container. - **Primary Language**: Rust - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2024-08-15 - **Last Updated**: 2024-08-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dm-ticket ## 简介 大麦网自动购票, 支持docker一键部署。 仅供学习。 ## 原理 - 扫码登录: - 1. API获取二维码输出到终端, 轮询扫码状态。 - 2. 扫码成功后, 获取cookie, 此时的cookie缺少某些字段无法使用。 - 3. chromedriver操作浏览器带上第2步获取的cookie跳转h5用户信息页面, 得到最终的cookie。 - 抢票: - 1. 通过API生成订单, 提交订单。 ## 特别声明 - 本项目内所有资源文件,禁止任何公众号、自媒体进行任何形式的转载、发布。 - 编写本项目主要目的为学习和研究Rust,无法保证项目内容的合法性、准确性、完整性和有效性。 - 本项目涉及的数据由使用的个人或组织自行填写,本项目不对数据内容负责,包括但不限于数据的真实性、准确性、合法性。使用本项目所造成的一切后果,与本项目的所有贡献者无关,由使用的个人或组织完全承担。 - 本项目中涉及的第三方硬件、软件等,与本项目没有任何直接或间接的关系。本项目仅对部署和使用过程进行客观描述,不代表支持使用任何第三方硬件、软件。使用任何第三方硬件、软件,所造成的一切后果由使用的个人或组织承担,与本项目无关。 - 本项目中所有内容只供学习和研究使用,不得将本项目中任何内容用于违反国家/地区/组织等的法律法规或相关规定的其他用途。 - 所有基于本项目源代码,进行的任何修改,为其他个人或组织的自发行为,与本项目没有任何直接或间接的关系,所造成的一切后果亦与本项目无关。 - 所有直接或间接使用本项目的个人和组织,应24小时内完成学习和研究,并及时删除本项目中的所有内容。如对本项目的功能有需求,应自行开发相关功能。 - 本项目保留随时对免责声明进行补充或更改的权利,直接或间接使用本项目内容的个人或组织,视为接受本项目的特别声明。 ## 运行方式 ### 使用docker **请确保您已成功安装Docker/docker-compose**。 1. 下载[docker-compose.yml](https://github.com/ClassmateLin/dm-ticket/blob/main/docker-compose.yml)文件。 2. 启动服务: `docker-compose up -d` 3. 执行任务: `docker exec -it dm-ticket dm-client` - 扫码登录: 扫码登录 - 选择演唱会: 演唱会 - 选择场次: 场次 - 选择票档 票档 - 选择数量: 数量 - 重试次数, 默认: 5次 - 重试间隔, 默认: 100毫秒 - 生成/提交订单间隔: 默认: 30毫秒 - 请求时间偏移量: 负数=>提前发送数据包, 正数推迟发送数据包, 默认0, 单位毫秒。 - 优先购时长: 正式抢购时间 - 优先购时间, 默认: 0, 单位分钟。 ### 使用Rust - [Rust官网](https://www.rust-lang.org/) - [Rust字节镜像源](https://rsproxy.cn/) - [Rust语言圣经](https://course.rs/about-book.html) - [Rust中文社区](https://rustcc.cn/) - [Rust环境安装教程](https://course.rs/first-try/installation.html) **请确保您已成功安装Rust/Redis** 1. 下载浏览器对应版本的[chromedriver](https://chromedriver.chromium.org/downloads)(chrome浏览器地址栏输入`chrome://version/`可查看版本号!) 2. 启动chromedriver: `chromedriver --port=9515 --whitelisted-ips=` 3. 获取项目: `git clone https://github.com/ClassmateLin/dm-ticket.git` 4. 配置项目: `cd dm-ticket; cp .env.example .env;` 5. 启动server: `cargo run --bin dm-server` 6. 启动client: `cargo run --bin dm-client` ## 常见问题 - 仅支持[h5](https://m.damai.cn)可以购买的票, 不支持选座位。 - **现大部分门票已不支持h5端购买, 故不再更新。** - 实名信息怎么选择? 按实名信息顺序, 自动选择。 如购买2张票, 默认选择前两位实名人。 ## 其他 如果我的项目对您有帮助: 票档 #### 其他项目 - [zzdns](https://github.com/ClassmateLin/zzdns): 使用Rust构建的一款快速本地 DNS 解析器,用于提供更好的网络体验。支持Docker一键部署。 - [cfdns](https://github.com/ClassmateLin/cfdns): 一个本地DNS服务器, 用于测试 Cloudflare CDN 延迟和速度,获取最快 IP (IPv4 )。支持docker一键部署。 - [rust-scripts](https://github.com/ClassmateLin/rust-scripts): Rust写的一些小工具。 - [...](https://github.com/ClassmateLin?tab=repositories&q=&type=&language=&sort=)