-
Notifications
You must be signed in to change notification settings - Fork 0
/
xkcd.coffee
executable file
·51 lines (47 loc) · 1.44 KB
/
xkcd.coffee
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Description:
# Grab XKCD comic image urls
#
# Dependencies:
# None
#
# Configuration:
# None
#
# Commands:
# hubot xkcd [latest]- The latest XKCD comic
# hubot xkcd <num> - XKCD comic <num>
# hubot xkcd random - XKCD comic <num>
#
# Author:
# twe4ked
# Hemanth (fixed the max issue)
module.exports = (robot) ->
robot.respond /xkcd(\s+latest)?$/i, (msg) ->
msg.http("http://xkcd.com/info.0.json")
.get() (err, res, body) ->
if res.statusCode == 404
msg.send 'Comic not found.'
else
object = JSON.parse(body)
msg.send object.title, object.img, object.alt
robot.respond /xkcd\s+(\d+)/i, (msg) ->
num = "#{msg.match[1]}"
msg.http("http://xkcd.com/#{num}/info.0.json")
.get() (err, res, body) ->
if res.statusCode == 404
msg.send 'Comic #{num} not found.'
else
object = JSON.parse(body)
msg.send object.title, object.img, object.alt
robot.respond /xkcd\s+random/i, (msg) ->
msg.http("http://xkcd.com/info.0.json")
.get() (err,res,body) ->
if res.statusCode == 404
max = 0
else
max = JSON.parse(body).num
num = Math.floor((Math.random()*max)+1)
msg.http("http://xkcd.com/#{num}/info.0.json")
.get() (err, res, body) ->
object = JSON.parse(body)
msg.send object.title, object.img, object.alt