使用irckit的干净、可扩展的irc bot。

toastbot的Python项目详细描述


toastbot
==


一个干净的、可扩展的irc bot,使用python、irckit、gevent&;请求。

**作者:**daniel lindsley<;br>;
**许可证:**bsd<;br>;
**版本:**0.4.1



Requirements
----

*gevent
*irckit
*requests



-


''myircchannel')
bot.setup()



>然后用``python bot.py```运行。













>各种非必需选项。
















>关于机器人,作为字符串。
*``通道``机器人应该连接的通道,作为字符串。

``服务器``机器人应该连接的服务器(默认值:``irc.freenode.net```).
*``用户名`-机器人应该标识的用户名(默认值:``nick`);
*`` realname``机器人应该提供的可读名称(默认值:“toastbot”)。
*``debug`-控制IRC连接是否应转储调试消息(默认值:``false``)。
*``log`u dir`-控制日志应进入的目录(默认值:`$install`directory/logs`)。
*``variants`-用于重写处理bot的方法。应该是字符串(默认值:`[self.nick+':',self.nick+',',self.nick+'-',self.nick+'-']```).




可用的“处理程序”
----

handlers是bot根据传入消息执行操作的方式。它们是挂起bot对象的简单方法。内置列表包括:

*``帮助``提供对我响应的内容的描述。
*``舞蹈``下来吧,别扭。
*``伍迪``网上最好的引语。
*``维基`-在维基百科上搜索主题。
*`` metar `-按站点代码获取noaa metar。
*`` twitter `-在twitter上搜索主题。
*`` fatpita``获取随机的fatpita图像。对于lulz.
*``corgi bomb``-corgi bomb



最基本的方法是添加一个用“toastbot.handler”修饰的新方法。例如,记录用户在频道中说过的话的次数可能如下:



class mybot(toastbot.toastbot):
talkers={}

super(mybot,self)。\uu初始(args,**kwargs)
self.enabled+=[
自我。如何聊天,
]


定义如何聊天(自我,尼克,文本):
“记录用户说话的频率。”
如果self.talkers中有nick:
self.talkers[nick]+=1
否则:
self.talkers[nick]=1


打印self.talkers.items()


bot=mybot(“myircbot”,“35; myircchannel”)
bot.setup()


请注意,此命令根本不需要寻址bot。如果您想要
bot响应的命令,可以编写如下内容:



class stoolpigeon(toastbot.toastbot):
self.enabled_commands+=[
self.stool_鸽子,
]


def stool_鸽子(self,nick,text):
“把说话的人赶走。”
text=self.is_direct_command('stool_鸽子',文本)

如果不是文本:
raise nothandled()


return str(self.talkers)

bot=stoolpigeon('myircbot',''myircchannel')
bot.setup()

检查bot是否直接寻址,然后返回字符串化版本的“talker”统计信息。包含的处理程序演示了
更复杂的行为,例如如何进行网络获取或异步
响应。


self).='twitter']

bot=mybot('myircbot','\myircchannel')
bot.setup()

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
socket如何在Java中获取侦听服务器端口?   安卓在应用程序外创建SharedReferences对象   在Java代码中调用SPARQL查询(在DBPedia上)时出现HttpException错误   url中的java隐藏参数   java是否有任何方法可以监听对全局变量的更改以触发事件   爪哇太阳报。网www.protocol。https。无法将HttpsURLConnectionImpl强制转换为sun。网www.protocol。http。可设定代理   java Kaltura Android参考应用程序API。entryReady上的自动播放(“doPlay”)视频   JAVA单击按钮绘制形状时出现问题   java在@Configuration bean中的SpEL表达式中引用ConfigurationProperties bean   java getClass()的替代方案是什么。getResourceAsStream()是否获取文件对象?   Spring MVC:如何在@ResponseBody中返回图像?   javax。Java中图像IO检测图像编码   java自定义gson转换器使用GETrequest进行改造   java Spring 3.2.0未找到uri   java IntelliJ IDEA 11:Maven支持不起作用