|
35 | 35 | # Author:
|
36 | 36 | # skalnik
|
37 | 37 |
|
| 38 | + |
| 39 | +inspect = require('util').inspect |
| 40 | + |
38 | 41 | module.exports = (robot) ->
|
39 | 42 | unless robot.brain.data.memes?
|
40 | 43 | robot.brain.data.memes = [
|
@@ -196,19 +199,33 @@ memeGenerator = (msg, generatorID, imageID, text0, text1, callback) ->
|
196 | 199 | text0: text0,
|
197 | 200 | text1: text1
|
198 | 201 | .get() (err, res, body) ->
|
199 |
| - result = JSON.parse(body)['result'] |
200 |
| - if result? and result['instanceUrl']? and result['instanceImageUrl']? and result['instanceID']? |
201 |
| - instanceID = result['instanceID'] |
202 |
| - instanceURL = result['instanceUrl'] |
203 |
| - img = result['instanceImageUrl'] |
204 |
| - msg.http(instanceURL).get() (err, res, body) -> |
205 |
| - # Need to hit instanceURL so that image gets generated |
206 |
| - if preferredDimensions? |
207 |
| - callback "http://images.memegenerator.net/instances/#{preferredDimensions}/#{instanceID}.jpg" |
208 |
| - else |
209 |
| - callback "http://images.memegenerator.net/instances/#{instanceID}.jpg" |
210 |
| - else |
211 |
| - msg.reply "Sorry, I couldn't generate that image." |
| 202 | + if err |
| 203 | + msg.reply "Ugh, I got an exception trying to contact memegenerator.net:", inspect(err) |
| 204 | + return |
| 205 | + |
| 206 | + jsonBody = JSON.parse(body) |
| 207 | + success = jsonBody.success |
| 208 | + errorMessage = jsonBody.errorMessage |
| 209 | + result = jsonBody.result |
| 210 | + |
| 211 | + if not success |
| 212 | + msg.reply "Ugh, stupid request to memegenerator.net failed: \"#{errorMessage}.\" What does that even mean?" |
| 213 | + return |
| 214 | + |
| 215 | + instanceID = result?.instanceID |
| 216 | + instanceURL = result?.instanceUrl |
| 217 | + img = result?.instanceImageUrl |
| 218 | + |
| 219 | + unless instanceID and instanceURL and img |
| 220 | + msg.reply "Ugh, I got back weird results from memegenerator.net. Expected an image URL, but couldn't find it in the result. Here's what I got:", inspect(jsonBody) |
| 221 | + return |
| 222 | + |
| 223 | + msg.http(instanceURL).get() (err, res, body) -> |
| 224 | + # Need to hit instanceURL so that image gets generated |
| 225 | + if preferredDimensions? |
| 226 | + callback "http://images.memegenerator.net/instances/#{preferredDimensions}/#{instanceID}.jpg" |
| 227 | + else |
| 228 | + callback "http://images.memegenerator.net/instances/#{instanceID}.jpg" |
212 | 229 |
|
213 | 230 | khanify = (msg) ->
|
214 | 231 | msg = msg.toUpperCase()
|
|
0 commit comments