diff --git a/src/modules/api.js b/src/modules/api.js index 92fa5374..62e9a7c6 100644 --- a/src/modules/api.js +++ b/src/modules/api.js @@ -10,7 +10,7 @@ import hostOverrides from "./processing/hostOverrides.js"; export async function getJSON(originalURL, lang, obj) { try { - let patternMatch, url = decodeURIComponent(originalURL), + let patternMatch, url = encodeURI(decodeURIComponent(originalURL)), hostname = new URL(url).hostname.split('.'), host = hostname[hostname.length - 2]; diff --git a/src/modules/processing/match.js b/src/modules/processing/match.js index 9857cdb1..feb91e34 100644 --- a/src/modules/processing/match.js +++ b/src/modules/processing/match.js @@ -67,8 +67,7 @@ export default async function(host, patternMatch, url, lang, obj) { case "reddit": r = await reddit({ sub: patternMatch["sub"], - id: patternMatch["id"], - title: patternMatch["title"] + id: patternMatch["id"] }); break; case "douyin": diff --git a/src/modules/processing/services/reddit.js b/src/modules/processing/services/reddit.js index 43f01817..8964b24f 100644 --- a/src/modules/processing/services/reddit.js +++ b/src/modules/processing/services/reddit.js @@ -48,7 +48,7 @@ async function getAccessToken() { } export default async function(obj) { - const url = new URL(`https://www.reddit.com/r/${obj.sub}/comments/${obj.id}/${obj.title}.json`); + const url = new URL(`https://www.reddit.com/r/${obj.sub}/comments/${obj.id}.json`); const accessToken = await getAccessToken(); if (accessToken) url.hostname = 'oauth.reddit.com'; diff --git a/src/modules/processing/servicesPatternTesters.js b/src/modules/processing/servicesPatternTesters.js index b4c75a8c..9720a523 100644 --- a/src/modules/processing/servicesPatternTesters.js +++ b/src/modules/processing/servicesPatternTesters.js @@ -8,8 +8,7 @@ export const testers = { "youtube": (patternMatch) => (patternMatch["id"] && patternMatch["id"].length <= 11), - "reddit": (patternMatch) => (patternMatch["sub"] && patternMatch["id"] && patternMatch["title"] - && patternMatch["sub"].length <= 22 && patternMatch["id"].length <= 10 && patternMatch["title"].length <= 96), + "reddit": (patternMatch) => (patternMatch.sub?.length <= 22 && patternMatch.id?.length <= 10), "tiktok": (patternMatch) => ((patternMatch["user"] && patternMatch["postId"] && patternMatch["postId"].length <= 21) || (patternMatch["id"] && patternMatch["id"].length <= 13)), diff --git a/src/modules/sub/utils.js b/src/modules/sub/utils.js index 41ee07db..cfb56aa8 100644 --- a/src/modules/sub/utils.js +++ b/src/modules/sub/utils.js @@ -9,7 +9,7 @@ const apiVar = { }, booleanOnly: ["isAudioOnly", "isNoTTWatermark", "isTTFullAudio", "isAudioMuted", "dubLang", "vimeoDash", "disableMetadata"] } -const forbiddenChars = ['}', '{', '(', ')', '\\', '%', '>', '<', '^', '*', '!', '~', ';', ':', ',', '`', '[', ']', '#', '$', '"', "'", "@", '==']; +const forbiddenChars = ['}', '{', '(', ')', '\\', '>', '<', '^', '*', '!', '~', ';', ':', ',', '`', '[', ']', '#', '$', '"', "'", "@", '==']; const forbiddenCharsString = ['}', '{', '%', '>', '<', '^', ';', '`', '$', '"', "@", '=']; export function apiJSON(type, obj) {