Skip to content

Latest commit

 

History

History
51 lines (30 loc) · 5.94 KB

README.md

File metadata and controls

51 lines (30 loc) · 5.94 KB

qlu-cr(开源代码已暂停更新,闭源小程序及开源网站持续更新)

齐鲁工业大学(齐工大)空教室查询工具,开源版本基于23年之前运行的旧教务,考虑到新旧教务查询空教室的方案大不相同且没有过多精力持续基于老教务更新则暂停更新,但网站以及小程序继续保持正常更新和维护,网站,小程序见下图,若尚能被搜索到名字叫“Matt查空教室” 6BNF.jpg

简单说一下为什么要做并且持续维护工具吧,虽然现在教务那边也有一个用起来不是很舒服的查询工具,但是起码还是有,在我上学的四年期间,用的老教务完全没有给学生开任何有关查询权限,但是还好,老教务能看到全校上课情况,那反过来,就是很有可能是空教室的教室列表了(考虑到还有社团占教室、活动占教室、课外辅导机构占教室宣讲等其他情况,故查出来的教室也不完全是能进去自习的)。

大三大四的时候图书馆约不上(同学们学习热情太火爆了哈哈哈),宿舍硬件条件不适合卷(当然你愿意腰弓成虾米当我没说),也就教室可能能进去简单学学,虽然最终没有考上研究生,但是咱也不能在短暂的人生中缺少“为梦想拼搏”的过程,对吧?但是去教室就有一个问题:大一到大三从来都是到了教学楼一层到六层(忘了总高几层了)跑一遍,依次观察门外课表、教室内有无教室或学生正在使用多媒体……在人多教室少的情况下这种方法其实效率很低,而且很容易让人“扫”完一栋楼发现只有两三个不上课的教室却基本上已经坐满人之后非常沮丧,这时,正好注意到了Annihilatexv开发的那套工具,并不是现在其仓库里的样子,但是还很精简,或者说页面比较简陋吧,但起码是能查,缺点是慢,非常慢,国内访问非常慢,而且每次加载都需要加载全部页面,明明前后页面只相差了一个内容和选择框,后面我就优化了两点:1.在国内(其实是学校内)找个服务器临时一搭,2.优化网络访问流程,网页只需要加载需要变更的部分在前端展示,这样会节省至少50%的流量(虽然也就顶多10kb),然后就一直跑着了,虽然很多时候能力有限解决不了不在教务系统上的占座问题,但还是积累了一定的“忠实用户”(用了一年就跑了算什么忠实哈哈哈),在22年底拿到了超过100的日活,我知道这不是很多,但是考虑到图书馆能承载差不多3k人(听别人说的不清楚具体数字),校内一共3w名学生,但是肯定只有1/4甚至不到1/4是应届考研备考的同学,那这么一看覆盖率就有点高了;)。

后面的故事就是很理所当然的没考上研究生,大概在四月被某位网友絮叨的受不了开发了一个“空教室查询小程序”,我知道虽然在技术上总的来说网页能完成小程序能完成的120000%的功能,但是网页最终还是需要一个服务器用来存放数据和响应用户的访问请求,我不像是现在维护网站的那位同学,一年能拿出来小一百甚至两三百的钱去买服务器,我在校内的所有项目加起来的收入都到不了服务器费用的1/10,我知道这个数据低的离谱,但客观事实就是这样,咱就是不是很清楚应该怎么搞钱,甚至捐赠也拿不到多少(听说今年上半年nixiak接手网站之后拿到了一点能给服务器回回血:)。

你说现在技术层面做不到类似小程序的加载一次后离线缓存无网也能查询么?其实做得到,serviceworker就是干这个的,前端的js也完全能胜任查询这项工作,查询这个工序不一定非要丢给后端,但前提是数据要提前缓存到本地,就像小程序目前的工作模式一样,但我们维护范围划分的清晰之后,我不是很感直接上手改nixiak的代码,因为毕竟他维护他要懂,就像是我一开始交给他的vue架构他都懒得去搞懂而是自己重写一个原生html js 一样,我写好交给他的唯一后果就是他完全没有很多的时间去理解去优化,而是去直接重构或者删除,他也有自己的业余活动、课外项目等,这个网站端维护任务不是他生活的全部,所以也不能强求。

再说回我,小程序一开始页面也是很简陋,只能查询当天的空教室,而且必须联网才能查询,甚至因为是小程序的原因,不登录微信甚至没有办法使用,这一点其实对比起网站来说就很鸡肋,后面逐渐了解了微信小程序的开发逻辑以及摸索出来了他的工作模式之后,渐渐地将部分网站上的功能加了进去,查询任意周数任意星期的空教室、本地缓存后离线查询,也不强制让所有网站的用户全切到小程序来,只能说感兴趣的可以来试试。

下面是原readme:


能力有限,欢迎issue和pull😊

  • 如果要想要自己测试或更新.

只需要如下两步:

  1. get_schedule.py文件中修改开学时间(开学那周的周一)
# <<<<<!!!定义开学那周的周一!!!>>>>>
year,month,day=2024,2,20
  1. get_course_on_table.py中提供在 教务系统 中的cookie,并且运行一次获得数据包
# <<<<<!!!需要使用代理,提供Cookie获取数据!!!>>>>>
Cookie = "抓取提供"

如果对你有帮助的话,请star⭐一下

支持校区

  • 长清

  • 菏泽

  • 历城

  • 彩石

    理论上来讲,本项目仅需要简单更改便可适配全部湖南强智教务系统,由于本人只有一个本校的学生账号权限,暂无权限研究其他学校的实际情况,有需要可提issue。