昨天上午下课后想找个空教室,转来转去就是找不到。想起来课程格子上面有个空教室查询,但是打开后提示工作人员正在提取数据啥的,反正就是不能用。貌似别人用超级课程表也是这样的,真是奇了怪了。。

其实以前我写过类似的东西,可以使用微信和网页,但是代码全丢了。然后自己重新写了一个,现在是app + api版本的了。

app使用html + css + js开发,为什么,因为我不会写原生的app,而且这么一个小应用不值得用原生的,构建工具是 http://dcloud.io/ ,界面使用mui框架,也是dcloud家的。不得不说,html5开发小app效率确实高。

最重要的是获取数据,使用了Python爬虫和线程池实现,线程池在以前的文章里面说过,自己去翻一下。爬的时候开了20个线程,一个教学楼的信息大约1分钟就全下来了,我还担心把教务的数据库爬死了。最后自己整理了一堆json文件。

关于空教室的信息的存储,以前使用的是关系型数据库,但是这些数据明显的是没有关系,这次就使用了nosql。开始也想放在sae的memcache,但是sae说memcache存在数据丢失的可能性,后来就放在了kvdb里面,数据格式大致是

{"key": "13041.2706.11.5.2", "value": "[["东校区1-101", 1], ["东校区1-102", 1], ["东校区1-103", 1], ["东校区1-104", 1], ["东校区1-107", 1], ["东校区1-108", 1], ["东校区1-109", 1], ["东校区1-111", 1], ["东校区1-201", 1], ["东校区1-202", 1], ["东校区1-203", 1], ["东校区1-204", 0], ["东校区1-207", 1], ["东校区1-208", 1], ["东校区1-209", 1], ["东校区1-210", 1], ["东校区1-301", 1], ["东校区1-302", 1], ["东校区1-303", 1], ["东校区1-304", 1], ["东校区1-307", 1], ["东校区1-308", 1], ["东校区1-309", 1], ["东校区1-310", 1], ["东校区1-311", 1], ["东校区1-401", 1], ["东校区1-402", 1], ["东校区1-403", 1], ["东校区1-404", 0], ["东校区1-407", 1], ["东校区1-408", 1], ["东校区1-409", 1], ["东校区1-410", 1]]"}

截图 QQ20150320-1@2x.png

QQ20150320-2@2x.png

代码已经开源 https://github.com/virusdefender/qdu_empty_classroom

安卓版本的下载地址:https://dn-virusdefender-blog.qbox.me/appH512DAB3E_0320090845.apk

ios的我没有开发者证书,只能越狱后使用,就先不写地址了,感兴趣的自己去构建吧。

有意见和建议的可以在下面回复一下~