1. 程式人生 > >基於itchat的微信群聊小助手基礎開發(一)

基於itchat的微信群聊小助手基礎開發(一)

log 表達式 數據包 gin 找到 ont 基本 時間 msg

前段時間由於要管理微信群,基於itchat開發了一個簡單的微信機器人

主要功能有:

  1. 圖靈機器人功能
  2. 群聊昵稱格式修改提示
  3. 消息防撤回功能
  4. 鬥圖功能

要開發一個基於itchat的最基本的聊天機器人,在github上作者已經給出基本的操作,本博文只對附加的功能進行說明總結。

確保已經了解itchat的基本操作,先對功能1和功能2進行說明:

1.圖靈機器人功能

該功能也是最基礎的功能之一,itchat的基礎案例也有相關例子。

圖靈機器人簡單而言就是以一定的規則給圖靈的服務器發送數據包,圖靈的服務器會以一定的規則給你返回數據包,就可以實現對話了。

首先先要去 圖靈機器人 註冊一個key,來告訴圖靈服務器你有權和他對話

以下是代碼:

 1 def get_response(msg):
 2     apiUrl = http://www.tuling123.com/openapi/api
 3     data = {
 4         key    : KEY,#這裏是你申請的key
 5         info   : msg,
 6         userid : wechat-robot,
 7     }
 8     try:
 9         r = requests.post(apiUrl, data=data).json()
10         #return r.get(‘text‘)
11 code = r[code] 12 if code == 100000: 13 reply = r[text] 14 elif code == 200000: 15 reply = r[text] + r[url] 16 elif code == 302000: 17 list = r[list] 18 reply = r[text] 19 for i in list: 20 reply = reply +
, + i[article] + i[detailurl] + \n 21 return reply 22 except: 23 return

2.微信群昵稱格式修改提示

首先,先寫一個判斷函數,用正則表達式匹配你想要的格式。

如果不符合此格式,則返回一條 “ @不符合格式的昵稱 請盡快按照如:16-xx-XXX的格式修改備註,謝謝合作”

‘@%s\u2005’ 中的 ‘\u2005’ [email protected]

1 def groupNameIsOK(name,msg):
2     str=u請盡快按照如:16-xx-XXX的格式修改備註,謝謝合作
3     if re.search(ur"\d\d(\-|\-|)\S*(\-|\-|)\S*",name)==None:
4         msg.user.send(u@%s\u2005%s % (
5             msg.actualNickName, str))

返回一條信息肯定要有 @那個昵稱不符的吧?那接下來就要找到這個昵稱,也是用正則去匹配,然後返回他的昵稱

1 def groupPeople(msg):
2     T=re.search("\@\@(.*?)",msg[FromUserName])
3     if T!=None:
4         return msg[ActualNickName]
5     else:
6         return None

最後把它們整合,第二個功能搞定

1     if groupPeople(msg)!=None:
2         msg_from=groupPeople(msg)
3         groupNameIsOK(msg_from,msg)

基於itchat的微信群聊小助手基礎開發(一)