Automatic TaoBao URL Converter (Optimized)

TaoBao URL Converter optimized for faster redirection.

// ==UserScript==
// @name        Automatic TaoBao URL Converter (Optimized)
// @namespace   Violentmonkey Scripts
// @include     *://m.intl.taobao.com/*
// @grant       none
// @version     6.9.1
// @author      nerf
// @license     MIT
// @description TaoBao URL Converter optimized for faster redirection.
// ==/UserScript==

const ITEM_ID    = 'id=';
const ITEM       = 'item/';
const SHOP_ID    = 'shop_id=';
const TAOBAO_URL = 'https://item.taobao.com/item.htm?id=';
const TMALL_URL  = 'https://detail.tmall.com/item.htm?id=';
const SHOP_URL   = 'https://shop{}.taobao.com';
const M_INTL     = 'm.intl.taobao.com';
const H5         = 'h5.m.taobao.com';
const WORLD      = 'world.taobao.com';
const SHOP_M     = 'shop.m.taobao.com';
const SEARCH_QUERY = '/search.htm?search=y';

function convertURL(url) {
    if (url.includes('tmall.com')) {
        return TMALL_URL + getID(url, ITEM_ID);
    }
    if (url.includes(M_INTL) || url.includes(H5)) {
        return buildTaobaoURL(url, ITEM_ID, false);
    }
    if (url.includes(WORLD)) {
        return url.includes('item')
            ? buildTaobaoURL(url, ITEM, false)
            : cleanTaobaoStore(url.replace('world.taobao.com', 'taobao.com'));
    }
    if (url.includes(SHOP_M)) {
        return buildTaobaoURL(url, SHOP_ID, true);
    }
    return !url.includes('item')
        ? cleanTaobaoStore(url)
        : buildTaobaoURL(url, ITEM_ID, false);
}

function getID(url, match) {
    // Extracts consecutive digits following the given match string.
    const regex = new RegExp(match + "(\\d+)");
    const result = regex.exec(url);
    return result ? result[1] : '';
}

function buildTaobaoURL(url, match, isShop) {
    const id = getID(url, match);
    return isShop
        ? SHOP_URL.replace('{}', id)
        : TAOBAO_URL + id;
}

function cleanTaobaoStore(url) {
    const baseIndex = url.indexOf('taobao.com/');
    if (baseIndex === -1) return url;
    const end = baseIndex + 'taobao.com/'.length;
    return url.includes('search.htm')
        ? url.substring(0, end) + SEARCH_QUERY
        : url.substring(0, end);
}

// Execute the redirection as early as possible.
(function() {
    const currentURL = window.location.href;
    const desktopURL = convertURL(currentURL);
    if (desktopURL && desktopURL !== currentURL) {
        window.location.replace(desktopURL);
    }
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址