XiaoHu日志 6/17~6/19

6/17 今天开始完成上周的想法。我并没有api能获取北大附的全部课程信息,于是我采用了一种新的办法,每绑定一个学号,就获取他的全部课程,分词并动态更新词库,这样既可以达到效果又可以不影响用户体验。分词我使用jieba库,将一个句子不断细分得到所有可能的词组,维护一个txt文件作为识别词库,我不用SQL的原因是sql那该死的缓存机制,一次修改后必须要重启程序才能重新读入,加上我这个是单键搜索,就直接采用了轻量化易编辑的文本文档。然后我就可以通过词库在client内从一个长并包含无用文本字符串里获取其filter,如“东西方文化简史什么时候”中的filter是“东”“西方”“文化”“简史”,我再从该学生的课表里查找可以全部满足这个filter的课程,输出就可以了。

6/18 最近服务器有个问题,就是经常自动关机,而且是只有我的虚拟主机才自动关机,昨天我写代码的时候就出现了两次写着代码就关机的情况,好在我保存了,起初我只把它当做一个突发情况,直到昨天晚上服务器又关机了,导致XiaoHu的服务中断了12个小时。第二天毛老师重启后猜测是winServer许可过期了,于是中午他为服务器增加了180天的许可,XiaoHu就没有再次出现这种问题。今天我还优化了学科查询的语料。

6/19 今天准备给XiaoHu增加一个识别语音消息的功能,步骤很简单,拿到语音文件,交给api识别成文字,然后交给消息主函数。获得语音文件要先获得微信的access_token,发get请求。在写这个的过程中我还突然顿悟到之前出现过的XiaoHu查课功能崩溃的原因是不是因为希悦的accesstoken过期,结果果然如此,我增加了一个记录上次get时间的变量,每次使用token时把这个变量和当前时间对比一下,如果超过保质期就重新获取,于是我也就顺便修复了一个重大bug。希悦的token保质期24小时,微信的token保质期2小时,不过又出现了另一个困难,就是微信的access_token有一个ip白名单,不在这个白名单内的ip发get请求会出现报错,然而学校服务器没有外网ip,每次路由器发出去的ip都是在一定范围内变化的,我根本无法通过这个服务器获取到token,也就无法获得语音文件了。我的另一个想法是把这些代码放到我运行在外网的nodejs转发器程序里,每次公众号程序向转发程序发请求,转发程序获取token后返回给公众号程序,虽是可行,但是需要编写的代码量太大,还不能保证效率,可能丢包。我没有采用这种方法,而是找毛老师问他能不能让路由器不要使服务器ip改变,这样就可以用之前的思路写了,他说回去问网管。今天还添加了一个功能使一个微信用户可以重复绑定不同学号,其实是某微信号绑定一个新学号后会自动删除其之前的学号记录。在之前我的数据库程序会自动读取数据库里的最后一行符合要求的信息,所以一个微信号会存在绑定多个学号的记录,但是生效的是绑定的最晚的那个,所以我不用做出过多的处理去处理那些冗余的数据,但是这两天它的机制变成了读取最前的那个记录,为了保持效果,我在代码中加入了加入记录前删除该微信id的所有记录的语句。有些时候不应该为了方便就把一些功能将就过去,当不可控因素改变时可能会造成一些严重的后果。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值