程序聚合 软件案例 香港中文大学(深圳)音乐学院琴房自动预定脚本-MUS Booking

香港中文大学(深圳)音乐学院琴房自动预定脚本-MUS Booking

2025-11-18 03:22:42
行业:生活服务
载体:Windows应用、Mac应用
技术:Python

业务和功能介绍

## 立项背景与目标
MUS Booking System 面向香港中文大学(深圳)音乐学院琴房预约,解决官方系统登录繁琐、网络敏感、热门琴房成功率低等问题。项目提供生产级(v2.10.0)自动化工具,在 VPN、校园网或 Reqable 环境下一键完成登录、批量与定时抢房,在满足校内安全要求前提下提升成功率和体验。

## 软件功能与核心模块

### 自动登录与 Cookie
通过 GUI 一键登录,自动填写学号与密码、提交表单并抓取 Cookie,保证身份合法和会话稳定。

### 智能网络适配
自动识别校园网/VPN、Reqable(127.0.0.1:9000)及系统代理,也可在 Cookie 面板手动检测,确保对 SSL 要求严格的校内接口在不同网络下可访问。

### 定时与批量预订
支持“立即执行”与“定时执行”,可将多个琴房与日期组合成一个任务并按优先级依次尝试,一旦成功即停止;超过 2 小时的请求会自动拆分为多个 2 小时时段,以符合教务规则。

### GUI 客户端与预订引擎
桌面端由 src/GUI.py 提供主窗口、设置、Cookie、自动登录与任务管理等界面;核心逻辑由 src/main.py 中的 CrazyRequests 与 book() 完成,封装 SSL 容错、代理路由、统一 UA/Cookie 头及琴房 ID 映射,并在失败时返回可读错误信息。

### 配置与质量保障
config.yaml 统一保存启动时间、执行模式、代理与 Cookie 信息、用户档案及请求列表,便于在“单次抢房/连续预约”等场景间复用。测试脚本覆盖网络、SSL、Qt 代理、预约接口和自动登录,配合 PySide6、WebEngine、PyYAML、requests 等依赖,保证主要平台的一致行为。

## 业务流程与功能路径

###准备:下载并解压发行包,在“设置”中填写学号、密码、联系方式等,可通过“自动检测”完成 VPN/代理适配和配置初始化。

###建模:在主界面点击“+ 添加一组预定请求”,选择琴房、日期和时间段,可设置多个备选方案,自动写入 config.yaml。

###执行:选择立即或定时启动后,AutoLogin 获取最新 Cookie,BookingWorker 依次调用 book() 提交请求,并按规则进行 2 小时拆分与“成功即停”。

###结果与复盘:日志实时显示成功记录及失败原因(如 Cookie 过期、网络异常、放号竞争失败等),用户可据此排查网络或更新 Cookie,并结合历史记录优化后续策略。

综合来看,MUS Booking System 通过可视化配置界面、稳健预订引擎、智能网络适配及完善测试文档,构建了“准备 → 建模 → 执行 → 反馈与复盘”的闭环流程,有效降低琴房预约的人力成本和失败风险。

项目实现

## 整体架构与设计思路
项目按 MVC 分层:PySide6 组件树做 View,MainWindow 负责信号-slot 调度与任务编排;config、workers 承载数据与业务,配合 requests 和自研 CrazyRequests 组成网络层对接订房接口。目录按“核心逻辑 + GUI 组件 + 对话框 + 工具层”拆分,旧版 GUI.py 与新模块并行,便于重构排错。

配置用 dataclass + YAML,用于持久化用户数据及 UI 默认值、表单回填。BookingWorker 将定时器、拆单和日志信号放入 QThread,避免界面阻塞。CrazyRequests 自动处理 SSL、代理和 Cookie,并与 ProxyDetector 联动,使“开始”按钮一键串起 Cookie 捕获、请求构造与日志展示。

##模块与技术栈
View 由 widgets、dialogs 组成;Controller 为 MainWindow;Model / Service 为 AppConfig、RequestItemData、book()、timer_run()、BookingWorker,对订房接口做封装与调度。通过 PyInstaller 多文件打包和自定义 spec 生成约 207MB 的开箱即用发行版。主要依赖 PySide6/QtWebEngine、requests/CrazyRequests、PyYAML/dataclasses 及系统接口;tests 覆盖网络、SSL、代理和自动登录回归。

##坑与难点及解决方案
1)SSL 握手失败
AnyConnect VPN 下接口对 requests 持续抛出握手失败,而 Qt WebEngine 与 Reqable 可正常 TLS。最终方案:自动登录走 WebEngine 直连,请求统一经 Reqable 代理;ProxyDetector 按“直连 → Reqable → 系统代理”回退,并将结果落盘,重启可复现稳定路径。

2)自动获取 Cookie 与降级
通过 AutoLoginDialog 内嵌 QtWebEngine,集成浏览器控件,在捕获成功 URL 后延迟提取 Cookie,同时将 Reqable 写入 QtNetwork.QNetworkProxy,保持与流程代理一致;缺少 WebEngine 时提供手动粘贴 Cookie 的降级,并校验关键字段,避免写入无效配置。

3)多线程定时抢房
热门琴房需在时间窗口内 POST 并拆分时段。BookingWorker 将等待与请求循环放入 QThread,通过信号回传日志和完成事件,防止卡顿;timer_run() 统一“立即/定时启动”的等待逻辑,只靠延迟区分;时段拆分、防重入与批量备选顺序集中在 worker 中,便于调试扩展。

示例图片视频


CCA
30天前活跃
方向: 后端-C++、人工智能-大模型和多模态、
交付率:100.00%
相似推荐
C++ AI大模型接入SDK
1、立项背景和目标: 随着人工智能技术的快速发展,各类AI模型(如大语言模型、图像生成模型等)的应用需求日益增长。然而,普通开发者和企业在使用这些AI模型时面临以下挑战: 技术门槛高 :需要掌握复杂的API调用和模型管理技术 部署复杂 :本地部署AI模型需要大量计算资源和专业知识 成本高昂 :使用商业API服务费用较高,自建基础设施投入大 集成困难 :不同模型的API接口不统一,集成到现有系统困难 本项目旨在构建一个 统一、易用、高效的AI模型访问平台 ,主要目标包括: 降低使用门槛 :提供简单易用的Web界面,无需编程知识即可使用AI模型 统一接口标准 :封装不同AI模型的API,提供统一的调用接口 支持本地部署 :支持Ollama等本地AI模型部署方案 实时交互体验 :提供类似ChatGPT的流式对话体验 开源可扩展 :采用开源技术栈,便于二次开发和功能扩展 2、软件功能和核心模块: 前端模块: 聊天界面 :仿DeepSeek风格的现代化聊天界面 会话管理 :支持多会话创建、切换和删除 模型选择 :可视化模型选择界面,支持多种AI模型 实时流式响应 :支持AI模型的流式响应显示 代码高亮 :集成Markdown渲染和代码语法高亮 复制功能 :一键复制代码和文本内容 后端模块: API网关 :统一的RESTful API接口 会话管理 :用户会话的创建、存储和管理 模型适配器 :适配不同AI模型的后端接口 流式传输 :支持Server-Sent Events (SSE) 流式响应 配置管理 :灵活的服务器配置和模型配置
数据库辅助学习系统
1、项目开发背景:项目采用现代 Web 技术栈,结合人工智能技术,为数据库教学提供创新性解决方案。支持多种数据库类型,具备完整的用户管理和权限控制体系。 项目开发目标:提供给大学课堂使用,用于数据库课程教学,实现智慧课堂交互‘ 2、软件功能、核心模块的介绍: 这是一个基于 Django 和 FastAPI 构建的智能数据库教学辅助平台,旨在帮助学生学习 SQL 和数据库知识。集成了sqlmcp,ai智慧交互,ER图智能生成、sql实验室等功能。 3、 模块: Django 主服务 (mcp_sql_project): 用户管理、会话管理、WebSocket 通信、数据存储 FastAPI 服务 (mcp_service):自然语言转 SQL 的 AI 服务
Ren 是一个开源的基于 Spring Boot 3 和 Vue 3 构建的全栈式后台管理系统-任后台管理系统
这是一个用于快速开发的一个完整的后台管理框架,包含了一切企业管理后台系统的基础功能 Ren 是一款基于 Spring Boot 3 + Vue 3 前后端分离架构的现代化后台管理系统框架。其核心目标是提供一套功能丰富、易于二次开发的“脚手架”,极大降低从零搭建管理后台的成本。 核心功能模块包括: 1. 系统权限管理:精细化的用户、角色、菜单、部门、岗位权限控制,支持数据权限范围设置。 2. 系统监控:实时监控服务器状态、Redis缓存、在线用户,并可强制下线用户。 3. 定时任务:集成Quartz,可视化配置与管理定时任务。 4. 系统工具: - 代码生成器:一键生成前后端代码,大幅提升CRUD开发效率。 - 表单构建器:通过拖拽方式快速生成前端表单页面。 - 系统接口:基于Swagger 3的自动化API文档。 5. 日志管理:完整的操作日志与登录日志记录。 6. 主题切换:支持多主题(如蓝白、纯黑)动态切换,易于自定义扩展。 7. 通过SpringAI集成了AI对话功能,后续还会加入AI数据统计等等功能 项目特点: 采用清晰的模块化设计,代码注释详尽,并规划了支付集成、工业协议对接等可插拔功能模块,兼顾了开箱即用性与高可扩展性。
教育厅安全管理系统管理平台
1.该平台是服务于各省市教育厅、教育局、学校、高校的一体式平台。 2.包含安全任务、平安校园评估、智能填报、隐患、专项检查、假勤管理、三防建设、智能办公等功能。 3.项目由主平台和各个子系统组成,每个子系统对应一个功能模块,使用微应用的方式嵌入主系统。
搭建智能助手-智能助手
1.理解智能助手的核心系统架构与功能模块(对话交互层、核心引擎层、工具集成层),掌握 “用户输入 - 意图识别 - 响应生成” 的完整工作流程。 2.学会两种智能助手搭建方案的实现:一是调用公开大模型 API(如 OpenAI API)实现云端交互,二是本地部署 Ollama 大模型(如 Llama 3)结合 Streamlit 构建私有化对话界面。 3.掌握 Streamlit 库的使用方法,实现可视化对话界面(含历史消息展示、输入框、模型切换功能),理解前端界面与后端逻辑的数据流转机制。 4.掌握智能助手核心功能(基础问答、任务处理)的集成方法,能通过测试案例验证交互效果,优化响应速度(如设置超时控制)与准确率(如添加意图纠错)。 培养系统设计与问题排查能力,能分析不同搭建方案的优缺点(如云端 API 的便捷性 vs 本地部署的隐私性),并根据需求选择合适方案。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服