Skip to content

Runtus/dormitory-uestc

Repository files navigation

电子科大新生自动抢寝室脚本

只适用于在电子科大后勤保障部宿舍服务处进行的寝室选择。

  • 因为泥电的宿舍选择机制很诡异,既不能取消选择(一次性的),也没有个几分钟的锁寝室的机制,所以经常出现撞车的情况,即你和室友在选择宿舍的时候,被其他同学选择了其中的一个床位。
  • 所以在此情况下,开发了该脚本,为了能够最大程度地保证室友能够选择到同一个寝室,防止撞车。

⚠️特别说明: 此脚本也不能完全保证你们能够选择到一个寝室,本地发送请求时,如果有人也同时在浏览器上选择了对应的床位(或者有其他的脚本用户在抢床位),那么也有可能发生撞车。只是说它相对人手动去操作,提高了几人选择寝室的同步率,即大大提高成功的概率。(当然,如果你是独狼用户,那么此脚本基本没有风险)

怎么使用?

你需要做一些前置准备:

  1. 泥电在开始抢寝室前一天会开放系统进行寝室试选(选择不起作用,晚上会清数据),你需要进入系统内浏览你心仪的房间,然后鼠标移到该房间的可点击区域并右键,点击检查按钮,打开浏览器开发界面
  2. 在浏览器开发界面里,已经有一行代码的底色被自动加深,找到这行代码,获取到dormitoryChooseBed(xxxx)中的xxxx这一串数字ID,这串数字即为你想选房间的唯一ID。

宿舍页面

右键

  • 打🐎处就是数字id,copy一下 开发界面

配置文件📃 room.config.ts

// room.config.ts
export default {
    // 你电后勤寝室网站开放时间(开抢寝室时间):例如下方设置为计算机学院寝室开放时间(11:00)
    start_time: {
        hour: 11, 
        minute: 0, 
        second: 0
    },
    persons: [{
        "name": "xxx1", // 名称
        "act": "abcdefg", // 账号
        "psw": "114514", // 密码
        "cookie": {
            "JSESSIONID": "67BA5A3AA28F701F31C7AAF3A12096F1", 
            // sessionid的获得请参考下文的「其余说明」
        }
    }, {
        "name": "xxx2",
        "act": "abcdefffff",
        "psw": "1919810",
        "cookie": {
            "JSESSIONID": "C281CAAEF220C15F892E6EBDAC9DFF53"
        }
        }],
    houses: [
        {
            id: 114514, // 在前置准备中获取到的数字ID
            name: "先辈" // 数字ID对应的房间号
        }
    ]
}
  • 配置文件的各项属性如上所示,需要补充以下说明:
    • start_time为网站开放时间,即脚本定时运行时间 -> 脚本会在指定时间运行。
    • persons内的配置数量自己的意愿而定,比如你们是三个人想抢一个三人间,那就写三个人的配置,你若想一个人抢某间寝室,写一个人的配置即可。 需要注意的是,每个人的sessionid必须不同(原理在下面其余说明部分会说到),并且要从尼电的选寝室登录界面去获取,而不是随便输一个字符串
    • houses里也可以配置多个房间号,并且优先级为从上到下

如何运行🏃

注: 需要你的电脑上有nodejs环境以及yarn,如何安装 NodeJs安装相关 yarn安装相关

  • 打开命令行,并在项目根路径依次运行以下指令。
yarn # 安装依赖

yarn go # 挂载脚本
  • 注:如需要后台挂载脚本,可以使用pm2后台管理工具来进行node脚本进程挂载,具体的可参考pm2官方文档

其余说明📖: 关于配置文件的JSESSIONID

  • 因为泥电的鉴权是在本地生成session后,在登录的时候一起发送给后端服务器,后端服务器把你的账号信息和该session进行绑定后再发送回来,后续的一些选房操作都是通过该绑定的session来完成的,所以你需要提前在登录界面获取到一个新session然后复制到上述的配置文件中,具体操作看参考下面的截图。
  • 建议不要直接用配置文件的session,因为你的session有可能会被别人注册而覆盖掉。 session获取
  • 注意:sessionId最好在网站开抢之前获取,否则会遇到session过期的问题(具体的过期时间不清楚,但可以清楚的是前一天的session会过期)

About

Uestc Dormitory-Grabbing Script

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published