hubot-scripts
Version:
Allows you to opt in to a variety of scripts
35 lines (30 loc) • 829 B
text/coffeescript
# Description:
# Dilbert
#
# Dependencies:
# "htmlparser": "1.7.6"
#
# Configuration:
# None
#
# Commands:
# hubot show me dilbert - gets the daily dilbert
#
# Author:
# evilmarty
htmlparser = require "htmlparser"
module.exports = (robot) ->
robot.respond /((show|fetch)( me )?)?dilbert/i, (msg) ->
dilbertRss msg, (url) ->
msg.send url
dilbertRegexp = /img src="(http:\/\/dilbert.com\/[^"]+)"/i
dilbertRss = (msg, cb) ->
msg.http('http://feed.dilbert.com/dilbert/daily_strip?format=xml')
.get() (err, resp, body) ->
handler = new htmlparser.RssHandler (error, dom) ->
return if error || !dom
item = dom.items[0]
match = item.description.match(dilbertRegexp)
cb match[1] if match
parser = new htmlparser.Parser(handler)
parser.parseComplete(body)