使用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()
==
一个干净的、可扩展的irc bot,使用python、irckit、gevent&;请求。
**作者:**daniel lindsley<;br>;
**许可证:**bsd<;br>;
**版本:**0.4.1
Requirements
----
*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={}
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()