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) {
assert(url instanceof URL);
const host = psl.parse(url.hostname).sld;
let stripQuery = true;
if (host === 'pinterest') {
url.hostname = 'pinterest.com'
} 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'));
const limitQuery = (param) => {
url.search = `?${param}=` + encodeURIComponent(url.searchParams.get(param));
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) {
url.search = ''
}