processing/url: clean up cleanURL query exceptions

This commit is contained in:
wukko 2024-05-29 12:57:26 +06:00
parent 64b5990d81
commit 490bbf82ec
No known key found for this signature in database
GPG key ID: 3E30B3F26C7B4AA2

View file

@ -78,19 +78,30 @@ function aliasURL(url) {
function cleanURL(url) { function cleanURL(url) {
assert(url instanceof URL); assert(url instanceof URL);
const host = psl.parse(url.hostname).sld; const host = psl.parse(url.hostname).sld;
let stripQuery = true; let stripQuery = true;
if (host === 'pinterest') { const limitQuery = (param) => {
url.hostname = 'pinterest.com' url.search = `?${param}=` + encodeURIComponent(url.searchParams.get(param));
} else if (host === 'vk' && url.pathname.includes('/clip')) {
if (url.searchParams.get('z'))
url.search = '?z=' + encodeURIComponent(url.searchParams.get('z'));
stripQuery = false;
} else if (host === 'youtube' && url.searchParams.get('v')) {
url.search = '?v=' + encodeURIComponent(url.searchParams.get('v'));
stripQuery = false; stripQuery = false;
} }
switch (host) {
case "pinterest":
url.hostname = 'pinterest.com';
break;
case "vk":
if (url.pathname.includes('/clip') && url.searchParams.get('z')) {
limitQuery('z')
}
break;
case "youtube":
if (url.searchParams.get('v')) {
limitQuery('v')
}
break;
}
if (stripQuery) { if (stripQuery) {
url.search = '' url.search = ''
} }