summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-10-27 17:38:44 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-10-27 17:38:44 +0200
commitd8bf0a949c9badd2ecb31c92f555069149f4cfd1 (patch)
treea434a6e4b2a5f65c1f74857b447a595e3b913a7c
parentc74415ae47b9788b7159a68965913b89524a4f57 (diff)
downloadtelesucker-release/2.19.0.tar.gz
telesucker-release/2.19.0.zip
hotfix MadGlory returning broken JSONrelease/2.19.0
-rw-r--r--worker.js25
1 files 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