Skip to content

About

东南大学劳动教育选课神器!实时监控新增课程并微信推送,自动运行,无需频繁登录查询即可获取所在校区的最新劳动教育实践课程信息

Resources

Stars

23 stars

Watchers

0 watching

Forks

Repository files navigation

SEU 劳动教育课程推送助手

一个常驻后台的小工具:自动监控东南大学劳动教育选课页,发现新课程就立刻用桌面通知和微信提醒你, 无需一直开着网页。装好后它待在系统托盘里,占用很小,只在需要时才用到浏览器。

✨ 功能

  • 后台自动监控,不用打开任何网页
  • 新课程即时提醒:Windows 桌面通知 + 微信(PushPlus,可选)
  • 登录过期自动重新登录,通常无需手动操作
  • 按开课地点、劳动类型筛选,已推送的课程不重复提醒
  • 每日运行汇总
  • 自动选课(可选,默认关闭)
  • 托盘常驻、开机自启
  • 原生实现,无 GC/无运行时:单个约 3 MB 的可执行文件,不打包浏览器内核

📦 安装

下载 seu-labor-setup-1.2.0.exe,双击安装:

  • 免管理员,按当前用户安装
  • 自动创建开始菜单快捷方式(桌面快捷方式可选)
  • 安装完成后默认启动并打开设置向导
  • 卸载请到「设置 → 应用」;账号与设置会保留

🚀 快速开始

  1. 启动后,右下角托盘会出现程序图标。
  2. 跟随设置向导填写一卡通号与密码、选择筛选条件与通知方式,并完成一次登录。
  3. 首次登录(或换网络出口)可能需要短信验证码,之后无需再手动登录。

登录窗口与选课页会自动使用系统里已安装的 Chromium 内核浏览器(按 Edge → Chrome → 其他 Chromium 的顺序探测,也可在 config.json 的 browser.path 中手动指定),不会额外下载浏览器。

🔔 通知与设置

  • Windows 桌面通知:默认开启,点击可直接打开选课页。
  • 微信推送:可选,填入 PushPlus Token 即可。
  • 右键托盘图标 →「设置向导」,可随时修改账号、筛选、通知,或开关开机自启 / 自动选课,改动即时生效。

❓ 常见问题

  • 需要安装浏览器或运行时吗? 设置界面用系统自带的 WebView2;登录窗口 / 选课页会自动使用已安装的 Chromium 浏览器(Edge/Chrome 等),也可用 browser.path 指定。
  • 会很占资源吗? 常驻进程很小,浏览器仅在需要时启动。
  • 会自动选课吗? 默认关闭,需要手动开启。
  • 卸载后设置还在吗? 在,保存在本机用户目录。

🛠 构建

需要 Rust(rustup,x86_64-pc-windows-gnu 工具链);打包安装包另需 Inno Setup 6。 依赖的可复用项目 rust-webui-kit 走相对路径,需与本仓库同级检出:

git clone https://github.com/zz6zz666/rust-webui-kit ..\rust-webui-kit
.\build.ps1 -Version 1.2.0      # 主程序: release\seu-labor.exe
.\package.ps1                   # 安装包: release\seu-labor-setup-1.2.0.exe

WebView2Loader.dll(随 vendor\ 提供)会与主程序一起分发,供系统 WebView2 使用。

🧩 架构与原理

程序平时只发普通网络请求,几乎不启动浏览器。

  • 轮询:课程列表本身就是网页文本,直接请求并解析,无需常驻浏览器。
  • 自动重登:登录失效时,用保存的账号密码在后台自动重新登录,全程不打开浏览器; 仅当需要验证码或短信时,才会弹出登录窗口。
  • 按需调用浏览器:只有手动登录与查看选课页时才启动浏览器(自动选课走纯 HTTP)。
  • 设置界面:由系统自带的 WebView2 渲染,轻快且无额外依赖。

所有重资源都取自系统,程序本体只是一个很小的可执行文件;账号与设置仅保存在本机。

通用机制放在一个独立的可复用项目 rust-webui-kit(与本仓库同级,通过相对路径依赖), 主程序只保留学校相关流程与页面:

  • winkit:通用 Win32 小工具(进程 DPI 感知与缩放、从 .ico 生成图标并设为窗口图标)。
  • traykit:托盘图标 + 自绘 Fluent 风格弹窗菜单;菜单内容由宿主以数据提供。
  • browserhost:定位、启动并驱动系统 Chromium(CDP),管理独立配置目录与 Cookie 注入。
  • webmsg:本地回环 HTTP 桥,把宿主 API 暴露给被托管的网页(请求 / 响应 / 事件信封)。
  • websurface:多窗口 Web UI 宿主,WebView2 引擎 + 借用 Chromium 兜底。

依赖方向:seu-labor → websurface → { webmsg、browserhost、winkit };traykit → winkit。

📄 许可

本项目采用 MIT 许可。

About

东南大学劳动教育选课神器!实时监控新增课程并微信推送,自动运行,无需频繁登录查询即可获取所在校区的最新劳动教育实践课程信息

Resources

Stars

23 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages