diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2017-10-27 17:38:44 +0200 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2017-10-27 17:38:44 +0200 |
| commit | d8bf0a949c9badd2ecb31c92f555069149f4cfd1 (patch) | |
| tree | a434a6e4b2a5f65c1f74857b447a595e3b913a7c | |
| parent | c74415ae47b9788b7159a68965913b89524a4f57 (diff) | |
| download | telesucker-d8bf0a949c9badd2ecb31c92f555069149f4cfd1.tar.gz telesucker-d8bf0a949c9badd2ecb31c92f555069149f4cfd1.zip | |
hotfix MadGlory returning broken JSONrelease/2.19.0
| -rw-r--r-- | worker.js | 25 |
1 files changed, 21 insertions, 4 deletions
@@ -143,12 +143,29 @@ amqp.connect(RABBITMQ_URI).then(async (rabbit) => { }; logger.info("AWS request", { uri: url, }); response = await request(url, opts); + if (typeof response.body === "string") { + if (!response.body.startsWith("[")) { + // invalid JSON + // https://github.com/gamelocker/vainglory-assets/issues/325 + let hotfix = response.body.replace(/\{ "time":/g, ', { "time":'); + // `},` -> `} \n ]` + hotfix = "[" + hotfix.substring(2, hotfix.length) + "]"; + response.body = JSON.parse(hotfix); + } else { + logger.warn("invalid response", { url }); + throw { response }; + } + } return response.body; } catch (err) { - logger.warn("AWS error", { - uri: url, - error: err.response.body - }); + if (err.response != undefined) { + logger.warn("AWS error", { + uri: url, + error: err.response.body + }); + } else { + logger.error(err); + } throw err; } finally { if (response != undefined) // else non-requests error |
