Activate Normal CreationDate 587629326.39867496 Macros Actions ActionUID 4303 DisplayKind Window HonourFailureSettings IncludeStdErr MacroActionType ExecuteJavaScriptForAutomation Path Text const app = Application.currentApplication() app.includeStandardAdditions = true // list source: https://github.com/mpchadwick/tracking-query-params-registry/ const tracking_parameters = [ "fbclid", // Facebook "igshid", // Instagram "gclid", // google adwords/analytics "gclsrc", // google doubleclick "utm_name", // google analytics "utm_content", // google analytics "utm_term", // google analytics "utm_campaign", // google analytics "utm_medium", // google analytics "utm_source", // google analytics "utm_id", // google analytics "_ga", // google analytics "mc_cid", // Mailchimp "mc_eid", // Mailchimp "_bta_tid", // Bronto "_bta_c", // Bronto "trk_contact", // Listrak "trk_msg", // Listrak "trk_module", // Listrak "trk_sid", // Listrak "gdfms", // GoDataFeed "gdftrk", // GoDataFeed "gdffi", // GoDataFeed "_ke", // Klaviyo "redirect_log_mongo_id", // Springbot "redirect_mongo_id", // Springbot "sb_referer_host", // Springbot "mkwid", // Marin "pcrid", // Marin "ef_id", // Adobe Ad Cloud "s_kwcid", // Adobe Analytics "msclkid", // Microsoft Ads "dm_i", // dotdigital "epik", // Pinterest "pk_campaign", // Piwik "pk_kwd", // Piwik "pk_keyword", // Piwik "piwik_campaign", // Piwik "piwik_kwd", // Piwik "piwik_keyword", // Piwik "mtm_campaign", // Matomo "mtm_keyword", // Matomo "mtm_source", // Matomo "mtm_medium", // Matomo "mtm_content", // Matomo "mtm_cid", // Matomo "mtm_group", // Matomo "mtm_placement", // Matomo "matomo_campaign", // Matomo "matomo_keyword", // Matomo "matomo_source", // Matomo "matomo_medium", // Matomo "matomo_content", // Matomo "matomo_cid", // Matomo "matomo_group", // Matomo "matomo_placement", // Matomo "hsa_cam", // Hubspot "hsa_grp", // Hubspot "hsa_mt", // Hubspot "hsa_src", // Hubspot "hsa_ad", // Hubspot "hsa_acc", // Hubspot "hsa_net", // Hubspot "hsa_kw", // Hubspot "hsa_tgt", // Hubspot "hsa_ver" // Hubspot ] function detrack(url) { let parts = url.split(/\?/,2) if (parts.length==1) return url let query = parts[1] query = query.split('&') .filter( param => { let matches = tracking_parameters.filter( q => (new RegExp(`${q}=`)).test(param) ) return matches.length==0 }) .join('&') return query ? `${parts[0]}?${query}` : parts[0] } let clip = app.theClipboard() // only process text if (typeof clip != 'string') exit // process multiple lines clip = clip.split(/[\r\n]/).map( line => detrack(line) ).join("\n") // send back to clipboard app.setTheClipboardTo(clip) clip TimeOutAbortsMacro TrimResults TrimResultsNew UseText CreationDate 677382192.58271897 ModificationDate 677382791.52428806 Name Detracktor Triggers UID 7CC73345-BB13-4943-904D-A297545724CA Name Clipboards ToggleMacroUID D187D943-68DC-4545-8148-51ACF2A3BA43 UID F9227B40-FBCA-45AF-A5B5-88FE21ED26F1