From e220b4e5e13cda8a94d312733c532731a2c27f65 Mon Sep 17 00:00:00 2001 From: Matchu Date: Thu, 11 Mar 2021 02:35:13 -0800 Subject: [PATCH] Whoops, biology still uses old manifest URLs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Huh. Okay! 🤷‍♀️ --- src/server/neopets-assets.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/server/neopets-assets.js b/src/server/neopets-assets.js index 93564b6..6bac489 100644 --- a/src/server/neopets-assets.js +++ b/src/server/neopets-assets.js @@ -23,7 +23,7 @@ async function loadAssetManifest(swfUrl) { }; } -const SWF_URL_PATTERN = /^http:\/\/images\.neopets\.com\/cp\/(.+?)\/swf\/(.+?)_[a-z0-9]+\.swf$/; +const SWF_URL_PATTERN = /^http:\/\/images\.neopets\.com\/cp\/(bio|items)\/swf\/(.+?)_([a-z0-9]+)\.swf$/; function convertSwfUrlToManifestUrl(swfUrl) { const match = swfUrl.match(SWF_URL_PATTERN); @@ -33,8 +33,15 @@ function convertSwfUrlToManifestUrl(swfUrl) { const type = match[1]; const folders = match[2]; + const hash = match[3]; - return `http://images.neopets.com/cp/${type}/data/${folders}/manifest.json`; + if (type === "bio") { + return `http://images.neopets.com/cp/bio/data/${folders}_${hash}/manifest.json`; + } else if (type === "items") { + return `http://images.neopets.com/cp/items/data/${folders}/manifest.json`; + } else { + throw new Error(`Assertion error: type should be bio or item.`); + } } module.exports = { loadAssetManifest };