使用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第三方库


热门话题
javai是JAXB的新手。如何将两个具有不同名称空间的不同xml合并为一个具有根元素的xml并将其解组?   JDO中的java应该是可传递的DefaultFetchGroup吗   java服务器配置问题   java在理解JList时遇到困难   java何时将RequestContextFilter用于Jersey?   java从数据库中读取文本文件。jar文件   Java正则表达式,仅适用于不包括零的正数   爪哇番石榴。类路径中的jar   JavaEE:关于设计的问题   java GUI,在面板中排列按钮   java Android为什么使用接口被认为是活动和片段之间通信的最佳实践?   java如何获取wicket图像的url以在开放图元标记中使用它   从Java字节[]>Base64>Javascript数组缓冲>Base64>byte[]   java正则表达式帮助字符串JWE766。1.pdf格式摘录766   java Hibernate,JPA忽略@Formula