Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get Hubot to talk at a certain time?

I'm thinking about making a Hubot clock-based notifier (think "It's 5, time to go home!" but less annoying and for a different reason). What's the best way to go about doing something like this in a Hubot script?

[edit] Here's an example using 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

dependencies:

"cron": "0.3.3",
"time": "0.8.2"
like image 842
NickAldwin Avatar asked Jun 25 '12 20:06

NickAldwin


2 Answers

I would use node-cron. It's pretty flexible and fits your use case well.

https://github.com/ncb000gt/node-cron

like image 179
Swift Avatar answered Nov 19 '22 21:11

Swift


I just stumbled upon hubot-cron.

This lets you schedule messages in hubot, but unfortunately doesn't persist jobs through restarts.

like image 32
wrtsprt Avatar answered Nov 19 '22 22:11

wrtsprt