Tangerine是一个轻量级的Slackbot框架,它抽象了编写bot所需的所有样板代码,允许您集中精力解决手头的问题。
slack-tangerine的Python项目详细描述
python slack的一个灵感来源于烧瓶的、基于decorator的api包装器。
关于
Tangerine是一个轻量级的Slackbot框架,它抽象了编写bot所需的所有样板代码,允许您集中精力解决手头的问题。
安装
- 要安装橘子,只需使用pipenv(当然也可以是pip):
$ pipenv install slack-tangerine
- 创建包含以下内容的新文件:
# mybot.pyfromtangerineimportTangerinetangerine=Tangerine("xoxb-1234567890-replace-this-with-token-from-slack")@tangerine.listen_for('morning')defmorning(user,message):return"mornin' @{user.username}"if__name__=='__main__':tangerine.run()
- 现在试着运行它,运行下面的命令,然后在slack中说“早上好”。
python mybot.py
用法
要启动项目,首先需要通过将from tangerine import tangerine添加到文件顶部来导入橘子。
接下来,需要创建一个橘子实例并配置slack令牌。这可以使用yaml配置文件完成,也可以显式地将其传递给初始化。
# Option 1: YAML config:importosfromtangerineimportTangerinepath=os.path.dirname(os.path.abspath(__file__))path_to_yaml=os.path.join(path,'config.yaml')tangerine=Tangerine.config_from_yaml(path_to_yaml)# Option 2: Hardcoded slack tokenfromtangerineimportTangerinetangerine=Tangerine("xoxb-1234567890-replace-this-with-token-from-slack")
现在是编写响应函数的时候了,这些函数被listen_for decorator包装起来,它注册了一个模式来监视slack对话,一旦它说出来,python方法应该处理它。
在下面的示例中,该方法设置为侦听单词“cookies”。注意,decorator向函数传递了两个参数,第一个是包含触发事件的用户信息的用户对象(在本例中是说单词cookies的slack用户)和消息,这是完整消息的字符串。
@tangerine.listen_for('cookies')defcookies(user,message):# do something when someone say's "cookies" here.
crontab
有时,您会遇到这样的情况:您希望定期发送松弛消息,而不是直接响应关键字,因为这个cangerine附带了cron的单线程python实现。
假设我们想每隔五分钟向频道中的每个人发送一条消息,只需将以下内容添加到mybot.py文件中即可:
@tangerine.cron('*/5 * * * *')defsome_task():tangerine.speak("Hay Ride!","#general")