Zyyo

Just for fun

文章

23

标签

25

评论

463

文章目录

数据统计

成立

190天

文章

23篇

评论

463条

标签

25个

最近文章

一个综合树维教务系统的选课排课客户端基于nodejs

一个综合树维教务系统的选课排课客户端脚本基于nodejs

main分支处于开发中不可用状态,请前往master分支获取稳定的版本

Node.js Version

License

Zyyo

个人博客

声明

此项目为我的个人原创项目,唯一地址https://github.com/ZYYO666/fuck-shuwei
xxx假意与我合作欺骗感情,未经允许将项目剽窃版权全部改成他自己的
开发过程一直在幕后慢慢进行 期间我通过微信和他联系,我以为我们已经是真正的朋友了,结果未经任何提前询问,我代码中的版权,作者等都被修改,开发的代码从未公布于众,他却先一步公布发布,我太伤心了
我有足够多的证据证明此项目从谋划到设计到完成,前端➕后端,90%以上代码由我一人完成
前端100%我一人完成,后端至少90%以上我完成,而且我是负责整个架构的
我投入了大量时间来优化代码,重构代码,过程中几乎完全重构
过程中他只完成了部分排课页面的代码(垃圾代码,我需要大量大修改才能将其合并到项目,完全没有工程化的概念,全是公共变量,递归写的依托,xxx根本不懂任何js),况且整个排课原理设计也是由我完成,在他参与之前,master分支的版本是我一人创作的老版本
他未经我允许便修改全部版权,且开始发布自己的技术文章,简直太令人伤心了
不是把我代码加上注释就是自己的了,优秀的代码本身就是注释,垃圾的代码再注释也是垃圾

排课原理

先根据课程序号查询开课课程,格式化数据,排课,计算权重
统一某门课程的时间点数据,才能在不同课程不同时间点不冲突的排列,我采用了16x91的二维数组来格式化课程信息,将问题抽象为数据结构,单门课程不管开课情况多么复杂(一周多次开课,单双周开课等等)都是一个无关选课的数据结构
然后创新一个空二维数组,只需要你针对数组填充即刻判断是否排课冲突
此思路完全有我一人完成,实现部分代码也是我个人完成

待处理的问题

某些设备不知原因无法登陆

个别教务系统需要验证码

📖 项目概览

基于 Node.js 构建的智能选课系统解决方案,提供 WebUI 界面和高效缓存机制,支持多轮次选课操作。
main分支 正在开发的版本(未经测试)
master 经过稳定测试的老版本

🛠️ 版本演进

v6.0

  • 增加排课系统,用户只需要提供课程code便可以根据算法计算出最适合你的课表
  • 进一步优化代码
  • 用户数据完全依赖浏览器缓存,不产生任何本地文件

    v5.0

  • 再次大改,支持多客户端,多个客户端共用一个后端
  • 完全依赖websocket,去除http通信
  • 用户数据完全依赖浏览器缓存,不产生任何本地文件

v4.6

一个神奇的发现,给url加上随机参数竟然巧妙的绕过了点击过快验证
所以我们迎来了
并发抢课!!!
多个课程同时进行抢课、单个课程多线程请求

v4.5

删除各个模块对于登录过期的判断,改为响应拦截器判断是否过期,层层抛出指定异常到主程序,通过判断异常进行删除登录缓存,递归重试登录。

v4.0

我意识到采用终端进行选课对于一些人来说不是那么好,同时,在第一次执行程序过程中,加载整个 Node 运行时有一个巨大的延迟无法接受。
使用 Express 和 WebSocket 搭建 WebUI,前端使用 Vue3 setup 简单做了一个页面,日志数据采用 WebSocket 通信。
运行速度极快,内网服务器跑起来后,点击执行,中间几乎没有任何延迟。
一个优美的 WebUI,打开之后可以非常简单地配置、选课。

v3.0

将登录、选课等操作逻辑融合,简化操作。
采用配置文件的形式配置系统。
我意识到选课的流程有点长,中间因为各种各样的原因可能会导致程序异常,继续修改。
采用模块化设计,将一系列操作分文件处理,同时大量优化过程。
针对登录信息、获取选课缓存、ProfileID 等进行缓存处理,大幅提升选课速度,将选课的请求数量降到最低。

v2.0

2025.2.10 出于对设计的不满意进行大量修改并打包为 exe。
主要针对选课系统进行抓包逆向分析。
将选课的一系列操作封装为 Node.js 程序。
使用 Node.js 完成开发,一个基于 Chrome V8 引擎的 JavaScript 运行环境,具有高性能、高并发、轻量、可扩展等特点。

v1.0

  • 篡改猴脚本原型
  • DOM 事件自动化系统
  • 页面状态监听器
  • DOM 模拟点击实现
  • 监听用户操作和页面变化执行点击
我废寝忘食花一天完成了第一个版本。
2024.12.27 就完成了绝大部分功能。

🚀 快速开始

环境要求

  • Node.js 16+
  • Chrome 100+

安装步骤

# 克隆仓库
git clone https://github.com/ZYYO666/fuck-shuwei.git

# 安装依赖
npm install

# 启动服务
npm run start

打包单文件exe步骤

npm run build:win

使用说明

  1. 访问 http://localhost:3000
  2. 按住 Ctrl + 单击进入管理界面
  3. 配置选课参数
  4. 实时查看 WebSocket 日志
  5. 查看运行结果

⚠️ 重要提示

! 以下情况需清除 缓存:
- 切换账号时
- 更换选课轮次时
- 遇到登录异常时

📚 技术栈

领域技术方案
前端Vue3 + Element Plus
后端NodeJs + Express + WebSocket

一个综合树维教务系统的选课排课客户端基于nodejs

发布于

July 9, 2025

分类

实用分享

版权协议

MIT

评论
😀
仅有一条评论
    YU 2025-07-10 回复

    我。。。我没这个意思啊🥹🥹🥹

感谢支持!

微信二维码

请使用微信扫描二维码打赏。

支付宝二维码

请使用支付宝扫描二维码打赏。