Python Google talk聊天机器人源码,python聊天机器人,Python编橙之家本文
Python Google talk聊天机器人源码,python聊天机器人,Python编橙之家本文
Python编橙之家本文是关于依据xmpp封装的Jabber聊天机器人类。 并提供了Python Google talk聊天机器人源码供大家参考。这个python gtalk机器人是可以通过继承,并能重载部分函数来自定义功能。
Python gatalk机器人相关文章推荐:Python WebSocket服务端编程代码完成gtalk机器人
python gtalk机器人源码部分如下:
# coding: utf-8import xmppclass Bot: """ Jabber Bot Base Class """ JID = '' PASSWORD = '' client = None def __init__ (self, jid, password): self.JID = xmpp.JID(jid) self.PASSWORD = password self.login() def login (self): self.client = xmpp.Client(self.JID.getDomain(), debug=[]) if self.client.connect() == '': raise 'JabberBot not connected.' if self.client.auth(self.JID.getNode(), self.PASSWORD) == None: raise 'JabberBot authentication failed.' self.client.RegisterHandler('message', self.message_callback) self.client.RegisterHandler('presence', self.presence_callback) self.client.sendInitPresence() def message_callback (self, client, message): """ 默认消息回调(可通过继承自定义) """ def presence_callback (self, client, message): """ 默认事件回调,包括下面几个(可通过继承自定义) """ type = message.getType() who = message.getFrom().getStripped() if type == 'subscribe': self.subscribe(who) elif type == 'unsubscribe': self.unsubscribe(who) elif type == 'subscribed': self.subscribed(who) elif type == 'unsubscribed': self.unsubscribed(who) elif type == 'available' or type == None: self.available(message) elif type == 'unavailable': self.unavailable(who) def subscribe (self, jid): """ 加好友 """ self.client.send(xmpp.Presence(to=jid, typ='subscribed')) self.client.send(xmpp.Presence(to=jid, typ='subscribe')) def unsubscribe (self, jid): """ 取消好友 """ self.client.send(xmpp.Presence(to=jid, typ='unsubscribe')) self.client.send(xmpp.Presence(to=jid, typ='unsubscribed')) def subscribed (self, jid): """ 已加 """ def unsubscribed (self, jid): """ 已退 """ def available (self, message): """ 上线 """ def unavailable (self, jid): """ 下线 """ def send (self, jid, message): """ 发消息给某人""" self.client.send(xmpp.protocol.Message(jid, message))# www.iplaypy.com def step (self): """ 用在循环中 """ try: self.client.Process(1) except KeyboardInterrupt: # Ctrl+C停止 return False return True#===========================#以下为测试部分#===========================class Bot(Bot): def message_callback (self, cl, msg): fromid = msg.getFrom().getStripped() cont = msg.getBody() self.send2admin(msg) def send2admin (self, message): self.send('admin@gmail.com', message)if __name__ == '__main__': gb = Bot ('yourbot@gmail.com', '******') gb.send2admin ('Bot Started') # 开始运行 while (gb.step()): pass
编橙之家文章,
相关内容
- Python语言判断输入的是否是回文数的方法,,Python语言如
- Python localtime()方法计算今天是一年中第几周,pythonloc
- Python实现自动提取国家地理每日图片,,用Python urll
- Python自动输出文件夹下符合条件的全路径名,,Python自动
- Python urllib2发送即时消息到twitter的实现方法,urllib2tw
- Python 按月增加datetime月份的问题,pythondatetime,今天要为
- Python方法解决Url与Tinyurl地址互换问题,pythontinyurl,Pyt
- Python简易邮件查看器源码示例详解,python查看器,Pytho
- Python将汉字数字转换成阿拉伯数字的方法,python阿拉伯
- Python筛法求质数(素数)的生成器示例,python质数,本篇
评论关闭