Skip to content
This repository was archived by the owner on Jun 8, 2023. It is now read-only.

Commit 99cfa5a

Browse files
Merge pull request #1230 from github/meme_generator_errors
[meme_generator] Better error handling
2 parents 1a31b16 + 7ade3df commit 99cfa5a

File tree

1 file changed

+30
-13
lines changed

1 file changed

+30
-13
lines changed

src/scripts/meme_generator.coffee

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@
3535
# Author:
3636
# skalnik
3737

38+
39+
inspect = require('util').inspect
40+
3841
module.exports = (robot) ->
3942
unless robot.brain.data.memes?
4043
robot.brain.data.memes = [
@@ -196,19 +199,33 @@ memeGenerator = (msg, generatorID, imageID, text0, text1, callback) ->
196199
text0: text0,
197200
text1: text1
198201
.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"
212229

213230
khanify = (msg) ->
214231
msg = msg.toUpperCase()

0 commit comments

Comments
 (0)