commodore-github-bot
Version:
A hubot script to list and recurrently remind you about open pull requests and pull request assignments.
65 lines (53 loc) • 1.65 kB
text/coffeescript
_ = require 'underscore'
moment = require 'moment'
cronJob = require("cron").CronJob
class Reminders
constructor: (, , ) ->
.brain.once 'loaded', =>
# Run a cron job that runs every minute, Monday-Friday
new cronJob('0 * * * * 1-5', .bind(@), null, true)
_get: ->
.brain.get() or []
_save: (reminders) ->
.brain.set , reminders
_check: ->
reminders =
_.chain(reminders).filter().pluck('room').each
_shouldFire: (reminder) ->
now = new Date
currentHours = now.getHours()
currentMinutes = now.getMinutes()
reminderHours = reminder.time.split(':')[0]
reminderMinutes = reminder.time.split(':')[1]
try
reminderHours = parseInt reminderHours, 10
reminderMinutes = parseInt reminderMinutes, 10
catch _error
return false
if reminderHours is currentHours and reminderMinutes is currentMinutes
return true
return false
getAll: ->
getForRoom: (room) ->
_.where , room: room
save: (room, time) ->
reminders =
newReminder =
time: time
room: room
reminders.push newReminder
reminders
clearAllForRoom: (room) ->
reminders =
remindersToKeep = _.reject(reminders, room: room)
remindersToKeep
reminders.length - (remindersToKeep.length)
clearForRoomAtTime: (room, time) ->
reminders =
remindersToKeep = _.reject reminders,
room: room
time: time
remindersToKeep
reminders.length - (remindersToKeep.length)
module.exports = Reminders