今天是我开发Athena的不知道第多少天。是我开发日记的第一天。
连日的熬夜让我觉得有点晕也有点累。于是今天刚好趁机整理一下思路吧。
Athena之前叫做Lisa,是我师父的名字。她的前身是workstation,我的个人工作台项目。我之所以开workstation,是因为我发现我所做的众多尝试,并没有得到成果。我需要一个东西,把它们放到一起。于是就有了workstation——一个辅助我办公的项目。在做到第六个功能——“手气不错”的时候,我想到了个人助理。
在很多作品里,你都能看到个人助理的影子,比如东之伊甸里预言主人死亡的社会猜想系统,宇宙刑警里的嘉娜,最近守望先锋里的Athena。当前以siri为代表,在各个平台上都有类似的玩意儿。
然后我在workstation的主页开发了这个,最初是一个以restfulAPI做后台的小模块,后来我发现,她才是我想要的,她才是入口。
于是今天下午我花了一部分时间,把她从我的项目里抽出来。变成了一个单独的项目。
Athena当前只有三个功能,打开她的时候根据当前的时间打招呼,摸她的时候做一个固定回应和回应我的“资讯”消息。
当前的主体架构是搭载在Express上利用socket.io做的。由于移除了所有restfulAPI,所以没有使用路由,只进行了基本的static服务。这样导致了一个问题,我所有的应对都是基于socket的handler的(socket.on(...)),所以整个handler里写的非常之乱。还在想怎么解决。
之后我将原来API的Controller和DAO干掉,将功能抽象成为service的形式。第一个完成的就是crawler,现在想来应该叫Spider——爬虫。所以现在当我输入“资讯”的时候,Athena就会爬取我设定好的RSS源的所有消息,然后发给我。
有关爬虫的进化,我还要专门拿出来写……
之后,我想做的是——
1.现在的爬虫还只是基本的静态抓取,无法获取动态页面,需要结合phantomJS进行动态获取。截止写的时候,我的phantom搞了一晚上搞定了。开心。虽然weibo.com的抓取还是很失败,不过taobao已经没问题了。
2.让Athena拥有自己的心情——用Mongo建立一个心情库,然后根据随机爬取的新闻进行心情变更。
3.邮件功能——把之前做的nodemail和imap整合进来,虽然Exchange暂时无法实现,但是QQ邮箱应该没什么问题了。另外,邮件就意味着富文本编辑器。我打算用Simditor。
4.小黑板——其实也就是一个记事本,同时可以允许我把重要的她说的话,钉到黑板上。另外就是我在考虑要不要使用iframe进行窗口开发。这个待定,明天可以试一下。
5.未来——语音库?同义词?哦对了我的分词用了结巴,也已经成功了,下一步可以做关键词积累了。
暂时先写到这儿吧,明天有时间把最近用到的新的插件整理一下。然后把爬虫进化史整理一下。
晚安。明天也要开心哦~