之前博客搬家之后一直没有意识到我的评论邮件提醒功能失效了,原来是因为新主机没有配置sendmail,因此在本篇之前先加几行代码把服务器配置好先。当然如果你不像我一样只是因为搬家导致邮件提醒失效的话,你还需要修改主题functions.php文件,使一旦有新评论就提醒该评论主人。废话不说,直接上配置代码:

1
2
$ sudo apt-get install sendmail
$ sudo vim /etc/php5/apache2/php.ini
1
2
3
4
5
# 之前
;sendmail_path=

# 改成
sendmail_path = /usr/sbin/sendmail -i -t

这几天尝试了一下Mac Calendar,对我而言这东西倒不是提醒我做什么,而是记录我每天都做了些什么,比如说实验室事情用红色,项目的事用蓝色,娱乐的事用紫色…一天下来看到五彩缤纷的事程记录感觉非常充实,不让每一天在虚妄中度过吧。加上Mac Calendar和Google Calendar有同步功能,就更加Nice了!

小黄鸡的来历
回到正事说Moonya吧,之前人人网上有个小黄鸡的东西,就是用来你说一句它回一句,导致了当时刮起了一阵小黄鸡热?大家都蜂拥去调戏小黄鸡去了。那小黄鸡的原理是什么呢?其实小黄鸡的作者还是比较trick的,它把收到的消息发给一个叫Seisimi的网站,这个网站是由韩国人维护的一个人工智能网站(其实就是支持数十种语言的原版小黄鸡),嗯,我也模仿这种行为使Moonya具有简单的自动回复功能。当然这不是Moonya的主要功能…

小黄鸡基础
首先我们应该去Simsimi官网去尝试一下…老方法还是用firebug看每次你提交的请求,不仅要看url还要看headers。因为我们发现如果仅仅把url复制到浏览器里是会出错的,说明simsimi对每个request的headers都做了一些手脚,让它能识别哪些请求是正常的,哪些是非法的,因此我们需要完全模仿每一次请求。说起这个,据说是因为小黄鸡的使用率过大,使Simsimi感觉自己受到了伤害所以加强了防范。

源码
这种模拟浏览器请求的事情我们没少做,之前的天气预报也是这么来的,所以直接上代码吧。。。这是simsimi.py源文件…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#-*-coding:utf-8-*-
import sys, requests
reload(sys)
sys.setdefaultencoding('utf-8')

class SimSimi:

def __init__(self):

self.session = requests.Session()
self.chat_url = 'http://www.simsimi.com/func/req?lc=zh&msg=%s'
self.session.headers.update({
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:21.0) Gecko/20100101 Firefox/21.0',
'Referer': 'http://www.simsimi.com/talk.htm?lc=zh',
'Accept-Encoding':'gzip, deflate',
'X-Requested-With':'XMLHttpRequest',
'Content-Type':'application/json; charset=utf-8',
'Accept-Language' : 'en-US,en;q=0.5',
'Connection':'keep-alive',
'Accept':'application/json, text/javascript, */*; q=0.01'})
self.session.cookies = requests.utils.add_dict_to_cookiejar(self.session.cookies, {
'__utma':'119922954.674669942.1373296655.1373296655.1373296655.1',
'__utmb':'119922954.7.9.1373296756870',
'__utmc':'119922954',
'__utmz':'119922954.1373296655.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)',
'sagree':'true',
'JSESSIONID':'6F3B6107AA73D7B947E8B82FE4788DE6'})

def chat(self, message=''):
r = self.session.get(self.chat_url % message)
try:
return r.json()['response'].encode('utf-8')
except:
return "不明所以..."

simsimi = SimSimi()

if __name__ == '__main__':
print simsimi.chat('你好啊')

试试python simsimi.py吧~接下来我想为Moonya添加一个查询单词、维护生词本、以及提供抽查生词的功能。这也是下一章主要内容。