项目背景和必要性
图书馆是学习和研究的重要场所,但是图书馆的座位往往供不应求,尤其是在考试期间,很多同学都会遇到抢不到座位的困难。为了解决这个问题,一些同学会提前预约座位,但是这也需要花费时间和精力,而且有时候还会因为网络延迟或者系统故障而预约失败。有没有一种更方便的方法,可以让我们自动化地预约图书馆的座位呢?
项目建设主体
- 本项目研究了图书馆的预约系统,设计了一个分布式的、云端部署的、离线的自动化脚本,可以代替用户抢座。本项目的代码已经在 GitHub 上开源,任何人都可以免费使用,但是禁止商用。
- 希望各位同学遵守图书馆规定,预约了就去,不要浪费位置
- https://github.com/zzbcode/CSU-Library-main
项目主要内容
项目的核心是一个 Python 脚本,它可以实现以下功能:
- 登录图书馆的预约系统,获取用户的身份信息和 cookie
- 根据用户的配置文件,选择合适的座位和时间段,发送预约请求
- 检查预约结果,如果成功则发送通知,如果失败则重试或者换座位
- 支持多用户同时预约,通过分布式部署和多线程技术,提高效率和成功率
- 支持云端部署,用户可以通过 GitHub Actions 来设置定时任务,无需本地运行
- 支持离线运行,用户可以通过 GitHub Actions 来设置触发条件,无需手动启动
原则
- 免费开源,不收取任何费用,也不会泄露用户的隐私
- 分布式云端,不占用用户的本地资源,也不受网络环境的影响
- 离线自动,不需要用户的人工干预,也不会错过预约的时间
- 灵活配置,可以根据用户的喜好和需求,选择合适的座位
项目成果展示
项目的代码已经在 GitHub 上开源,地址是 https://github.com/zzbcode/CSU-Library-main ,欢迎大家下载使用和反馈意见。项目的效果如下图所示,可以看到,用户可以通过配置文件来设置自己的账号信息,座位编号,时间段,以及通知方式。用户可以通过 GitHub Actions 来设置定时任务或者触发条件,让脚本自动运行。运行结果会通过邮件或者微信等方式通知用户,如果预约成功,会显示座位的位置和时间,如果预约失败,会显示失败的原因和建议。