立志成为一个可被调戏且有用的Bot
很多人听过甚至曾经用过小黄鸡. 你可以把本bot理解为增加了很多功能
, 只保留小黄鸡交流的基本逻辑
,
用于slack
channel里面的小黄鸡
. 它主要借用slack的Outgoing Webhooks,
也使用了私聊和upload.
项目使用flask, 目前本项目是一个heroku应用. 地址是 https://slack-bot2.herokuapp.com/slack_callback 但是你也可以直接裸跑
gunicorn wsgi:app localhost:5000 --timeout 240 --log-file -
- 可以把消息私聊发给自己
- 可以使用带图的方式接收结果(支持canvas, 以下会看到例图)
继承自小黄鸡的模块们, 但是都做了对应的修改:
- 空气插件
- wikipedia
- 地震了
- 糗百
- orz
新加的模块们:
我们欢迎你把你想要的idea实现出来, 或者在看过本项目代码后用于个人以及私有公司的插件遇到bug, 发现瓶颈等时候 给我们PR
插件放在plugins目录下,每个插件是一个python文件,提供两个接口,test
和handle
,格式如下:
def test(data):
// your code
test
方法返回True
或False
,说明是否要用该插件处理这一条请求
def handle(data, **kwargs):
// your code
handle
方法则实际处理请求,它需要返回一个utf-8编码的字符串或者一个tuple,用来作为小黄鸡对这条请求的答复:
- 返回只包含一个字符串表示不支持带图模式
- 返回一个(字符串, 一个attachment的列表), 每个attachment可以使用plugins/utils.py的
gen_attachment
生成
data
是一个dict, 它是slack在回调的时候的请求, 一般情况下你只需要关注data['message']
这个消息全文
字段.
注意事项:
-
请把新的插件的名字也加在plugins/__init__.py的
__all__
里面 -
如果其他插件都不符合, 会默认使用小黄鸡接口
-
本地调试可以使用这样的http请求:
http -f POST http://localhost:5000/slack_callback token=jLGMzrZn3P1lS2sD848KpPuN text='颐和园景点介绍' team_id=T0001 team_domain=example channel_id=C2147483705 channel_name=test timestamp=1355517523.000005 user_id=U2147483697 user_name=Steve trigger_word=''
-
你也可以这样调试:
$python manage.py send 今天天气很不错 !是啊是啊 好想出去玩
-
输入xx有什么可玩的
-
今天中午吃什么
-
输入我想从哪去哪, 调用地图api.给个路线
-
附近有什么可吃的(大众点评)
-
最近都有神马技术聚会
-
Pycoders Weekly & Python Weekly 汇总
-
今日头条
-
公交车离我还有多久/远
-
v2ex feed
-
github上的issue列表
-
最近(将)上映的电影(豆瓣电影)
-
旅游路线推荐/景点介绍
- 打车
- 叫快递
- 叫外卖