From 09706160a9e1036534316362b18ae06adae48fb7 Mon Sep 17 00:00:00 2001 From: wukko Date: Mon, 10 Feb 2025 00:33:23 +0600 Subject: [PATCH] api/snapchat: allow profile params to be missing fixes broken story extraction --- api/src/processing/services/snapchat.js | 6 +++--- api/src/util/tests/snapchat.json | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/api/src/processing/services/snapchat.js b/api/src/processing/services/snapchat.js index 10359a03..f5d66136 100644 --- a/api/src/processing/services/snapchat.js +++ b/api/src/processing/services/snapchat.js @@ -40,9 +40,9 @@ async function getStory(username, storyId, alwaysProxy) { const nextDataString = html.match(NEXT_DATA_REGEX)?.[1]; if (nextDataString) { const data = JSON.parse(nextDataString); - const storyIdParam = data.query.profileParams[1]; + const storyIdParam = data?.query?.profileParams?.[1]; - if (storyIdParam && data.props.pageProps.story) { + if (storyIdParam && data?.props?.pageProps?.story) { const story = data.props.pageProps.story.snapList.find((snap) => snap.snapId.value === storyIdParam); if (story) { if (story.snapMediaType === 0) { @@ -61,7 +61,7 @@ async function getStory(username, storyId, alwaysProxy) { } } - const defaultStory = data.props.pageProps.curatedHighlights[0]; + const defaultStory = data?.props?.pageProps?.curatedHighlights?.[0]; if (defaultStory) { return { picker: defaultStory.snapList.map(snap => { diff --git a/api/src/util/tests/snapchat.json b/api/src/util/tests/snapchat.json index 36acfbc6..bf0c9da3 100644 --- a/api/src/util/tests/snapchat.json +++ b/api/src/util/tests/snapchat.json @@ -20,7 +20,6 @@ { "name": "story", "url": "https://www.snapchat.com/add/bazerkmakane", - "canFail": true, "params": {}, "expected": { "code": 200,