From 569d4d9d66928c25bf7919725550def6aecf33f0 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 9 Dec 2024 16:43:00 +0000 Subject: [PATCH] Support for snapchat spotlight and posts --- .../NavItems/Assistant/AssistantRuleBook.jsx | 24 ++++++++++++++++--- src/redux/sagas/assistantSaga.jsx | 9 +++++++ 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/components/NavItems/Assistant/AssistantRuleBook.jsx b/src/components/NavItems/Assistant/AssistantRuleBook.jsx index 9087e8b0a..e77523209 100644 --- a/src/components/NavItems/Assistant/AssistantRuleBook.jsx +++ b/src/components/NavItems/Assistant/AssistantRuleBook.jsx @@ -27,6 +27,7 @@ export const CONTENT_TYPE = { export const KNOWN_LINKS = { TWITTER: "twitter", INSTAGRAM: "instagram", + SNAPCHAT: "snapchat", FACEBOOK: "facebook", TIKTOK: "tiktok", TELEGRAM: "telegram", @@ -61,6 +62,13 @@ export const KNOWN_LINK_PATTERNS = [ key: KNOWN_LINKS.TIKTOK, patterns: ["((https?:\\/{2})?(www.)?tiktok.com\\/.*\\/video/\\d*)"], }, + { + key: KNOWN_LINKS.SNAPCHAT, + patterns: [ + "((https?:\\/{2})?(www.)?snapchat.com\\/(spotlight|lens)/\\w*)", + "((https?:\\/{2})?(www.)?snapchat.com\\/p\\/[\\w\\-]+\\/\\w*)", + ], + }, { key: KNOWN_LINKS.INSTAGRAM, patterns: [ @@ -123,7 +131,11 @@ export const ASSISTANT_ACTIONS = [ { title: "navbar_analysis_video", icon: , - linksAccepted: [KNOWN_LINKS.YOUTUBE, KNOWN_LINKS.FACEBOOK], + linksAccepted: [ + KNOWN_LINKS.YOUTUBE, + KNOWN_LINKS.FACEBOOK, + KNOWN_LINKS.SNAPCHAT, + ], cTypes: [CONTENT_TYPE.VIDEO], exceptions: [], useInputUrl: true, @@ -134,7 +146,11 @@ export const ASSISTANT_ACTIONS = [ { title: "navbar_analysis_image", icon: , - linksAccepted: [KNOWN_LINKS.FACEBOOK, KNOWN_LINKS.TWITTER], + linksAccepted: [ + KNOWN_LINKS.FACEBOOK, + KNOWN_LINKS.TWITTER, + KNOWN_LINKS.SNAPCHAT, + ], cTypes: [CONTENT_TYPE.IMAGE], exceptions: [], useInputUrl: true, @@ -151,6 +167,7 @@ export const ASSISTANT_ACTIONS = [ KNOWN_LINKS.YOUTUBE, KNOWN_LINKS.YOUTUBESHORTS, KNOWN_LINKS.LIVELEAK, + KNOWN_LINKS.SNAPCHAT, KNOWN_LINKS.OWN, ], cTypes: [CONTENT_TYPE.VIDEO], @@ -188,7 +205,7 @@ export const ASSISTANT_ACTIONS = [ processLinksAccepted: [KNOWN_LINKS.MISC, KNOWN_LINKS.OWN], cTypes: [CONTENT_TYPE.IMAGE, CONTENT_TYPE.VIDEO], exceptions: [ - /(pbs.twimg.com)|(youtu.be|youtube)|(instagram)|(fbcdn.net)|(vimeo)|(tiktok.com)/, + /(pbs.twimg.com)|(youtu.be|youtube)|(instagram)|(fbcdn.net)|(vimeo)|(snapchat)|(tiktok.com)/, ], useInputUrl: false, text: "metadata_text", @@ -272,6 +289,7 @@ export const ASSISTANT_ACTIONS = [ KNOWN_LINKS.FACEBOOK, KNOWN_LINKS.TWITTER, KNOWN_LINKS.MASTODON, + KNOWN_LINKS.SNAPCHAT, ], cTypes: [CONTENT_TYPE.VIDEO], exceptions: [], diff --git a/src/redux/sagas/assistantSaga.jsx b/src/redux/sagas/assistantSaga.jsx index 0f274b233..f1a423ba5 100644 --- a/src/redux/sagas/assistantSaga.jsx +++ b/src/redux/sagas/assistantSaga.jsx @@ -709,6 +709,7 @@ const decideWhetherToScrape = (urlType, contentType) => { case KNOWN_LINKS.INSTAGRAM: case KNOWN_LINKS.FACEBOOK: case KNOWN_LINKS.TWITTER: + case KNOWN_LINKS.SNAPCHAT: case KNOWN_LINKS.TELEGRAM: case KNOWN_LINKS.MASTODON: case KNOWN_LINKS.VK: @@ -807,6 +808,14 @@ const filterAssistantResults = ( videoList = scrapeResult.videos; } break; + case KNOWN_LINKS.SNAPCHAT: + if (scrapeResult.images.length > 0) { + imageList = scrapeResult.images; + } + if (scrapeResult.videos.length > 0) { + videoList = scrapeResult.videos; + } + break; case KNOWN_LINKS.MASTODON: case KNOWN_LINKS.TELEGRAM: case KNOWN_LINKS.VK: