Hubot是Github的聊天室机器人.这是一个很棒的工具,除了我们公司没有人想写Coffeescript ....但似乎我们不能用普通的旧Javascript编写Hubot的脚本.
这是真的?这里有什么我想念的吗?Coffeescript是"只是javascript",但我不能使用Javascript吗?
编辑
我做了2个荒谬简单的错误:
- 我将CoffeeScript注释语法复制到我的JS文件中
- 我在hubot-scripts node_module下有脚本,而不是在主项目的/ scripts /目录下.
现在工作得很好.
我正在尝试将http-post-say.coffee脚本添加到Heroku上托管的hubot应用程序.
文档表明,一旦添加脚本,它就会创建'/hubot/say'以下列格式接受发布请求的路由.
curl -X POST http://localhost:8080/hubot/say -d message=lala -d room='#dev'
Run Code Online (Sandbox Code Playgroud)
我添加了脚本并修改了网址,但收到了以下错误:
Cannot POST /hubot/say
我的下一步是添加一些依赖项.我注意到其他使用的应用程序robot.router.post有这些依赖项.
"htmlparser": "1.7.6",
"connect": "2.3.4",
"connect_router": "1.8.6",
"scoped-http-client": "0.9.7"
Run Code Online (Sandbox Code Playgroud)
我部署了我的更改,但是Cannot POST /hubot/say当我尝试按此路线时仍然会收到.
有什么我想念的吗?我对Node.js或hubot不太熟悉.
我是hubot的新手,在那里我看到一个声明robot.logger.debug"在#{commit.url}上尝试gitio"
有人能告诉我在哪里可以看到这个调试消息.我正在使用./bin/hubot命令来运行它.有没有办法在调试模式下运行它?所以我可以看到调试消息?
在尝试部署hubot时,npm一直在抱怨未满足的依赖关系.该文档没有解释如何解决这个问题.
yum install npm --enablerepo=epel
yum install nodejs --enablerepo=epel
cd /opt
git clone https://github.com/github/hubot.git
cd hubot/
./bin/hubot --create acebot
npm install -g hubot coffee-script
...
npm http 200 https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz
npm http 200 https://registry.npmjs.org/uid2/-/uid2-0.0.2.tgz
/usr/bin/hubot -> /usr/lib/node_modules/hubot/bin/hubot
npm WARN unmet dependency /usr/lib/node_modules/block-stream requires inherits@'~2.0.0' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is version undefined
npm WARN unmet dependency /usr/lib/node_modules/fstream requires inherits@'~2.0.0' but will load
npm WARN unmet dependency undefined,
npm WARN unmet dependency which is …Run Code Online (Sandbox Code Playgroud) 我目前正和Hubot玩一下,想把它连接到我和我的朋友聚会频道.问题是我似乎找不到适配器.可能不存在一个(因为最近谷歌环聊重新改造了他们的api)但我想先问你.
我发现了
TL; DR:是否有最新的Google Hangouts适配器?
我正在考虑制作一个基于Hubot时钟的通知器(想想"它是5,回家的时间!"但不那么讨厌,并且出于不同的原因).在Hubot脚本中执行此类操作的最佳方法是什么?
[ edit ]以下是使用node-cron的示例:
TIMEZONE = "America/New_York"
QUITTING_TIME = '0 0 17 * * 2-6' # M-F 5pm
ROOM = "Dev"
cronJob = require('cron').CronJob
module.exports = (robot) ->
gohome = new cronJob QUITTING_TIME,
->
robot.messageRoom ROOM, "It's 5! Go home!"
null
true
TIMEZONE
Run Code Online (Sandbox Code Playgroud)
依赖关系:
"cron": "0.3.3",
"time": "0.8.2"
Run Code Online (Sandbox Code Playgroud) 我正在尝试调试现有的Hubot脚本,并在将来编写我自己的脚本,我需要一种简单的方法来调试它,或者至少在某处(而不是通道)打印值.我怎么能这样做?
如果可以在某些交互式本地模式下使用Node完成此操作,则可获得奖励积分.我真的不知道从哪里开始.
Hubot使用的所有脚本都是用Coffeescript编写的.
PS我正在使用Hubot和Hipchat.
这里是参考代码.我正在尝试制作一个hubot插件,记录到elasticsearch,然后使用hubot命令搜索这些日志.
https://gist.github.com/4050748
我正在尝试检索匹配两个查询的记录.
{
query: {
match: {
user: "SomeUsername"
},
range: {
date: {
from: (Date.now() - 3600)
}
}
},
size: 50
}
Run Code Online (Sandbox Code Playgroud)
我在期待:
我有:
如何在过去一小时内获得所有带有用户名的记录?我是否需要将match_all与过滤器一起使用?我试图不受支持吗?
在SQL中它将是这样的:
Select (*) from messages where user_name = ? and time > ?
Run Code Online (Sandbox Code Playgroud) 这似乎是一个愚蠢的问题.
我已经将Hubot部署到Heroku并根据Slack设置了这条指令给出的配置.但是我不知道Hubot是否应该出现在我的团队中.我可以通过REST发布消息,日志显示收到消息.
如果Hubot成为团队中的成员,我可以直接发送消息或者我遗漏了什么?
我有这个hubot-cron脚本为Slack设置了heroku.只有一个例外,效果很好.如果你在Slack中'@'某人(提及),用户将收到通知,具体取决于他们的通知设置.这样写的方式,如果在命令文本中放入用户名,Slack不会将其注册为用户,只是文本.
例如:
hubot新工作2*****"@everyone testing"
如果每两分钟发布一次,它可能会写@everyone,但Slack并不认为它实际上是'@everyone'.
使用此代码可以做什么,以便您可以将作业实际指向@user?
# Description:
# register cron jobs to schedule messages on the current channel
#
# Commands:
# hubot new job "<crontab format>" <message> - Schedule a cron job to say something
# hubot new job <crontab format> "<message>" - Ditto
# hubot new job <crontab format> say <message> - Ditto
# hubot list jobs - List current cron jobs
# hubot remove job <id> - remove job
# hubot remove job with message <message> …Run Code Online (Sandbox Code Playgroud) hubot ×10
node.js ×4
coffeescript ×3
heroku ×2
javascript ×2
slack-api ×2
cron ×1
hangout ×1
http-post ×1