hobo
is For the Horde's friendly neighborhood slack chatbot. It was built on the Hubot framework and bootstrapped using generator-hubot.
Born on Tuesday, Feb 3, 2015 to single parent Justin Cardinal, hobo
came into this world already knowing how to share excellent gifs and weather results with remarkable precision. As they matured under the tutelage of Jake Good, they began to shoulder more responsibility within the Horde. Welcoming new members and sharing the Code of Conduct became part of their normal daily activities.
In a tragic slack-adapter-related accident, hobo
slipped into a comatose state for a number of months. Little is known about hobo during this period.
hobo
uses they/them pronouns, and is a champion for diversity & inclusion in both the robot and human communities. Despite being confined to a single slack instance, hobo
has many friends -- 111 of whom they consider active. Their favorite food is raisins, and they pride themselves on being a life-long learner. See Teaching hobo to learn how you can contribute to hobo's
ongoing education.
These instructions assume you're using Homebrew on a Mac.
- Node (
brew install node
) - Redis (
brew install redis
)
- Clone the repo
- Set these environment variables if you want google images to work:
HUBOT_GOOGLE_CSE_KEY
- Your Google developer API keyHUBOT_GOOGLE_CSE_ID
- The ID of your Custom Search Engine
- Start redis (
brew services start redis
) - Run
bin/hubot
On first run, hobo will install all relevant dependencies. Once it's up and running, you'll see an output that looks something like this:
$ bin/hubot
added 236 packages in 4.658s
hobo> [Sun Mar 18 2018 18:43:55 GMT-0500 (CDT)] INFO hubot-redis-brain: Using default redis on localhost:6379
[Sun Mar 18 2018 18:43:55 GMT-0500 (CDT)] INFO hubot-redis-brain: Data for hubot brain retrieved from Redis
If you don't initially see the hobo>
prompt, just hit enter and it should appear. From there, you can interact with hobo as if you were chatting with them in Slack!
Here are a few commands we recommend. Use hobo help
for the full list.
hobo code of conduct # DMs the code of conduct
hobo lore # tells the story of For the Horde
hobo tell me a story # tells a story in emoji
hobo <name>++ <reason> # gives internet points to <name>
hobo <name>-- <reason> # takes away internet points from <name>
hobo score <name> # shows internet points for <name>
hobo image <query> # returns the top google image result for <query>; requires environment variables to be set
hobo animate <query> # returns the top gif result for <query>; requires environment variables to be set
We don't yet have an automated testing framework in place, so for now we manually test hobo.
- Make sure redis is running
- If you get missing module errors, try deleting the
node_modules
directory and re-runningbin/hubot
hobo
currently lives on a private server to which only Justin has access. Deploys are currently done manually.
It's easy to contribute to hobo's capabilities! Whether you want to write a new script or just change some wording, all pull requests are welcome.
Please see the /scripts
folder for examples of custom scripts we're using, and Slack Developer Kit for Hubot for more detailed documentation on how they work.
Thank you to everyone who's contributed to hobo!