From d8bf0a949c9badd2ecb31c92f555069149f4cfd1 Mon Sep 17 00:00:00 2001 From: schneefux Date: Fri, 27 Oct 2017 17:38:44 +0200 Subject: hotfix MadGlory returning broken JSON --- worker.js | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/worker.js b/worker.js index 9ae6b23..e58c426 100644 --- a/worker.js +++ b/worker.js @@ -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 -- cgit v1.3.1