程序聚合 软件案例 香港中文大学(深圳)音乐学院琴房自动预定脚本-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%
相似推荐
RAG Agent
一、立项背景与目标 1. 立项背景 在传统的知识库问答系统中,普遍存在以下痛点: - 流程混乱:通用ReAct Agent在处理复杂业务时,容易发生步骤跳跃或逻辑错乱,导致回答质量不稳定。 - 上下文断裂:多轮对话中,用户常使用代词(如“它多少钱?”),传统向量检索缺乏指代消解能力,导致检索失败。 - 意图混杂:闲聊式提问(如“你好”)与知识检索式提问(如“XX产品参数是多少”)被统一处理,浪费算力且影响用户体验。 - 状态丢失:用户刷新页面或稍后再访问时,对话历史无法延续,每次都是“新会话”。 2. 项目目标 - 构建一个流程可控、意图可分流、上下文可理解、状态可持久的智能知识助手。 - 实现复杂业务逻辑的结构化解耦,提升系统的可维护性与稳定性。 - 显著提升多轮对话场景下的检索命中率与回答准确率。 二、软件功能与核心模块 1.整体功能概述 本系统是一个基于LLM的智能对话式知识库问答助手,支持用户通过自然语言提问,从向量知识库中精准检索并生成回答。系统特别强化了多轮对话中的指代消解能力与流程可控性。 2.核心功能模块介绍 模块名称 功能说明 Planner(规划器) 基于LLM + 专用Prompt,硬编码业务流程。负责解析用户请求,按固定流程调度执行,防止逻辑跳跃。 语义路由器 基于LLM的分类工具,动态识别用户意图为“chat”(闲聊)或“retrieval”(知识检索),实现分支分流。 历史加载与写入模块 与Redis集成,自动追加对话历史,确保跨会话的上下文连续性。 查询重写模块 结合历史对话,将存在指代或省略的用户问题(如“它多少钱?”)改写为语义完整的独立问句。 混合检索引擎 同时执行向量语义检索与关键词检索,通过RRF算法融合排序,提升召回效果。 Executor(执行器) 根据Planner的指令,调用重写、检索、生成等环节,最终输出回答。 系统流程严格遵循:语义路由 → 历史加载 → (分支判断) → 查询改写/直接回答 → 知识库检索 → 最终生成 三、业务流程与功能路径 以下为用户与系统交互的完整功能路径描述: 场景一:用户进行知识检索(多轮对话) 场景二:用户发起闲聊 场景三:用户首次访问 / 会话恢复
端到端自动驾驶轻量化模型设计
本项目主要面向无人驾驶仿真研究、智能车辆轨迹跟踪与轻量化控制算法验证场景,围绕端到端自动驾驶技术开展系统设计与实验开发。项目基于 CARLA 仿真平台构建虚拟驾驶环境,通过采集车辆前视图像、行驶状态和控制指令等数据,训练轻量化神经网络模型,实现从环境感知输入到车辆控制输出的端到端映射。项目可用于自动驾驶算法教学、科研训练、数据采集、模型训练、仿真测试和轨迹跟踪效果评估,为低成本、高效率的自动驾驶算法验证提供支持。 本项目主要功能包括仿真环境搭建、自动驾驶数据采集、数据预处理、模型训练、模型推理和效果评估等模块。系统可在 CARLA 仿真环境中生成车辆行驶场景,自动采集车辆前方图像、方向盘转角、油门、刹车等控制数据,并生成对应的数据标签文件;同时支持对采集数据进行划分和预处理,形成训练集、验证集和测试集。模型部分采用轻量化端到端神经网络结构,通过输入车辆前视图像,直接预测车辆控制指令或轨迹跟踪相关参数,从而实现车辆在仿真道路中的自主行驶与轨迹跟踪。项目还支持训练过程记录、模型保存、测试推理和结果可视化,便于对算法性能进行分析和改进。
k8s加ray集群部署
基于 Kubernetes 和 Ray 构建大规模分布式训练系统,常常会面对一个典型需求:训练任务需要调用独立的仿真环境(如游戏引擎、机器人模拟器、工业仿真软件等),而这些仿真环境本身已打包为 Docker 镜像,必须在一个隔离的容器内运行。此时,将容器化的仿真环境与 Ray 的工作节点相结合,并在 Kubernetes Pod 内安全、高效地运行仿真容器,就成了架构的关键。Docker‑in‑Docker(DinD)便是解决此类场景的重要技术之一。
AI学生手册问答助手-学生手册助手
本项目是一个面向学生事务资料查询场景的 AI 问答工具,主要解决学生在阅读学生手册、校规文件和办事流程时查找困难、理解成本高、重复咨询多的问题。 系统支持基于已整理资料进行智能问答,用户可以咨询学籍管理、考试安排、奖学金、请假、处分、实践学分等规则类问题。项目提供普通回答和专业回答两种模式:普通回答适合快速查询,专业回答会补充依据、办理流程、可信度提示和必要的流程图说明。 系统还支持资料上传学习功能,可将 Markdown 或文本格式的规章文件加入知识库,使问答范围不局限于默认资料。整体目标是把分散、较长、阅读门槛较高的制度文件,转化为更容易理解和检索的交互式问答体验。
AI英语学习平台-VerbaPath
SmartLearn Pro 是一个面向英语学习场景的 AI 学习平台,核心目标是把文章、单词、听说读写训练和复习计划整合到一个学习闭环中。系统支持文本/PDF 导入、AI 阅读分析、生词提取、闪卡复习、记忆曲线复习、阅读考试训练、翻译挑战、AI 写作批改、口语教练、学习笔记、知识图谱和学习流画布等功能。 用户可以导入学习资料,系统自动生成词汇、语法结构、阅读理解题和复习内容;在学习过程中可以将生词、难句、错题和写作素材沉淀为笔记,并通过 FSRS 记忆算法安排后续复习。项目还集成了语音识别、AI 对话和 TTS 语音合成能力,用于模拟 IELTS、商务英语、日常聊天等口语训练场景,帮助用户完成从输入、练习、反馈到复习的完整学习流程。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服