Skip to content

taboo-hacker/qzct-login

Repository files navigation

QZCT 校园登录助手

🚀 自动登录校园网络,让网络连接更简单!

License: CC BY-NC-SA 4.0 Version: 1.3.0 Python: 3.8+ Platform: Windows

Code style: black Imports: isort Checked with mypy Ruff

📖 简介

QZCT 校园登录助手是一款专为衢州职业技术学院校园网设计的自动化登录工具。基于 PyQt5 开发,采用极简商务风界面,支持 WiFi 自动连接、校园网认证、定时关机等核心功能。

⚡ 本项目采用 AI 辅助开发,通过 Claude Code + DeepSeek API 进行代码审查与 UI 重构,实践 AI-First 开发理念。

✨ 功能特性

  • ✅ 自动登录校园网 — 支持电信、移动、联通及校内资源
  • ✅ WiFi 自动连接 — 断线自动重连,可配置重试次数
  • ✅ 定时关机 — 灵活设置关机时间
  • ✅ 智能日期规则 — 支持国务院官方节假日、调休、自定义规则
  • ✅ 农历日历 — 内置农历显示
  • ✅ 安全加密存储 — 密码本地加密,主密码保护
  • ✅ 运行日志 — 详细的任务执行记录
  • ✅ 极简商务风界面 — 无边框圆角窗口,流畅拖动体验

🛠️ 技术栈

技术 说明
Python 3.8+ 编程语言
PyQt5 GUI 框架
requests 网络请求
cryptography 密码加密
lunar-python 农历日期处理
loguru 日志系统

🚀 快速开始

安装

# 克隆仓库
git clone https://github.com/taboo-hacker/qzct-login.git
cd qzct-login

# 安装依赖
pip install -e ".[dev]"

# 运行程序
python main.py

开发

# 安装开发依赖
pip install -e ".[dev]"

# 运行测试
pytest tests/ -v

# 代码格式化
black . && isort .

# 代码检查
ruff check .

# 类型检查
mypy .

📁 项目结构

qzct-login/
├── main.py                     # 程序入口
├── business.py                 # 业务逻辑(WiFi、登录、关机)
├── system_core.py              # 系统核心(配置、加密、日期、农历)
├── infrastructure.py           # 基础设施(日志、线程池、工具)
├── concurrency.py              # 并发框架(TaskChain + TaskExecutor)
├── constants.py                # 常量配置
├── exceptions.py               # 自定义异常
├── gui/
│   ├── main_window.py          # 主窗口
│   ├── style_manager.py        # QSS 样式管理器
│   ├── dialogs/                # 对话框模块
│   └── widgets/                # 自定义组件
├── utils/
│   ├── version.py              # 版本管理
│   └── logger.py               # 日志工具
├── tests/                      # 测试模块
│   ├── conftest.py             # 测试配置
│   ├── test_system_core.py     # 系统核心测试
│   ├── test_business.py        # 业务逻辑测试
│   ├── test_infrastructure.py  # 基础设施测试
│   └── test_concurrency.py     # 并发框架测试
├── .github/
│   ├── workflows/              # GitHub Actions
│   └── ISSUE_TEMPLATE/         # Issue 模板
├── pyproject.toml              # 项目配置
├── README.md                   # 项目说明
├── DEVELOPING.md               # 开发指南
├── CONTRIBUTING.md             # 贡献指南
├── CODE_WIKI.md                # 代码 Wiki
└── LICENSE                     # 许可证

📚 文档

🔄 更新日志

v1.3.0 (2026-05-24)

  • ✨ 新增系统托盘 — 关闭最小化、双击恢复、任务完成气泡通知
  • ✨ 新增暗色主题切换持久化(启动时自动恢复)
  • ✨ 新增键盘快捷键 — Ctrl+R 执行、Ctrl+, 设置、Ctrl+K 日历、F1 关于
  • ✨ 集成 chinese-calendar 作为 2027 年起的法定假日兜底
  • 🔧 并发框架重构 — 移除 Queue+QTimer 轮询,改用 Qt 原生跨线程信号
  • 🔧 拆出 ConfigManager(dict 子类) — 线程安全 + 浅拷贝 snapshot 替代 deepcopy
  • 🔧 PBKDF2 600k 迭代移到后台线程,启动不再卡 UI
  • 🔧 WiFi 重试改指数退避;登录请求 timeout 改 (3,10) 分离 connect/read
  • 🔧 临时 WiFi profile 限定 ~/.qzct/,netsh 加载后即写即删
  • 🔧 窗口阴影从 paintEvent 手绘改 QGraphicsDropShadowEffect GPU 加速
  • 🔧 system_core 模块解耦 Qt 依赖(函数内延迟导入)
  • 🔧 业务函数抛结构化异常(WiFiProfileError / CampusAuthError / JSONPParseError)
  • 🔧 constants.py / exceptions.py 在 business.py 中落地
  • 🔧 删除手工阴影、Queue 协议、log_write 等死代码(净减约 100 行)
  • 🐛 自定义规则分支不再被 chinesecalendar 兜底覆盖(用户意图优先)
  • 🧪 修复 5 个 baseline 测试失败,87/87 全部通过

v1.2.0 (2026-05-05)

  • ✨ 新增测试框架和单元测试
  • ✨ 新增 CI/CD 配置(GitHub Actions)
  • ✨ 新增常量配置模块(constants.py)
  • ✨ 新增自定义异常模块(exceptions.py)
  • 🔧 完善类型提示
  • 🔧 更新 pyproject.toml 配置
  • 📝 新增开发指南和贡献指南
  • 📝 新增 Issue 和 PR 模板

v1.1.0 (2026-04-28)

  • ✨ 新增完整的 GUI 系统
  • ✨ 新增多线程并发框架
  • ✨ 新增工具模块
  • 🔧 大幅重构代码

v1.0.0 (2026-04-05)

  • 🎉 初始版本发布

🤝 贡献

欢迎贡献代码!请查看 贡献指南 了解详情。

📄 许可证

本项目采用 CC BY-NC-SA 4.0 许可协议。


Made with ❤️ by QZCT Developer

About

QZCT 校园登录助手是一款专为衢州职业技术学院网络设计的自动化工具,帮助您告别繁琐的手动登录操作。基于PyQt5开发的现代化图形界面,配合强大的定时任务系统,让您的网络连接从未如此简单。

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages