UNPKG

hubot-scripts

Version:

Allows you to opt in to a variety of scripts

46 lines (37 loc) 1.3 kB
# Description: # Look up npm package versions # # Dependencies: # "htmlparser": "1.7.6" # "soupselect": "0.2.0" # # Configuration: # None # # Commands: # hubot npm version <package name> - returns npm package version if it exists # # Author: # redhotvengeance HtmlParser = require "htmlparser" Select = require("soupselect").select module.exports = (robot) -> robot.respond /npm version (.*)/i, (msg) -> packageName = escape(msg.match[1]) msg.http("https://npmjs.org/package/#{packageName}").get() (err, res, body) -> if err msg.send "I tried talking to npmjs.org, but it seems to be ignoring me." else if res.statusCode is 200 handler = new HtmlParser.DefaultHandler() parser = new HtmlParser.Parser handler parser.parseComplete body metaData = Select(handler.dom, ".metadata") versionString = metaData[0].children[3].children[3].children[1].children[0].data.toString() versionArray = versionString.match(/([0-9.])/ig) version = '' for digit in versionArray then do (digit) => version += digit msg.send "It looks like #{packageName} is at version #{version}." else msg.send "It looks like #{packageName} doesn't exist."