// ==UserScript==
// @name 清洗url
// @namespace http://tampermonkey.net/
// @version 0.9
// @description 移除url中冗余的查询参数
// @author 微笑
// @run-at document-idle
// @match https://mp.weixin.qq.com/*
// @match https://www.zhihu.com/*
// @match https://*.bilibili.com/*
// @match https://github.com/*
// @match https://*.aliyun.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=qq.com
// @grant none
// @license MIT
// ==/UserScript==
(function () {
'use strict';
const domainConfig = {
'mp.weixin.qq.com': {
removeKeys: ['chksm', 'source'],
removeHash: true,
},
'www.zhihu.com': {
removeKeys: ['utm_medium', 'utm_oi', 'utm_source'],
removeHash: false,
},
'search.bilibili.com': {
removeKeys: ['spm_id_from', 'from_source', 'search_source', 'vt'],
removeHash: false,
},
'space.bilibili.com': {
removeKeys: ['spm_id_from', 'from_source', 'search_source'],
removeHash: false,
},
'www.bilibili.com': {
removeKeys: [
'buvid',
'is_story_h5',
'mid',
'p',
'plat_id',
'share_from',
'share_medium',
'share_plat',
'share_session_id',
'share_source',
'share_tag',
'timestamp',
'unique_k',
'up_id',
'vd_source',
'spm_id_from',
],
},
'github.com': {
removeKeys: ['ref'],
},
};
const defaultRemoveKeys = ['spm'];
const { href, host } = location;
const newUrl = new URL(href);
const removeParams = (keys) => {
keys.forEach((key) => {
newUrl.searchParams.delete(key);
});
};
const configForCurrentDomain = domainConfig[host];
removeParams(configForCurrentDomain?.removeKeys || defaultRemoveKeys);
if (configForCurrentDomain) {
if (configForCurrentDomain.removeHash) {
newUrl.hash = '';
}
}
const newHref = newUrl.toString();
if (newHref !== href) {
setTimeout(() => {
history.replaceState(null, '', newHref);
}, 3000);
}
if (host === 'www.bilibili.com') {
const adDom = document.querySelector('.adblock-tips');
if (adDom) {
adDom.remove();
}
}
})();