/** * Name: Announce * Description: Announce things every now and again */ var _ = require('underscore')._; var announce = function(dbot) { this.announces = dbot.config.modules.announce.announces; this.lineCount = 0; this.lastAnnounce = {}; _.each(dbot.config.servers, function(v, k) { this.lastAnnounce[k] = {}; _.each(this.announces[k], function(announce, channel) { this.lastAnnounce[k][channel] = announce.distance; }, this) }, this); this.listener = function(event) { if(_.has(this.lastAnnounce[event.server], event.channel)) { this.lastAnnounce[event.server][event.channel]--; if(this.lastAnnounce[event.server][event.channel] == 0) { var announce = this.config.announces[event.server][event.channel]; this.lastAnnounce[event.server][event.channel] = announce.distance; dbot.api.quotes.getQuote(announce.category, function(quote) { if(quote) { dbot.say(event.server, event.channel, quote); } }); } } }.bind(this); this.on = 'PRIVMSG'; }; exports.fetch = function(dbot) { return new announce(dbot); };