Permalink
Browse files

Merge pull request #614 from aaronott/master

Add a call for commandlinefu
  • Loading branch information...
2 parents 325386b + a61c764 commit e703a811456327a829617a85b088447c71d071f6 @technicalpickles technicalpickles committed Dec 10, 2012
Showing with 37 additions and 0 deletions.
  1. +37 −0 src/scripts/commandlinefu.coffee
@@ -0,0 +1,37 @@
+# Description:
+# Returns a command from commandlinefu.com
+#
+# Dependencies:
+# None
+#
+# Configuration:
+# None
+#
+# Commands:
+# hubot commandlinefu me - returns random command
+# hubot commandlinefu me <command> - random entry for the comand passed
+#
+# Author:
+# aaronott
+
+module.exports = (robot) ->
+ robot.respond /commandlinefu(?: me)? *(.*)?/i, (msg) ->
+ query = if msg.match[1]
+ "matching/#{msg.match[1]}/#{new Buffer(msg.match[1]).toString('base64')}/json"
+ else
+ "random/json"
+ command msg, "http://www.commandlinefu.com/commands/#{query}", (cmd) ->
+ msg.send cmd
+
+command = (msg, uri, cb) ->
+ msg.http(uri)
+ .get() (err, res, body) ->
+ # The random call passes back a 302 to redirect to a new page, if this
+ # happens we redirect through a recursive function call passing the new
+ # location to retrieve
+ if res.statusCode == 302
+ command msg, res.headers.location, cb
+ else
+ # choose a random command from the returned list
+ cc = msg.random JSON.parse(body)
+ cb("-- #{cc.summary}\n#{cc.command}")

0 comments on commit e703a81

Please sign in to comment.