Shopee URL Cleaner

Clean Shopee URL

// ==UserScript==
// @name         Shopee URL Cleaner
// @version      1.0
// @description  Clean Shopee URL
// @icon         https://www.google.com/s2/favicons?domain=shopee.tw
// @icon64       https://www.google.com/s2/favicons?domain=shopee.tw&sz=64
// @source       https://github.com/YuerLee/userscript/raw/main/scripts/shopee-url-cleaner.user.js
// @author       Yuer Lee
// @license      MIT
// @match        https://shopee.tw/*
// @run-at       document-end
// @grant        none
// @namespace https://greasyfork.org/users/1407758
// ==/UserScript==

function cleanUrl() {
  const match = window.location.href.match(/-i\.(\d+)\.(\d+)/);

  if (!match) {
    return;
  }

  const simplyPath = `product/${match[1]}/${match[2]}`;

  window.history.replaceState(null, '', simplyPath);
}

function throttle(fn, delay = 500) {
  let timer = null;

  return (...args) => {
    if (timer) {
      return;
    }

    fn(...args);

    timer = setTimeout(() => {
      timer = null;
    }, delay);
  };
}

new MutationObserver(throttle(cleanUrl)).observe(document, {
  subtree: true,
  childList: true,
});