From 420f2c957e65cf5a9c797e1ca109d48ad10fc8f8 Mon Sep 17 00:00:00 2001 From: Thomas Zarebczan Date: Thu, 13 May 2021 15:21:21 -0400 Subject: [PATCH] Encode additional special characters --- ui/util/url.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ui/util/url.js b/ui/util/url.js index 9a815e451..a8a511f12 100644 --- a/ui/util/url.js +++ b/ui/util/url.js @@ -2,10 +2,10 @@ const PAGES = require('../constants/pages'); const { parseURI, buildURI } = require('lbry-redux'); -function encodeWithApostropheEncode(string) { - // encodeURIComponent doesn't encode `'` - // in most cases this is fine, but wordpress doesn't like it - return encodeURIComponent(string).replace(/'/g, '%27'); +function encodeWithSpecialCharEncode(string) { + // encodeURIComponent doesn't encode `'` and others + // which other services may not like + return encodeURIComponent(string).replace(/'/g, '%27').replace(/\(/g, '%28').replace(/\)/g, '%29'); } export const formatLbryUrlForWeb = (uri) => { @@ -94,7 +94,7 @@ export const generateLbryWebUrl = (lbryUrl) => { export const generateEncodedLbryURL = (domain, lbryWebUrl, includeStartTime, startTime) => { const queryParam = includeStartTime ? `?t=${startTime}` : ''; - const encodedPart = encodeWithApostropheEncode(`${lbryWebUrl}${queryParam}`); + const encodedPart = encodeWithSpecialCharEncode(`${lbryWebUrl}${queryParam}`); return `${domain}/${encodedPart}`; }; @@ -113,9 +113,9 @@ export const generateShareUrl = (domain, lbryUrl, referralCode, rewardsApproved, const { streamName, streamClaimId, channelName, channelClaimId } = parseURI(lbryUrl); let uriParts = { - ...(streamName ? { streamName: encodeWithApostropheEncode(streamName) } : {}), + ...(streamName ? { streamName: encodeWithSpecialCharEncode(streamName) } : {}), ...(streamClaimId ? { streamClaimId } : {}), - ...(channelName ? { channelName: encodeWithApostropheEncode(channelName) } : {}), + ...(channelName ? { channelName: encodeWithSpecialCharEncode(channelName) } : {}), ...(channelClaimId ? { channelClaimId } : {}), };