Coder Social home page Coder Social logo

hubot's Introduction

Pipeline Status

Build Status: MacOS Build Status: Ubuntu Build Status: Window

Hubot

Note: v10.0.4 accidentaly contains the removal of CoffeeScript; v10.0.5 puts it back in Note: v11 removes CoffeeScript and converts this codebase to ESM

Hubot is a framework to build chat bots, modeled after GitHub's Campfire bot of the same name, hubot. He's pretty cool. He's extendable with scripts and can work on many different chat services.

This repository provides a library that's distributed by npm that you use for building your own bots. See the documentation for details on getting up and running with your very own robot friend.

In most cases, you'll probably never have to hack on this repo directly if you are building your own bot. But if you do, check out CONTRIBUTING.md

Create your own Hubot instance

This will create a directory called myhubot in the current working directory.

npx hubot --create myhubot --adapter @hubot-friends/hubot-slack
npx hubot --create myhubot --adapter @hubot-friends/hubot-discord
npx hubot --create myhubot --adapter @hubot-friends/hubot-ms-teams
npx hubot --create myhubot --adapter @hubot-friends/hubot-irc

Review scripts/example.mjs. Create more scripts in the scripts folder.

License

See the LICENSE file for license rights and limitations (MIT).

Hubot History

Cartoon with Hubot

The Most Important Startup's Hardest Worker Isn't a Person

The Story of Hubot

Hubot by Hubotics

Automating Inefficiencies

hubot's People

Contributors

anaisbetts avatar aroben avatar assaf avatar atmos avatar bkeepers avatar creatorrr avatar dependabot[bot] avatar elliotttf avatar geoffreyanderson avatar gr2m avatar jasonkarns avatar jhubert avatar jimeh avatar joeyguerra avatar mexitek avatar michaelansel avatar mistydemeo avatar mose avatar olemchls avatar parkr avatar sdimkov avatar technicalpickles avatar technoweenie avatar titanous avatar tmm1 avatar tombell avatar tricknotes avatar unixcharles avatar uugengiven avatar xurizaemon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hubot's Issues

Error when starting hubot

/Users/skoch/hubot/node_modules/hubot/node_modules/coffee-script/lib/command.js:15
    return process.binding('stdio').writeError(line + '\n');
                   ^
Error: No such module
    at /Users/skoch/hubot/node_modules/hubot/node_modules/coffee-script/lib/command.js:15:20
    at /Users/skoch/hubot/node_modules/hubot/node_modules/coffee-script/lib/command.js:140:7
    at /Users/skoch/hubot/node_modules/hubot/node_modules/coffee-script/lib/command.js:90:26
    at [object Object].<anonymous> (fs.js:108:5)
    at [object Object].emit (events.js:64:17)
    at afterRead (fs.js:1074:12)
    at Object.wrapper [as oncomplete] (fs.js:246:17

Fresh istall of Node and npm:
$ node -v v0.5.11-pre $ npm -v 1.0.102
Apparently node_stdio was removed from Node v0.5.10 (83fce75)

Heroku run failure: `Record not found` on scale

Checked out latest repo, pushed up to new heroku cedar app, added redistogo addon and added campfire ENV vars.

But when running heorku scale app=1 it fails right away:

[email protected][oskar] hubot/: heroku scale app=1
Scaling app processes...  !   Record not found

Looks like an activerecord error, which seems a bit weird...

Twitter adapter

How I'm envisioning this working is that Hubot is a Twitter account that carries out actions or replies based on Mentions or DMs to him. I'm new to Node, but I'll see what I can do.

Deployable bot in 1.1.0 seems broken

I used ./bin/hubot -c ~/Desktop/vectorprime to create the deployable bot.

While in ~/Desktop/vectorprime and running any ./bin/hubot command I get:

Error: Cannot find module 'optparse'
    at Function._resolveFilename (module.js:326:11)
    at Function._load (module.js:271:25)
    at require (module.js:355:19)
    at Object.<anonymous> (/Users/seth/Desktop/vectorprime/node_modules/hubot/bin/hubot:14:14)
    at Object.<anonymous> (/Users/seth/Desktop/vectorprime/node_modules/hubot/bin/hubot:91:4)
    at Module._compile (module.js:411:26)
    at Object.run (/Users/seth/Desktop/vectorprime/node_modules/hubot/node_modules/coffee-script/lib/coffee-script.js:62:19)
    at /Users/seth/Desktop/vectorprime/node_modules/hubot/node_modules/coffee-script/lib/command.js:120:29
    at /Users/seth/Desktop/vectorprime/node_modules/hubot/node_modules/coffee-script/lib/command.js:90:26
    at [object Object].<anonymous> (fs.js:107:5)

Error when running Hubot XMPP locally

This is what I get when I run bin/hubot -a xmpp, I did run npm install to make sure I have a dependencies.

Loading deploy-local scripts at /home/bigbash/hubot/scripts Error: Cannot find module '../build/default/node-expat' at Function._resolveFilename (module.js:326:11) at Function._load (module.js:271:25) at require (module.js:355:19) at Object.<anonymous> (/home/bigbash/hubot/node_modules/node-xmpp/node_modules/node-expat/lib/node-expat.js:3:13) at Module._compile (module.js:411:26) at Object..js (module.js:417:10) at Module.load (module.js:343:31) at Function._load (module.js:302:12) at require (module.js:355:19) at Object.<anonymous> (/home/bigbash/hubot/node_modules/node-xmpp/node_modules/ltx/lib/parse.js:8:13)

Hubot shuts down erroneously (heroku)

Running on the 1.0.2 distribution

After a few minutes of playing with Hubot, it stopped responding and I saw this in the logs (looking at the source it appears it received an "end" response from campfire?

2011-10-25T20:45:54+00:00 heroku[app.1]: State changed from starting to up
2011-10-25T20:45:56+00:00 app[app.1]: Streaming Connection closed. :(
2011-10-25T20:45:56+00:00 heroku[app.1]: Process exited
2011-10-25T20:45:57+00:00 heroku[app.1]: State changed from up to crashed

Move `scripts` to top-level

I love how RealHubot™ has scripts in the top-level. It's really obvious where to dive in if you're a newcomer. Also, it then would detach the scripts themselves from hubot a little more (so if you're adding custom scripts you don't have to dive deep into hubot itself, for example).

hubot is not in the npm registry

Everything was working great yesterday, but today I can't seem to do a npm install.

npm ERR! 404 'hubot' is not in the npm registry.
npm ERR! 404 You could maybe bug the author to publish it
npm ERR! 404 Note that you can also install from a tarball or folder.
npm ERR! 
npm ERR! System Darwin 11.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/titanous/projects/spy
npm ERR! node -v v0.4.12
npm ERR! npm -v 1.0.96
npm ERR! code E404

IRC Robot says everything twice

Hubot seems so keen to talk to IRC that it repeats everything twice.

09:44 <@dan> hubot: ping
09:44 < hubot> PONG
09:44 < hubot> PONG

From dan to #test: hubot: ping
undefined: PONG
27 Oct 09:44:47 - SEND: PRIVMSG #test :PONG
undefined: PONG
27 Oct 09:44:47 - SEND: PRIVMSG #test :PONG

RELOAD THE CORE

I love the fact that Hubot reloads himself. Can we do that on Heroku?

hubot only replies to commands if his name is prefixed (heroku)

Using the 1.0.2 tar download and following the instructions on a fresh cedar stack.

Stating "help" yields the reply you'd expect, given the scripts included:

<user> is a badass guitarist - assign a role to a user
<user> is not a badass guitarist - remove a role from a user
animate me <query>  - The same thing as `image me`, except adds a few
convert me <expression> to <units> - Convert expression to given units.
help - Displays all of the help commands that Hubot knows about.
image me <query>    - The Original. Queries Google Images for <query> and
map me <query> - Returns a map view of the area returned by `query`.
math me <expression> - Calculate the given expression.
mustache me <query> - Searches Google Images for the specified query and
mustache me <url>   - Adds a mustache to the specified URL.
show storage - Display the contents that are persisted in redis
show users - Display all users that hubot knows about
translate me <phrase> - Searches for a translation for the <phrase> and then
who is <user> - see what roles a user has
youtube me <query> - Searches YouTube for the query and returns the video

However, upon trying to execute each of the commands, Hubot only seems to respond to map me <query> and none of the others.

Failed to install

There's a conflict with installing to Heroku due to Wolfram needing node 0.4.11 and Heroku forces 0.4.7, for reference here's the error I'm getting:

$ git push heroku master
Counting objects: 29, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 3.04 KiB, done.
Total 18 (delta 11), reused 0 (delta 0)

-----> Heroku receiving push
-----> Node.js app detected
-----> Fetching Node.js binaries
-----> Vendoring node 0.4.7
-----> Installing dependencies with npm 1.0.94

   > [email protected] install /tmp/build_2nptzqalrmcu0/node_modules/hubot/node_modules/node-xmpp/node_modules/node-expat
   > node-waf configure build


   > [email protected] install /tmp/build_2nptzqalrmcu0/node_modules/hubot/node_modules/wobot/node_modules/node-xmpp/node_modules/node-expat
   > node-waf configure build

   Checking for program g++ or c++          : /usr/bin/g++ 
   Checking for program g++ or c++          : /usr/bin/g++ 
   npm ERR! error installing [email protected] Error: Unsupported
   npm ERR! error installing [email protected]     at checkEngine (/tmp/node-npm-P2sq/lib/install.js:493:14)
   npm ERR! error installing [email protected]     at Array.0 (/tmp/node-npm-P2sq/node_modules/slide/lib/bind-actor.js:15:8)
   npm ERR! error installing [email protected]     at LOOP (/tmp/node-npm-P2sq/node_modules/slide/lib/chain.js:15:13)
   npm ERR! error installing [email protected]     at chain (/tmp/node-npm-P2sq/node_modules/slide/lib/chain.js:20:4)
   npm ERR! error installing [email protected]     at installOne_ (/tmp/node-npm-P2sq/lib/install.js:471:3)
   npm ERR! error installing [email protected]     at installOne (/tmp/node-npm-P2sq/lib/install.js:411:3)
   npm ERR! error installing [email protected]     at /tmp/node-npm-P2sq/lib/install.js:347:9
   npm ERR! error installing [email protected]     at /tmp/node-npm-P2sq/node_modules/slide/lib/async-map.js:54:35
   npm ERR! error installing [email protected]     at Array.forEach (native)
   npm ERR! error installing [email protected]     at /tmp/node-npm-P2sq/node_modules/slide/lib/async-map.js:54:11
   npm ERR! error rolling back [email protected] Error: ENOTEMPTY, Directory not empty '/tmp/build_2nptzqalrmcu0/node_modules/hubot-scripts'
   npm ERR! Unsupported
   npm ERR! Not compatible with your version of node/npm: [email protected]
   npm ERR! Required: {"node":"~v0.4.11"}
   npm ERR! Actual:   {"npm":"1.0.94","node":"0.4.7"}
   npm ERR! 
   npm ERR! System Linux 2.6.32-316-ec2
   npm ERR! command "/tmp/node-node-rd66/bin/node" "/tmp/node-npm-P2sq/cli.js" "install"
   npm ERR! cwd /tmp/build_2nptzqalrmcu0
   npm ERR! node -v v0.4.7
   npm ERR! npm -v 1.0.94
   npm ERR! code ENOTSUP
   Checking for program cpp                 : /usr/bin/cpp 
   Checking for program ar                  : /usr/bin/ar 
   Checking for program ranlib              : /usr/bin/ranlib 
   Checking for g++                         : ok  
   Checking for node path                   : Checking for program cpp                 : /usr/bin/cpp 
   not found 
   Checking for node prefix                 : ok /tmp/node-node-rd66 
   Checking for program ar                  : /usr/bin/ar 
   Checking for program ranlib              : /usr/bin/ranlib 
   Checking for header expat.h              : Checking for g++                         : ok  

   Checking for node path                   : not found 
   Checking for node prefix                 : ok /tmp/node-node-rd66 
   Checking for header expat.h              : npm ERR! 
   npm ERR! Additional logging details can be found in:
   npm ERR!     /tmp/build_2nptzqalrmcu0/npm-debug.log
   npm not ok
   yes 
   yes 
   'configure' finished successfully (0.611s)
   'configure' finished successfully (0.608s)
   Waf: Entering directory `/tmp/build_2nptzqalrmcu0/node_modules/hubot/node_modules/node-xmpp/node_modules/node-expat/build'
   Waf: Entering directory `/tmp/build_2nptzqalrmcu0/node_modules/hubot/node_modules/wobot/node_modules/node-xmpp/node_modules/node-expat/build'
   [1/2] cxx: node-expat.cc -> build/default/node-expat_1.o
   [1/2] cxx: node-expat.cc -> build/default/node-expat_1.o
   [2/2] cxx_link: build/default/node-expat_1.o -> build/default/node-expat.node
   [2/2] cxx_link: build/default/node-expat_1.o -> build/default/node-expat.node
   Waf: Leaving directory `/tmp/build_2nptzqalrmcu0/node_modules/hubot/node_modules/node-xmpp/node_modules/node-expat/build'
   'build' finished successfully (0.329s)
   Waf: Leaving directory `/tmp/build_2nptzqalrmcu0/node_modules/hubot/node_modules/wobot/node_modules/node-xmpp/node_modules/node-expat/build'
   'build' finished successfully (0.338s)

! Failed to install dependencies with npm
! Heroku push rejected, failed to compile Node.js app

! [remote rejected] master -> master (pre-receive hook declined)

HipChat: Requests in private room are echoed to public room

When chatting in a private (IM) room all command responses are sent to a public room (perhaps the last public room the user was in?).

Replication is straightforward: Create an open room, when Hubot arrives request private chat (dbl-click on user), then request 'help' upon which you'll see Hubot's help response in the first room.

Version 1.1.3 fails on fresh install (Heroku)

When pushing the latest downloadable version (1.1.3), it fails with the following log: https://gist.github.com/1321937
You can see the exact repo I'm pushing to Heroku here: https://github.com/dannymcc/hubot

dannymcclelland@macbookpro ~/projects/hubot[master]$ git push heroku master
Counting objects: 26, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (20/20), done.
Writing objects: 100% (21/21), 7.79 KiB, done.
Total 21 (delta 4), reused 3 (delta 0)

-----> Heroku receiving push
-----> Node.js app detected
-----> Fetching Node.js binaries
-----> Vendoring node 0.4.7
-----> Installing dependencies with npm 1.0.94
       npm ERR! error installing hubot-scripts@1.1.3 Error: Unsupported
       npm ERR! error installing hubot-scripts@1.1.3     at checkEngine (/tmp/node-npm-id9I/lib/install.js:493:14)
       npm ERR! error installing hubot-scripts@1.1.3     at Array.0 (/tmp/node-npm-id9I/node_modules/slide/lib/bind-actor.js:15:8)
       npm ERR! error installing hubot-scripts@1.1.3     at LOOP (/tmp/node-npm-id9I/node_modules/slide/lib/chain.js:15:13)
       npm ERR! error installing hubot-scripts@1.1.3     at chain (/tmp/node-npm-id9I/node_modules/slide/lib/chain.js:20:4)
       npm ERR! error installing hubot-scripts@1.1.3     at installOne_ (/tmp/node-npm-id9I/lib/install.js:471:3)
       npm ERR! error installing hubot-scripts@1.1.3     at installOne (/tmp/node-npm-id9I/lib/install.js:411:3)
       npm ERR! error installing hubot-scripts@1.1.3     at /tmp/node-npm-id9I/lib/install.js:347:9
       npm ERR! error installing hubot-scripts@1.1.3     at /tmp/node-npm-id9I/node_modules/slide/lib/async-map.js:54:35
       npm ERR! error installing hubot-scripts@1.1.3     at Array.forEach (native)
       npm ERR! error installing hubot-scripts@1.1.3     at /tmp/node-npm-id9I/node_modules/slide/lib/async-map.js:54:11
       npm ERR! Unsupported
       npm ERR! Not compatible with your version of node/npm: wolfram@0.1.0
       npm ERR! Required: {"node":"~v0.4.11"}
       npm ERR! Actual:   {"npm":"1.0.94","node":"0.4.7"}

User name values are two words

The two-word user names that many people end up with, pulled in from Campfire, are not easy (maybe not even possible) to use with the user role commands.

hubot who is Jason Ford

It doesn't treat the two words as a single username.

I think the ideal solution would be to provide a set of nicknames that could all be used interchangeably as a alias for the User. They could even make new scripts more fun.

hubot who is jason
hubot who is n00b

The nicknames could be set via an optional config file or via commands to hubot. Perhaps this is cause for a new script, but once nicknames are assigned and it's easy to reference users, I'd love to extend the data set with things like birthdates and the be able to quiz hubot for people's age, contact details, etc.

Error running tests

I'm running make test in the project root to run the tests however I keep getting the following errors:


1.9.3-rc1 in hubot/ on master
› make test
coffee test/google_images_test.coffee
Error: Cannot find module '../scripts/google-images'
    at Function._resolveFilename (module.js:326:11)
    at Function._load (module.js:271:25)
    at require (module.js:355:19)
    at Object.<anonymous> (/home/tomb/Development/hubot/test/google_images_test.coffee:7:3)
    at Object.<anonymous> (/home/tomb/Development/hubot/test/google_images_test.coffee:49:4)
    at Module._compile (module.js:411:26)
    at Object.run (/home/tomb/Development/hubot/node_modules/coffee-script/lib/coffee-script.js:62:19)
    at /home/tomb/Development/hubot/node_modules/coffee-script/lib/command.js:120:29
    at /home/tomb/Development/hubot/node_modules/coffee-script/lib/command.js:90:26
    at [object Object].<anonymous> (fs.js:107:5)
coffee test/robot_test.coffee

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
AssertionError: 0 == 4
    at Server.<anonymous> (/home/tomb/Development/hubot/test/robot_test.coffee:10:12)
    at Server.emit (events.js:61:17)
    at Server._startWatcher (net.js:1090:8)
    at Array.<anonymous> (net.js:1123:10)
    at EventEmitter._tickCallback (node.js:126:26)
make: *** [test] Error 123

Am I completely forgetting something?

campfire name Procfile robot name mismatch

It seems that the name for the robot provided on the command line needs to match up with the name from campfire. It leads to confusion with robot.response scenarios.

irc bot doesn't reply

I can see the bot in the room. When I do:

hubot: image me pony

Hubot receives it ok, but it fails when it tries to send the message back to the room.

Ideas?

Errors on starting shell

I get these connection errors, when I want to start the hubot shell (1.0.6).

Do I need to configure the redis itself?

$ > npm install
[...]
[email protected] ./node_modules/hubot-scripts 
[email protected] ./node_modules/hubot 
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected] [email protected])
└── [email protected]

$ > bin/hubot
[...]
Loading hubot-scripts from /Users/lbt/Downloads/hubot/hubot-scripts.json
Error Error: Redis connection to localhost:6379 failed - ECONNREFUSED, Connection refused
/^Hubot:?\s*(.*) tweet/i
Error Error: Redis connection to localhost:6379 failed - ECONNREFUSED, Connection refused
Error Error: Redis connection to localhost:6379 failed - ECONNREFUSED, Connection refused

installing error

Hi, all.
I'm new to hubot.After I type the
npm install hubot-1.0.6.tar.gz command.
I got the following error
npm ERR! error installing [email protected] Error: socket hang up
npm ERR! error installing [email protected] at CleartextStream. (http.js:1290:45)
npm ERR! error installing [email protected] at CleartextStream.emit (events.js:61:17)
npm ERR! error installing [email protected] at Array.0 (tls.js:620:22)
npm ERR! error installing [email protected] at EventEmitter._tickCallback (node.js:126:26)
npm ERR! Error: socket hang up
npm ERR! at CleartextStream. (http.js:1290:45)
npm ERR! at CleartextStream.emit (events.js:61:17)
npm ERR! at Array.0 (tls.js:620:22)
npm ERR! at EventEmitter._tickCallback (node.js:126:26)
npm ERR! Report this entire log at:
npm ERR! http://github.com/isaacs/npm/issues
npm ERR! or email it to:
npm ERR! [email protected]
npm ERR!
npm ERR! System Linux 2.6.32-5-686
npm ERR! command "node" "/usr/local/bin/npm" "install" "hubot-1.0.6.tar.gz"
npm ERR! cwd /home/demon/Development
npm ERR! node -v v0.4.12
npm ERR! npm -v 1.0.103
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/demon/Development/npm-debug.log
npm not ok

I have no idea what goes wrong,any suggestions?

bin/hubot

I noticed this in the README:

bin/hubot -a stdio

Feels ugly and something I will 100% forget for a function I use every time I do something to Hubot. Any reason we can't just do bin/hubot default to stdio in dev mode?

IRC Robot sends PM responses to self

Hubot sends IRC private message responses to itself. I'm guessing the message and pm listeners are overlapping. The weird log is compounded by duplicate output relating to #71.

09:45 -!- Irssi: Starting query in irc with hubot
09:45 <dan> hubot: ping

From dan to hubot: hubot: ping
undefined: PONG
27 Oct 09:45:07 - SEND: PRIVMSG hubot :PONG
undefined: PONG
27 Oct 09:45:07 - SEND: PRIVMSG hubot :PONG
Got private message from dan: hubot: ping
27 Oct 09:45:07 - GOT MESSAGE from dan: hubot: ping
From hubot to hubot: PONG
Got private message from hubot: PONG
27 Oct 09:45:07 - GOT MESSAGE from hubot: PONG
From hubot to hubot: PONG
Got private message from hubot: PONG
27 Oct 09:45:07 - GOT MESSAGE from hubot: PONG

HipChat adapter fails to connect with nickname with non-ASCII chars

Using heroku config:add HUBOT_HIPCHAT_NAME='Totoro トトロ', while the name string should be unicode (both in heroku and in Node), hubot fails with the error:
2011-10-26T09:51:34+00:00 app[app.1]: Received error from HipChat: XMPP authentication failure undefined

Die command?

For some reason the bot seems to crash when given the command: "die".
Is this intended behavior?

Remove npm dependencies

npm is great and all, and I'mma let you finish, but people shouldn't be relying on it for deployed apps. Bundle everything so the initial Hubot experience is smooth.

Template repository is confusing

Right now when you share your hubot repo with other people, they get the template repository. This is fine, but it's really confusing right now without any information in the README. Where is hubot's source code? Where's the executable? How the eff does this thing work? How do I test scripts? Stuff like that.

We need to work on the README to make it a bit clearer that there's a core library somewhere else that does all the heavy lifting.

1.1.3 throws npm install error on Heroku

When doing a fresh push to Heroku using 1.1.3 you get the following;

npm ERR! error installing [email protected] Error: Unsupported
npm ERR! error installing [email protected] at checkEngine (/tmp/node-npm-IGKn/lib/install.js:493:14)
npm ERR! error installing [email protected] at Array.0 (/tmp/node-npm-IGKn/node_modules/slide/lib/bind-actor.js:15:8)
npm ERR! error installing [email protected] at LOOP (/tmp/node-npm-IGKn/node_modules/slide/lib/chain.js:15:13)
npm ERR! error installing [email protected] at chain (/tmp/node-npm-IGKn/node_modules/slide/lib/chain.js:20:4)
npm ERR! error installing [email protected] at installOne_ (/tmp/node-npm-IGKn/lib/install.js:471:3)
npm ERR! error installing [email protected] at installOne (/tmp/node-npm-IGKn/lib/install.js:411:3)
npm ERR! error installing [email protected] at /tmp/node-npm-IGKn/lib/install.js:347:9
npm ERR! error installing [email protected] at /tmp/node-npm-IGKn/node_modules/slide/lib/async-map.js:54:35
npm ERR! error installing [email protected] at Array.forEach (native)
npm ERR! error installing [email protected] at /tmp/node-npm-IGKn/node_modules/slide/lib/async-map.js:54:11
Checking for program g++ or c++ : /usr/bin/g++
npm ERR! error rolling back [email protected] Error: ENOTEMPTY, Directory not empty '/tmp/build_ozz8kzdu2ddj/node_modules/hubot-scripts'
npm ERR! Unsupported
npm ERR! Not compatible with your version of node/npm: [email protected]
npm ERR! Required: {"node":"~v0.4.11"}
npm ERR! Actual: {"npm":"1.0.94","node":"0.4.7"}
npm ERR!
npm ERR! System Linux 2.6.32-316-ec2
npm ERR! command "/tmp/node-node-meVU/bin/node" "/tmp/node-npm-IGKn/cli.js" "install"
npm ERR! cwd /tmp/build_ozz8kzdu2ddj
npm ERR! node -v v0.4.7
npm ERR! npm -v 1.0.94
npm ERR! code ENOTSUP

Improved syntax for translate script?

In reference to pull request #74 and my comments on 66fb4f9 about trying to find a more natural way of writing the command I'm wondering what people's thoughts would be about using the following regexp:

/(?:translate)(?: me)? ("(.[^"]*)"(?:(?: from) ([a-z]*))?(?:(?: (?:in)?to) ([a-z]*))?|(?:.[^"]*))/i

which would give the option of either

hubot translate me <phrase>

or

hubot translate me "<phrase>" from <source> into <target>

Where the from and into sections are optional. It basically comes down to whether people would prefer the current order where the comes last and no double quotation marks are required, or this which feels more natural to me? I've kept it as double quotation marks as singles may be part of the word or phrase to be translated.

I've also changed some of the non required groups such as (translate) to non matching groups to tidy up the results to pull in. I'll do this whichever way people decide the command should work. When people decide I'll submit a pull request with the updated code.

require.paths is removed

For node 0.6, which should be coming along any day now (okay, sometime in November), require.paths is removed. Testing with 0.5.9, I get the following error from bin/hubot:

$ bin/hubot
Error: require.paths is removed. Use node_modules folders, or the NODE_PATH environment variable instead.
    at Function.<anonymous> (module.js:376:11)
    at Object.<anonymous> (/home/gsf/git/hubot/bin/hubot:4:10)
    at Object.<anonymous> (/home/gsf/git/hubot/bin/hubot:104:4)
    at Module._compile (module.js:432:26)
    at Object.run (/usr/local/lib/node_modules/coffee-script/lib/coffee-script.js:57:25)
    at /usr/local/lib/node_modules/coffee-script/lib/command.js:147:29
    at /usr/local/lib/node_modules/coffee-script/lib/command.js:115:26
    at [object Object].<anonymous> (fs.js:108:5)
    at [object Object].emit (events.js:64:17)
    at afterRead (fs.js:1073:12)
$ node --version
v0.5.9

bin/hubot -c doesn't preserve file permissions

Trying a fresh install, 1.1.4:

$ bin/hubot -c testbot
Creating a hubot install at testbot
...

$ ls -al src/templates/bin/hubot
-rwxr-xr-x  1 bozo  staff  133 Oct 29 12:25 hubot


# No write permission
$ ls -al testbot/bin/hubot
-rw-r--r--  1 bozo  staff  133 Oct 29 15:34 testbot/bin/hubot

I googled and couldn't find open bugs on Fs.writeFileSync which hubot -c uses to copy. Is this expected behavior? I'm on node 0.4.12 and mac 10.6. I can add a README kludge if desired.

Hipchat adapter fails to hear incoming messages

Everything loads fine and Hubot enters the rooms correctly. However, Hubot doesn't seem to hear or respond using the hipchat adapter on heroku (even when private messaging). This is only error I can find, though I doubt its relevant

2011-10-26T23:58:57+00:00 app[app.1]: Cannot use StringPrep bindings. You may need to `npm install node-stringprep'

IRC should identify before joining rooms

Currently the IRC bot attempts to join the channels before responding to the identification request from NickServ as per the pull request: #54, however this will prevent the bot from joining rooms that require identification before joining (+r). This isn't an issue with freenode which will accept the nickpass as the server pass, but could be an issue on other networks which aren't as flexible.

We can fix this by only joining rooms after receiving acknowledgement from NickServ that we are identified.

Email Tests Trying to Connect Error

It seems the email_test tests are trying to connect to a live IMAP server when I run the tests.

› make
coffee test/google_images_test.coffee
/^helper:?\s*(image|img)( me)? (.*)/i
/^helper:?\s*animate me (.*)/i
/^helper:?\s*(?:mo?u)?sta(?:s|c)he?(?: me)? (.*)/i
coffee test/brain_test.coffee
coffee test/email_test.coffee
/^Hewbot:?\s*(calc|calculate|convert|math)( me)? (.*)/i
/^Hewbot:?\s*(?:(satellite|terrain|hybrid)[- ])?map me (.+)/i
/^Hewbot:?\s*who is ([\w .-]+)\?*$/i
/^Hewbot:?\s*([\w .-]+) is (["'\w: ]+)[.!]*$/i
/^Hewbot:?\s*([\w .-]+) is not (["'\w: ]+)[.!]*$/i
/^Hewbot:?\s*(the rules|the laws)/i
/^Hewbot:?\s*(translate)( me)?(( from) ([a-z]*))?(( (in)?to) ([a-z]*))? (.*)/i
/^Hewbot:?\s*(image|img)( me)? (.*)/i
/^Hewbot:?\s*animate me (.*)/i
/^Hewbot:?\s*(?:mo?u)?sta(?:s|c)he?(?: me)? (.*)/i
/^Hewbot:?\s*(youtube|yt)( me)? (.*)/i
/^Hewbot:?\s*PING$/i
/^Hewbot:?\s*ECHO (.*)$/i
/^Hewbot:?\s*TIME$/i
/^Hewbot:?\s*DIE$/i
/^Hewbot:?\s*show storage$/i
/^Hewbot:?\s*show users$/i
/^Hewbot:?\s*help$/i
/^Hewbot:?\s*(calc|calculate|convert|math)( me)? (.*)/i
/^Hewbot:?\s*(?:(satellite|terrain|hybrid)[- ])?map me (.+)/i
/^Hewbot:?\s*who is ([\w .-]+)\?*$/i
/^Hewbot:?\s*([\w .-]+) is (["'\w: ]+)[.!]*$/i
/^Hewbot:?\s*([\w .-]+) is not (["'\w: ]+)[.!]*$/i
/^Hewbot:?\s*(the rules|the laws)/i
/^Hewbot:?\s*(translate)( me)?(( from) ([a-z]*))?(( (in)?to) ([a-z]*))? (.*)/i
/^Hewbot:?\s*(image|img)( me)? (.*)/i
/^Hewbot:?\s*animate me (.*)/i
/^Hewbot:?\s*(?:mo?u)?sta(?:s|c)he?(?: me)? (.*)/i
/^Hewbot:?\s*(youtube|yt)( me)? (.*)/i
/^Hewbot:?\s*PING$/i
/^Hewbot:?\s*ECHO (.*)$/i
/^Hewbot:?\s*TIME$/i
/^Hewbot:?\s*DIE$/i
/^Hewbot:?\s*show storage$/i
/^Hewbot:?\s*show users$/i
/^Hewbot:?\s*help$/i

node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: Unable to connect. Reason: Error: EINVAL, Invalid argument
    at Socket.<anonymous> (/home/tomb/Development/hubot/node_modules/imap/imap.js:490:15)
    at Socket.emit (events.js:64:17)
    at Array.<anonymous> (net.js:830:27)
    at EventEmitter._tickCallback (node.js:126:26)
coffee test/robot_test.coffee
make: *** [test] Error 123

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.