空教室雷达:别再一间一间开盲盒了
发表于|更新于|项目
之前写过一篇空教室查询器,这里再记一下查询逻辑。
怎么判断有没有课
项目使用 Flask。查询接口接收日期、楼栋和起止节次,遍历楼层和教室的课程安排,排除时间有交集的教室。
把查询节次记作闭区间 [a, b],课程节次记作 [c, d]。两者不重叠的情况是 b < c 或 a > d;除此之外就存在重叠。这样包含、部分交叉和边界相接都可以用同一条规则处理。
课表和现场状态
当天的查询还会尝试补充现场占用信息和部分环境指标。课表反映的是排课安排,现场数据则是某个时刻的观测;没有排课并不一定代表教室里没有人。
学校接口的字段、权限和可用性可能变化,这次没有重新查询接口。使用时还是要以实际情况为准。
相关链接
相关推荐

2026-03-09
造轮子记录:交大空教室一键查询器
受够了每次想找个安静的地方自习、推导公式,却还要像开盲盒一样挨个教室找? 当然要用代码解决生活痛点! 今天手搓了一个轻量级的“交大空教室查询器”。 不过感觉这种。。。自己在转专业的这些人里面没有突出点啊。。 啊,忘了提项目网址了,在这里: 🚀 在线体验传送门: SJTU 空教室查询助手 (点击直达)

2026-10-15
博客在线写作入口实现
给博客加一个在线编辑入口 之前写博客,总得先打开本机的项目,写 Markdown,构建,再 commit、push。 流程并不复杂,但每次只是想写两句话,却得先把自己切换到“维护网站”的状态。电脑不在身边的时候,就更懒得动了。 所以这次干脆给博客加了一个网页写作入口。 GitHub Pages 负责展示,Cloudflare 负责处理请求 博客原来的架构没有换,仍然是 Hexo + Butterfly + GitHub Pages。 问题在于,GitHub Pages 是静态托管,不能替我保管登录密钥,也不能直接承担安全的授权和发布逻辑。 于是中间加了一个 Cloudflare Worker。 整条路径大概是这样: 12345678910111213141516浏览器里的 Markdown 编辑器 | vCloudflare Worker登录验证、权限检查、发布请求 | vGitHub 博客仓库Markdown、封面、图片白名单 | vGitHub Actions测试、He...

2026-10-11
扬州 THO:热闹的小游戏,也需要一本明白账
扬州 THO 是一套东方活动系统,围绕琪露诺和大妖精两个阵营展开。玩家有体力,可以探索、遇到随机事件,活动还会记录积分和抽奖。 活动规则 一次探索可能消耗资源,也可能带来奖励。项目把玩家、管理和展示入口组织起来,由服务端处理操作是否合法以及状态如何变化,页面展示对应结果和阵营榜。 状态保存 服务使用无第三方依赖的 Node.js,状态保存在 JSON 文件中,并安排了串行写入、原子保存、备份和重置快照。 这套方案面向单实例。未经改造,不适合让多个实例同时写同一份状态文件。活动规则和使用说明可以在仓库中查看。 相关链接 项目仓库与使用说明

2026-10-11
水源会话锁:给再看一眼加一点阻力
水源会话锁是一个用户脚本,可以在浏览水源时设置会话时长。它运行在 Tampermonkey、Violentmonkey 等脚本管理器中,是个人工具。 脚本提供预设和自定义时长,保存会话状态,也避免在同一会话里重复弹出提示。设置之后有短暂的撤销窗口,另外还提供次数受限的强制解锁,方便处理临时需要使用水源的情况。 状态保存依赖脚本管理器的存储能力。这个工具主要是给自己一个提醒,并不能阻止主动停用脚本或通过其他入口访问。 项目地址放在下面。 相关链接 项目与用户脚本

2026-10-11
别点那个链接!把反诈题目变成一次对话
《别点那个链接!》是人工智能导论的课程大作业。项目把校园反诈做成互动网页,让用户在模拟场景里选择怎么处理,再回看其中的风险线索。 三个场景 场景包括奖学金诈骗短信、陌生人催促付款和可疑自行车二维码。用户通过对话和操作推进,而不是一开始就看到所有提示。 前端使用 HTML、CSS 和 JavaScript。离线模拟模式可以直接演示交互;实时模式通过 Flask 后端连接兼容 OpenAI 格式的 API,凭据通过环境配置提供。 复盘和报告 项目会保存交互轨迹,围绕信息来源核验、资金边界、未知入口和紧迫感等方面生成复盘,也提供行动清单和 Markdown 报告导出。 这些反馈是教学项目中的设计,方便回看当时的选择,并不能作为经过验证的防骗能力测评。课程整体内容可以看人工智能导论学习记录。 相关链接 课程项目说明

2026-10-11
MiniVim:原来光标后面有这么多事情
MiniVim 是基于交大 CS1958-01 课程框架的 C++17 编辑器项目。我的仓库是课程上游的 fork,下面记录一下项目中的模块和编辑流程。 模块 项目分为 Buffer、Window、Command、Renderer、Editor 和 Terminal,分别处理文本、可见区域、命令、渲染、编辑器状态和终端交互。 屏幕上的行号不一定等于文件中的行号;缓冲区修改之后,也需要由渲染部分把变化显示出来。看源码时可以从按键进入 Editor 开始,继续跟到作用于 Buffer 的操作。 模式和边界 Normal、Insert 和命令行模式下,相同按键可能有不同含义。除此之外,行首退格、光标移动到屏幕外等情况也需要明确处理。 课程提供基础要求、进阶说明和终端测试工具。这篇主要记录结构,没有重新运行完整课程测试。 相关链接 项目仓库 · 课程框架 · 源码




