Skip to content

Instantly share code, notes, and snippets.

@zhimiaoli
Last active December 23, 2021 16:25
Show Gist options
  • Save zhimiaoli/2026c01f79c994b2c5d25ce580c05265 to your computer and use it in GitHub Desktop.
Save zhimiaoli/2026c01f79c994b2c5d25ce580c05265 to your computer and use it in GitHub Desktop.
Quantumult X 规则
#adguardpremium
^https:\/\/mobile-api\.adguard\.com\/api\/1\.0\/ios_validate_receipt$ url 302 https://raw.githubusercontent.com/langkhach270389/Scripting/master/Adguard.rsp
hostname=mobile-api.adguard.com
# Apple
DOMAIN-SUFFIX,aaplimg.com
DOMAIN-SUFFIX,apple.co
DOMAIN-SUFFIX,apple.com
DOMAIN-SUFFIX,apple.com.cn
DOMAIN-SUFFIX,apple-cloudkit.com
DOMAIN-SUFFIX,appstore.com
DOMAIN-SUFFIX,cdn-apple.com
DOMAIN-SUFFIX,icloud.com
DOMAIN-SUFFIX,icloud.com.cn
DOMAIN-SUFFIX,icloud-content.com
DOMAIN-SUFFIX,me.com
DOMAIN-SUFFIX,mzstatic.com
DOMAIN-KEYWORD,apple.com.akadns.net
DOMAIN-KEYWORD,icloud.com.akadns.net
IP-CIDR,17.0.0.0/8
IP-CIDR,63.92.224.0/19
IP-CIDR,65.199.22.0/23
IP-CIDR,139.178.128.0/18
IP-CIDR,144.178.0.0/19
IP-CIDR,192.35.50.0/24
IP-CIDR,198.183.17.0/24
IP-CIDR,205.180.175.0/24
# App Store
# Store content such as apps, books, and music
DOMAIN-SUFFIX,apps.apple.com
DOMAIN-SUFFIX,itunes.apple.com
DOMAIN-SUFFIX,itunes-apple.com.akadns.net
DOMAIN-SUFFIX,mzstatic.com
DOMAIN,ppq.apple.com
# > App Store Connect
DOMAIN,appstoreconnect.apple.com
DOMAIN,iosapps-ssl.itunes.apple.com
DOMAIN,itcmobile.itunes.apple.com
var obj = JSON.parse($response.body);
var bundle_id = obj.receipt["bundle_id"];
if (bundle_id == "net.shinyfrog.bear") {
obj = {
status: 0,
environment: "Production",
receipt: {
receipt_type: "Production",
adam_id: 1016366447,
app_item_id: 1016366447,
bundle_id: "net.shinyfrog.bear-iOS",
application_version: "7133",
download_id: 92018757521008,
version_external_identifier: 831147846,
receipt_creation_date: "2019-08-10 23:17:58 Etc/GMT",
receipt_creation_date_ms: "1565479078000",
receipt_creation_date_pst: "2019-08-10 16:17:58 America/Los_Angeles",
request_date: "2019-08-10 23:18:04 Etc/GMT",
request_date_ms: "1565479084140",
request_date_pst: "2019-08-10 16:18:04 America/Los_Angeles",
original_purchase_date: "2016-11-05 07:20:24 Etc/GMT",
original_purchase_date_ms: "1478330424000",
original_purchase_date_pst: "2016-11-05 00:20:24 America/Los_Angeles",
original_application_version: "3562",
in_app: [
{
quantity: "1",
product_id: "net.shinyfrog.bear_iOS.pro_yearly_subscription_bis",
transaction_id: "520000469131745",
original_transaction_id: "520000469131745",
purchase_date: "2019-08-10 23:17:57 Etc/GMT",
purchase_date_ms: "1565479077000",
purchase_date_pst: "2019-08-10 16:17:57 America/Los_Angeles",
original_purchase_date: "2019-08-10 23:17:57 Etc/GMT",
original_purchase_date_ms: "1565479077000",
original_purchase_date_pst: "2019-08-10 16:17:57 America/Los_Angeles",
expires_date: "2099-09-10 23:17:57 Etc/GMT",
expires_date_ms: "4092736677000",
expires_date_pst: "2099-09-10 16:17:57 America/Los_Angeles",
web_order_line_item_id: "520000150747696",
is_trial_period: "true",
is_in_intro_offer_period: "false"
}
]
},
latest_receipt_info: [
{
quantity: "1",
product_id: "net.shinyfrog.bear_iOS.pro_yearly_subscription_bis",
transaction_id: "520000469131745",
original_transaction_id: "520000469131745",
purchase_date: "2019-08-10 23:17:57 Etc/GMT",
purchase_date_ms: "1565479077000",
purchase_date_pst: "2019-08-10 16:17:57 America/Los_Angeles",
original_purchase_date: "2019-08-10 23:17:57 Etc/GMT",
original_purchase_date_ms: "1565479077000",
original_purchase_date_pst: "2019-08-10 16:17:57 America/Los_Angeles",
expires_date: "2099-09-10 23:17:57 Etc/GMT",
expires_date_ms: "4092736677000",
expires_date_pst: "2099-09-10 16:17:57 America/Los_Angeles",
web_order_line_item_id: "520000150747696",
is_trial_period: "true",
is_in_intro_offer_period: "false"
}
],
latest_receipt:
"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",
pending_renewal_info: [
{
auto_renew_product_id:
"net.shinyfrog.bear_iOS.pro_yearly_subscription_bis",
original_transaction_id: "520000469131745",
product_id: "net.shinyfrog.bear_iOS.pro_yearly_subscription_bis",
auto_renew_status: "1"
}
]
};
}
$done({body:JSON.stringify(obj)});
#Bear熊掌记 内购解锁
^https:\/\/buy\.itunes\.apple\.com\/verifyReceipt url script-response-body https://gist.githubusercontent.com/hello1983/f5e27c01dc954afeaca0e1c166a5d407/raw/Bear.js
hostname=buy.itunes.apple.com
# 哔哩哔哩
hostname = api.bilibili.com
^https:\/\/api.bilibili.com\/pgc\/player\/api\/playurl url script-response-body https://raw.githubusercontent.com/Sunert/Scripts/master/Script/Bilibili/bilibili.unblock.season.min.js
^https:\/\/api.bilibili.com\/pgc\/view\/app\/season url script-response-body https://raw.githubusercontent.com/Sunert/Scripts/master/Script/Bilibili/bilibili.unblock.season.min.js
^https:\/\/api.bilibili.com\/pgc\/player\/api\/playurl url script-response-body https://raw.githubusercontent.com/Sunert/Scripts/master/Script/Bilibili/bilibili.unblock.playurl.min.js
^https:\/\/api.bilibili.com\/pgc\/view\/app\/season url script-response-body https://raw.githubusercontent.com/Sunert/Scripts/master/Script/Bilibili/bilibili.unblock.playurl.min.js
https:\/\/ap(p|i)\.bilibili\.com\/((pgc\/player\/api\/playurl)|(x\/v2\/account\/myinfo\?)|(x\/v2\/account/mine\?)) url script-response-body https://raw.githubusercontent.com/Sunert/Scripts/master/Script/Bilibili/BiliHD.js
# boom music
^https:\/\/apimboom2\.globaldelight\.net\/itunesreceipt_v2\.php$ url 302 https://raw.githubusercontent.com/langkhach270389/Scripting/master/boom.vip.rsp
hostname= apimboom2.globaldelight.net
const obj = JSON.parse($response.body);
obj.subscription = {
tier:"Pro",
subscriptionActive: true,
expirationDate: 2040418629080,
subscriptionType: "yearly",
rawSubscriptionType:"Appstore",
productId: "com.lukilabs.lukiapp.pro.sub.yearly" }
$done({body:JSON.stringify(obj)});
{
”userId“: ”83879051-715b-fc2e-7a9c-db7df40351fb“,
”profileImgUrl“: ”https://res.craft.do/user/full/83879051-715b-fc2e-7a9c-db7df40351fb/4A5FC816-AD5B-47EC-BC1D-483680991CAE_3“,
”email“: ”a75avpqcp6@privaterelay.appleid.com“,
”firstName“: ”mi“,
”lastName“: ”mick“,
”market“: ”CN“,
”spaces“: [],
”subscription“: {
”tier“: ”Pro“,
”subscriptionActive“: true,
”expirationDate“: 1613588828000,
”subscriptionType“: ”yearly“,
”rawSubscriptionType“: ”AppStore“,
”productId“: ”com.lukilabs.lukiapp.pro.sub.yearly“
},
”limits“: ”eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjp7Im1heE51bWJlck9mU3BhY2VzIjoxMDAsImRlZmF1bHRTcGFjZUxpbWl0cyI6eyJtYXhTdWJCbG9ja3NJbkJsb2NrIjoyMDAwLCJtYXhEb2N1bWVudHNJblNwYWNlIjoxMDAwLCJtYXhCbG9ja3NJblNwYWNlIjoxMDAwMDAsIm1heE1lbWJlcnNJblNwYWNlIjoyMCwibWF4Q29udGVudExlbmd0aE9mQmxvY2siOjEwMDAwLCJtYXhDb250ZW50TGVuZ3RoT2ZTbmlwcGV0IjoxMDAwMCwibWF4Q29weUFtb3VudCI6MTAwMDAsIm1heEZvbGRlcnNJblNwYWNlIjoxMDAsIm1heExlbmd0aE9mQ29tbWVudCI6MjAwMCwibWF4Q29tbWVudHNJblNwYWNlIjoxMDAwMCwibWF4RmlsZVNpemUiOjI1NiwibWF4QXR0YWNobWVudHNJblNwYWNlIjoxMDAwMCwibWF4TnVtYmVyT2ZEYXlzSW5BY3Rpdml0eUhpc3RvcnkiOjMwLCJhbGxvd0V4cG9ydCI6dHJ1ZSwibWF4U3RvcmFnZVNpemVGb3JTcGFjZSI6MTAyNDB9fSwic3BhY2VzIjpbXSwidGVhbXMiOltdLCJpYXQiOjE2MTIzMzMyNDB9.oz5MYM3TNWFHVwR5vpDYVhYdhheV_AgZ8iTCFXNFSzfIuAO02qAw-z8KFEoGwzjw141auIaiLJM0Bb2YHHyVjixfMy8EbAYnyPhdt_gGxEV3-fQszX8J8UdvAwrd0zJ_VoSiq6Eg8j5efmhv3AXBstnxZ1eEq9f9JddYeUgqw1W5jGk8lkP36U6jAWIxi7zN3bd73Jl276c7dyE_8y-XkcxSvN8KDRiMI0cRLPleGqe2fYE0FIsGEZrftWg5Ja9Poyl8s_s5lAdSiCb1rSJOfj2QsTY3H2md3M9mAxMdwRnKsSGcdysjPGZ_Jiy947EhufuqqRzJggy9o7ugOUsB2w“
hostname = *.snssdk.com
https:\/\/aweme-\w+\.snssdk\.com\/luckycat\/aweme\/v1\/task\/done\/sign_in\? url script-request-header https://raw.githubusercontent.com/ZhiYi-N/Private-Script/master/Scripts/dyjsb.js
https:\/\/aweme-\w+\.snssdk\.com\/luckycat\/aweme\/v1\/task\/done\/read\? url script-request-header https://raw.githubusercontent.com/ZhiYi-N/Private-Script/master/Scripts/dyjsb.js
https:\/\/aweme-\w+\.snssdk\.com\/luckycat\/aweme\/v1\/task\/walk\/step_submit\? - script-request-header https://raw.githubusercontent.com/ZhiYi-N/Private-Script/master/Scripts/dyjsb.js
/**
* 名称:endless.js
* 地址:
*
* 制作:senku
*
******** 以下为 tamperJS 自动生成的 rewrite 相关信息,可能需要根据情况适当调整 ********
[rewrite]
http:\/\/www\.google\..* url script-response-body endless.js
https:\/\/www\.google\..* url script-response-body endless.js
https:\/\/encrypted\.google\..* url script-response-body endless.js
[mitm]
, www.google.*, encrypted.google.*
********
* 工具: tamperJS BY @elecV2
* 频道: https://t.me/elecV2
*
**/
let body = $response.body
if (/<\/html>|<\/body>/.test(body)) {
body = body.replace('</body>', `
<script>
const elecJSPack = function(){// ==UserScript==
// @name Endless Google
// @description Load more results automatically and endlessly.
// @author tumpio
// @namespace tumpio@sci.fi
// @homepageURL https://openuserjs.org/scripts/tumpio/Endless_Google
// @supportURL https://github.com/tumpio/gmscripts/issues
// @icon https://github.com/tumpio/gmscripts/raw/master/Endless_Google/large.png
// @include http://www.google.*
// @include https://www.google.*
// @include https://encrypted.google.*
// @run-at document-start
// @version 0.0.6
// @license MIT
// @noframes
// ==/UserScript==
if (location.href.indexOf("tbm=isch") !== -1) // NOTE: Don't run on image search
return;
if (window.top !== window.self) // NOTE: Do not run on iframes
return;
const centerElement = "#center_col";
const loadWindowSize = 1.6;
const filtersAll = ["#foot", "#bottomads"];
const filtersCol = filtersAll.concat(["#extrares", "#imagebox_bigimages"]);
let msg = "";
const css = \`
.page-number {
position: relative;
display: flex;
flex-direction: row-reverse;
align-items: center;
margin-bottom: 2em;
color: #808080;
}
.page-number::before {
content: "";
background-color: #ededed;
height: 1px;
width: 100%;
margin: 1em 3em;
}
.endless-msg {
position:fixed;
bottom:0;
left:0;
padding:5px 10px;
background: darkred;
color: white;
font-size: 11px;
display: none;
}
.endless-msg.shown {
display:block;
}
\`;
let pageNumber = 1;
let prevScrollY = 0;
let nextPageLoading = false;
function requestNextPage() {
nextPageLoading = true;
let nextPage = new URL(location.href);
if (!nextPage.searchParams.has("q")) return;
nextPage.searchParams.set("start", String(pageNumber * 10));
!msg.classList.contains("shown") && msg.classList.add("shown");
fetch(nextPage.href)
.then(response => response.text())
.then(text => {
let parser = new DOMParser();
let htmlDocument = parser.parseFromString(text, "text/html");
let content = htmlDocument.documentElement.querySelector(centerElement);
content.id = "col_" + pageNumber;
filter(content, filtersCol);
let pageMarker = document.createElement("div");
pageMarker.textContent = String(pageNumber + 1);
pageMarker.className = "page-number";
let col = document.createElement("div");
col.className = "next-col";
col.appendChild(pageMarker);
col.appendChild(content);
document.querySelector(centerElement).appendChild(col);
if (!content.querySelector("#rso")) {
// end of results
window.removeEventListener("scroll", onScrollDocumentEnd);
nextPageLoading = false;
msg.classList.contains("shown") && msg.classList.remove("shown");
return;
}
pageNumber++;
nextPageLoading = false;
msg.classList.contains("shown") && msg.classList.remove("shown");
});
}
function onScrollDocumentEnd() {
let y = window.scrollY;
let delta = y - prevScrollY;
if (!nextPageLoading && delta > 0 && isDocumentEnd(y)) {
requestNextPage();
}
prevScrollY = y;
}
function isDocumentEnd(y) {
return y + window.innerHeight * loadWindowSize >= document.body.clientHeight;
}
function filter(node, filters) {
for (let filter of filters) {
let child = node.querySelector(filter);
if (child) {
child.parentNode.removeChild(child);
}
}
}
function init() {
prevScrollY = window.scrollY;
window.addEventListener("scroll", onScrollDocumentEnd);
filter(document, filtersAll);
let style = document.createElement("style");
style.type = "text/css";
style.appendChild(document.createTextNode(css));
document.head.appendChild(style);
msg = document.createElement("div");
msg.setAttribute("class", "endless-msg");
msg.innerText = "Loading next page...";
document.body.appendChild(msg);
}
document.addEventListener("DOMContentLoaded", init);}()</script></body>`)
console.log('添加 tamperJS:endless.js')
}
$done({ body })
# Gear Unlock Pro (by LTribe)
^https?:\/\/buy\.itunes\.apple\.com\/verifyReceipt url script-response-body Gear.js
hostname = buy.itunes.apple.com
# Chrome
^https?:\/\/(www.)?(g|google)\.cn url 302 https://www.google.com
# 油猴脚本
https:\/\/www\.google\..* url script-response-body https://gist.githubusercontent.com/hello1983/f5e27c01dc954afeaca0e1c166a5d407/raw/Endless_Google.user.js
# YouTube5秒广告
^https?:\/\/.+\.googlevideo\.com\/.+&oad url reject-img
^https?:\/\/.+\.googlevideo\.com\/.+ctier url reject-img
^https?:\/\/youtubei\.googleapis\.com\/youtubei\/.+ad_ url reject-img
^https?:\/\/youtubei\.googleapis\.com\/youtubei\/.+log_ url reject-img
^https?:\/\/.+\.youtube\.com\/get_midroll_ url reject-img
^https?:\/\/premiumyva\.appspot\.com\/vmclickstoadvertisersite url reject-img
^https?:\/\/.+\.youtube\.com\/api\/stats\/ads url reject-img
^https?:\/\/.+\.youtube\.com\/api\/stats\/.+adformat url reject-img
^https?:\/\/.+\.youtube\.com\/pagead\/ url reject-img
^https?:\/\/.+\.youtube\.com\/ptracking url reject-img
hostname = www.google.com,*.googlevideo.com
# > Google Drive
user-agent, %E4%BA%91%E7%AB%AF%E7%A1%AC%E7%9B%98*
user-agent,Google.Drive*
user-agent,*com.google.Drive*
host-suffix,docs.google.com
host-suffix,drive.google.com
host-suffix,googledrive.com
host-suffix,googleusercontent.com
hostname= api.m.jd.com,img10.360buyimg.com,jr.jd.com,img1.360buyimg.com,*.meituan.net,*.jr.jd.com,api.m.jd.com
# > JD
^https?:\/\/api\.m\.jd.com\/client\.action\?functionId=(start|queryMaterialAdverts) url reject-200
^https:\/\/api\.m\.jd\.com\/client\.action\?functionId=start$ url reject-200
^https?:\/\/(bdsp-x|dsp-x)\.jd\.com\/adx\/ url reject-200
^https?:\/\/ms\.jr\.jd\.com\/gw\/generic\/base\/na\/m\/adInfo url reject-200
^https?:\/\/ms\.jr\.jd\.com\/gw\/generic\/aladdin\/na\/m\/getLoadingPicture url reject-200
^https?:\/\/.+\/jfs.+\w+\=1125&\w+\=2080 url reject-200
^https?:\/\/.+\/mcmktadmin.+\.jpg$ url reject-200
^https?:\/\/img1\.360buyimg\.com\/pop\/jfs.+\.jpg url reject-200
# > 京东金融
^https:\/\/img10\.360buyimg\.com\/mcmktresadmin\/.+\.jpg url reject-200
^https?:\/\/ms\.jr\.jd\.com\/gw\/generic\/aladdin\/na\/m\/getLoadingPicture url reject-200
# > 美团
^https?:\/\/img\.meituan\.net\/(adunion|display|midas)\/.+\.(gif|jpg|jpg\.webp)$ url reject-200
^https?:\/\/p\d\.meituan\.net\/wmbanner\/[A-Za-z0-9]+\.jpg url reject-200
^https?:\/\/p\d\.meituan\.net\/movie\/[A-Za-z0-9]+\.jpg\?may_covertWebp url reject-200
^https?:\/\/s3plus\.meituan\.net\/.+\/linglong\/.+\.(gif|jpg|mp4) url reject-200
#京东历史比价 (by yichahucha)
^https?://api\.m\.jd\.com/client\.action\?functionId=(wareBusiness|serverConfig) url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/jd_price.js
#淘宝历史比价 (by yichahucha)
^http://.+/amdc/mobileDispatch url script-request-body https://raw.githubusercontent.com/yichahucha/surge/master/tb_price.js
^https?://trade-acs\.m\.taobao\.com/gw/mtop\.taobao\.detail\.getdetail url script-response-body https://raw.githubusercontent.com/yichahucha/surge/master/tb_price.js
hostname= api.m.jd.com, amdc.m.taobao.com
# 酷我音乐SVIP (By yxiaocai)
^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/user\/vip|vip\/spi/mservice) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Kuwo.js
^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/theme) url script-response-body https://raw.githubusercontent.com/nzw9314/QuantumultX/master/Script/themekuwo.js
^https?:\/\/musicpay\.kuwo\.cn\/music\.pay\?uid\=\d+ url 302 http://musicpay.kuwo.cn/music.pay?uid=1
^https?:\/\/musicpay\.kuwo.cn\/music\.pay\?uid=\d+ url script-request-header https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/KuWoMusicDownload.js
hostname = vip1.kuwo.cn
# 漫威漫画
https:\/\/.*\.com\/marvel\/services url script-response-body https://raw.githubusercontent.com/Alex0510/Eric/master/surge/Script/manwei.js
hostname=new.marvelunlimitedresources.com,services.mu.163.com
# 芒果TV
hostname=credits.bz.mgtv.com
^https:\/\/credits.bz.mgtv.com\/user\/creditsTake url script-request-header https://raw.githubusercontent.com/chavyleung/scripts/master/mgtv/mgtv.cookie.js
# mimo
hostname = api.getmimo.com
^https:\/\/api\.getmimo\.com\/v1\/subscriptions$ url script-response-body https://raw.githubusercontent.com/langkhach270389/Scripting/master/mimo.vip.js
# Musixmatch
hostname = apic.musixmatch.com
^https:\/\/apic\.musixmatch\.com\/ws\/.*\/config\.get url script-response-body https://raw.githubusercontent.com/langkhach270389/Scripting/master/musixmatch.miao.js
# notion
host,loggly.com
host,segment.com
host,intercom.io
host,intercomcdn.com
host,amplitude.com
host,notion.so
host,amazonaws.com
hostname = photos.adobe.io,apiwz.midukanshu.com, draw.jdfcloud.com, kandian.youth.cn, sina.com, claritywallpaper.com, mcs-mimp-web.sf-express.com, sf-integral-sign-in.weixinjia.net, new.api.hdcj.9w9.com, www.xmind.cn, newdrugs.dxy.cn, daojia.jd.com, api.ireader.mobi, ms.jr.jd.com, api.m.jd.com, amdc.m.taobao.com, api.interpreter.caiyunai.com, note.youdao.com, *.rr.tv, license.pdfexpert.com, engbright.com, *.iqiyi.com, photos.adobe.io, nomo.dafork.com, lambda.us-east-1.amazonaws.com, api.indicative.com, h5.ele.me, lcs-mobile-cops.adobe.io, p.du.163.com, wapside.189.cn:9001, api.mvmtv.com, mobwsa.ximalaya.com, *.v2ex.com, www.52pojie.cn, vip1.kuwo.cn, apimboom2.globaldelight.net, mobile-api.adguard.com, api.termius.com, i.weread.qq.com, mp.weixin.qq.com, weibointl.api.weibo.cn, *.googlevideo.com, api.zhihu.com, www.zhihu.com, in.appcenter.ms, app.bilibili.com, api.bilibili.com, api.live.bilibili.com, *.youth.cn, ios.baertt.com, *-buy.itunes.apple.com, api.revenuecat.com,*.googlevideo.com,h5.ele.me
# 彩云小译 (by @superuv)
^https:\/\/api\.interpreter\.caiyunai\.com\/v1\/user url script-response-body https://raw.githubusercontent.com/nzw9314/QuantumultX/master/Script/cyxy.js
#phothop&PSexpress
^https:\/\/lcs-mobile-cops\.adobe\.io\/mobile_profile url script-response-body https://raw.githubusercontent.com/langkhach270389/Scripting/master/photoshop.js
#Bear熊掌记 内购解锁
^https:\/\/buy\.itunes\.apple\.com\/verifyReceipt url script-response-body https://raw.githubusercontent.com/nzw9314/QuantumultX/master/Script/bear.js
#draft
^https:\/\/backend\.getdrafts\.com\/api\/.*\/verification* url script-response-body https://raw.githubusercontent.com/langkhach270389/Scripting/master/draft.js
#document
^https:\/\/license\.pdfexpert\.com\/api\/.*\/documents\/subscription\/(refresh$|check$) url script-response-body https://raw.githubusercontent.com/langkhach270389/Scripting/master/documents.js
#lightroom
^https:\/\/photos\.adobe\.io\/v2\/accounts* url script-response-body https://raw.githubusercontent.com/langkhach270389/Scripting/master/Lightroom.js
#Pdfexpert
^https:\/\/license\.pdfexpert\.com\/api\/1\.0\/pdfexpert6\/subscription\/(refresh$|check$) url script-response-body https://raw.githubusercontent.com/langkhach270389/Scripting/master/Pdfexpert.vip.js
# 用药助手解锁专业版 (By Primovist)
^https?:\/\/(i|newdrugs)\.dxy\.cn\/(snsapi\/username\/|app\/user\/(pro\/stat\?|init\?timestamp=)) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/yyzs.js
# 网易蜗牛读书VIP (By yxiaocai and JO2EY)
^https?://p\.du\.163\.com/readtime/info.json url reject
^https?:\/\/p\.du\.163\.com\/gain\/readtime\/info\.json url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/wnyd.js
# 酷我音乐SVIP (By yxiaocai)
^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/user\/vip|vip\/spi/mservice) url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Kuwo.js
^https?:\/\/musicpay\.kuwo\.cn\/music\.pay\?uid\=\d+ url 302 http://musicpay.kuwo.cn/music.pay?uid=
^https?:\/\/vip1\.kuwo\.cn\/(vip\/v2\/theme) url script-response-body https://raw.githubusercontent.com/nzw9314/QuantumultX/master/Script/themekuwo.js
#^https?:\/\/musicpay\.kuwo.cn\/music\.pay\?uid=\d+ url script-request https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/KuWoMusicDownload.js
# 去微信公众号广告 (By Choler)
^https?:\/\/mp\.weixin\.qq\.com\/mp\/getappmsgad url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/QuantumultX/File/Wechat.js
/**
* 名称:zhihu.js
* 地址:
*
* 制作:elecV2
*
******** 以下为 tamperJS 自动生成的 rewrite 相关信息,可能需要根据情况适当调整 ********
[rewrite]
https:\/\/.*\.zhihu\.com\/.* url script-response-body zhihu.js
https:\/\/v\.vzuu\.com\/video\/.* url script-response-body zhihu.js
https:\/\/video\.zhihu\.com\/video\/.* url script-response-body zhihu.js
[mitm]
, *.zhihu.com, v.vzuu.com, video.zhihu.com
********
* 工具: tamperJS BY @elecV2
* 频道: https://t.me/elecV2
*
**/
let body = $response.body
if (/<\/html>|<\/body>/.test(body)) {
body = body.replace('</body>', `<script src='http://libs.baidu.com/jquery/2.0.0/jquery.min.js'></script>
<script>
function GM_openInTab(e){return window.open(e)}function GM_addStyle(e){"use strict";let t=document.getElementsByTagName("head")[0];if(t){let s=document.createElement("style");return s.setAttribute("type","text/css"),s.textContent=e,t.appendChild(s),s}return null}const GM_log=console.log;function GM_xmlhttpRequest(e){"use strict";let t=new XMLHttpRequest;if(__setupRequestEvent(e,t,"abort"),__setupRequestEvent(e,t,"error"),__setupRequestEvent(e,t,"load"),__setupRequestEvent(e,t,"progress"),__setupRequestEvent(e,t,"readystatechange"),t.open(e.method,e.url,!e.synchronous,e.user||"",e.password||""),e.overrideMimeType&&t.overrideMimeType(e.overrideMimeType),e.headers)for(let s in e.headers)Object.prototype.hasOwnProperty.call(e.headers,s)&&t.setRequestHeader(s,e.headers[s]);let s=e.data?e.data:null;return e.binary?t.sendAsBinary(s):t.send(s)}function __setupRequestEvent(e,t,s){"use strict";e["on"+s]&&t.addEventListener(s,function(n){let r={responseText:t.responseText,responseXML:t.responseXML,readyState:t.readyState,responseHeaders:null,status:null,statusText:null,finalUrl:null};switch(s){case"progress":r.lengthComputable=n.lengthComputable,r.loaded=n.loaded,r.total=n.total;break;case"error":break;default:if(4!=t.readyState)break;r.responseHeaders=t.getAllResponseHeaders(),r.status=t.status,r.statusText=t.statusText}e["on"+s](r)})}const GM_info={script:{name:"elecV2",namespace:"https://t.me/elecV2"},uuid:"47c23801-2b5c-4dbc-88a0-636297fd6b86"},__GM_STORAGE_PREFIX=["",GM_info.script.namespace,GM_info.script.name,""].join("***");function GM_deleteValue(e){"use strict";localStorage.removeItem(__GM_STORAGE_PREFIX+e)}function GM_getValue(e,t){"use strict";let s=localStorage.getItem(__GM_STORAGE_PREFIX+e);return null===s&&void 0!==t?t:s}function GM_listValues(){"use strict";let e=__GM_STORAGE_PREFIX.length,t=[];for(let s=0;s<localStorage.length;s++){let n=localStorage.key(s);n.substr(0,e)===__GM_STORAGE_PREFIX&&t.push(n.substr(e))}return t}function GM_setValue(e,t){"use strict";localStorage.setItem(__GM_STORAGE_PREFIX+e,t)}function GM_getResourceURL(e){"use strict";return"greasemonkey-script:"+GM_info.uuid+"/"+e}
</script>
<script>
const elecJSPack = function(){// ==UserScript==
// @name 知乎网页助手
// @namespace zhihu_helper_tool
// @version 1.0.4
// @description 功能介绍:1、知乎站外链接直接跳转至目标网址;2、自动展开问题全部信息,同时展示所有回答;3、去除知乎网页中的广告;4、知乎网页中短视频下载;5、解除知乎复制限制-划词复制(鼠标左键划词自动添加到剪切板);6、去除烦人的登录提示;7、自动高清图片显示【注:支持Tampermonke4.0以上版本】【这可能是功能最全面的知乎助手了】
// @author broom,王超
// @icon data:image/ico;base64,AAABAAIAEBAAAAEAIAAoBQAAJgAAACAgAAABACAAKBQAAE4FAAAoAAAAEAAAACAAAAABACAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAA6IYLxOuIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/6IYLxOuIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO//jWuP/xq2b/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64kQ/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7///////bJn//riA7/64gO//GrZv/riA7/64kQ///////riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO//CoX//+/fz/64gO/++gUP//////64oX///////riA7/////////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7///////bQrf//////8rFx/+uKF///////64kT/+uIDv/riA7//////+uIDv/riA7/64gO/+uIDv/riA7/64gO//K3fv//////8rV7/+uIDv/rihf//////+uJE//riA7/64gO///////riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7//////+uIDv/riA7/64oX///////riRD/64gO/+uJEP//////64gO/+uIDv/riA7/64gO//vo2P///////////////////////////+uKF///////64kQ/+uIDv/riRD//////+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv//////64gO/+uIDv/rihf//////+uIDv/riA7/64kT///////riA7/64gO/+uIDv/riA7/7ZU1/+uMHf/riRP//////+uJE//riA7/64oX///////riA7/64gO/+uKFf//////64gO/+uIDv/riA7/64gO//3z6//xrWv/64sY///////riA7/64gO/+uKF///////64oV/+uKFf/rjBv//////+uIDv/riA7/64gO/+uIDv/0wZD//v39//7+/v/+/v7//v7+///////rihf////////////////////////////riA7/64gO/+uIDv/riA7/7ZU1///////wp17/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/voVH/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/6IYLxOuIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/6IYLxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAAAAABACAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAA5oQGSemGC+PriA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/6YYL4+aEBknphgvj64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/6YYL4+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/9cec//76+P/76tv/87yH/+uJEP/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/++dRv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/9suk////////////9tCu/+uIDv/riA7/64gO/+uIDv/riA7/64gO/++iU//riA7/64gO/+uIDv/riA7/+uLM//rizP/tlTT/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/99W2////////////8a1r/+uIDv/riA7/64gO/+uIDv/zvIf/+d7G/+uIDv/riA7/64gO/+uLGv/++/n///////328f/xsG7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/rjB3/++ze///////87uL/64kQ/+uIDv/riA7/8Kdd//79/P/64Mn/64gO/+uMH//////////////////76dn/////////////////////////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/vpFj//v7+///////xsG7/64gO/+6XO//99vD///////TClP/riA7/64wf/////////////////+2WOf/wqF///O/j///////////////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/42sD///////ncwv/sjSH/++rb///////64Mr/64kT/+uIDv/rjB/////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv///////////+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/++kVf///////vr4//nbwP//////++zf/+yPJf/riA7/64gO/+uMH////////////+uIDv/riA7/64gO/+uIDv/riA7/64gO////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO//zu4v//////+uDJ//3z6//ulzv/64gO/+uIDv/riA7/64wf////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/9s2o///////2yJ7/7I0h/+uIDv/riA7/64gO/+uIDv/rjB/////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv///////////+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/ysXP///////rgyf/riA7/64gO/+uIDv/riA7/64gO/+uMH////////////+uIDv/riA7/64gO/+uIDv/riA7/64gO////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/++gUP///////PDl/+uIDv/riA7/64gO/+uIDv/riA7/64wf////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO//K3ff////////////////////////////////////////////////////////////328P/rjB/////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv///////////+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/7I4k//zx5///////////////////////////////////////////////////////+dzB/+uMH////////////+uIDv/riA7/64gO/+uIDv/riA7/64gO////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/++vj//////+yNIf/riA7/64gO/+uIDv/riA7/64wf////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO//338v//////7ZQy/+uIDv/riA7/64gO/+uIDv/rjB/////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv///////////+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/751I/+2TL//riA7/64gO/+uIDv/riA7//fXt///////umD7/64gO/+uIDv/riA7/64gO/+uMH////////////+uIDv/riA7/64gO/+uIDv/riA7/64gO////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/xrm3//v38//XEl//riA7/64gO/+uIDv/98un//////++dRv/riA7/64gO/+uIDv/riA7/64wf////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uJEP/87+P///////GrZv/riA7/64gO//zv5P//////755L/+uIDv/riA7/64gO/+uIDv/rjB/////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv///////////+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO//TAj///////+Ne5/+uKFf/rihX//O7h///////volP/64oV/+uKFf/rihX/64gO/+uMH////////////+uIDv/riA7/64gO/+uIDv/riA7/64gO////////////64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/7ZQy//79/f/////////////////////////////////////////////////yt37/64wf///////////////////////////////////////////////////////riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/+uHL/////////////////////////////////////////////v38/++fTP/rjB///////////////////////////////////////////////////////+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/zuYP///////bOqv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+yPJ//99/L//fPr/+uJE//riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/++kVf/65tb/8Kpk/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/6YYL4+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+mGC+PmhAZJ6YYL4+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/riA7/64gO/+uIDv/phgvj5oQGSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
// @match https://*.zhihu.com/*
// @match https://v.vzuu.com/video/*
// @match https://video.zhihu.com/video/*
// @connect zhihu.com
// @connect vzuu.com
// @require http://libs.baidu.com/jquery/2.0.0/jquery.min.js
// @run-at document-end
// @grant GM_openInTab
// @grant GM_setClipboard
// @grant GM_info
// @grant GM_download
// @charset UTF-8
// ==/UserScript==
(function() {
'use strict';
if(window.top != window.self){
return;
}
var window_url = window.location.href;
var website_host = window.location.host;
//直接跳转到目标网页
if(website_host == "link.zhihu.com"){
var regRet = location.search.match(/target=(.+?)(&|$)/);
if(regRet && regRet.length==3){
location.href = decodeURIComponent(regRet[1]);
}
}
//知乎正文
else if(website_host.indexOf("zhihu.com")!=-1){
//自动展开问题全部信息,同时展示所有回答
if(window_url.indexOf("https://www.zhihu.com/question/") != -1) {
autoExpandQuestionInfo();
}
function autoExpandQuestionInfo() {
$('.Button.QuestionRichText-more.Button--plain').click();
var moreAnswers = $('.QuestionMainAction');
if(moreAnswers.length > 0) {
moreAnswers[0].click();
}
}
//去除首页广告
function clearAdvert() {
$(".Pc-card").each(function(){
if($(this).find(".Banner-adTag").length != 0){
$(this).remove();
}
});
}
setInterval(function(){
clearAdvert();
}, 500);
//划词复制
$('body').mouseup(function(){
GM_setClipboard(window.getSelection().toString());
});
//去除登录提示
document.querySelector('body').addEventListener('DOMNodeInserted',function(e){
if(e.target.getElementsByClassName('signFlowModal').length!==0){
e.target.getElementsByClassName('Modal-backdrop')[0].click();
}
});
//更改为直接高清显示
function changeHeightQualityPic(){
$("body").find("img").each(function(){
var dataoriginal = $(this).attr("data-original");
if(!!dataoriginal){
$(this).attr("src", dataoriginal);
}
});
}
setInterval(function(){
changeHeightQualityPic();
}, 500);
}
//52破解论坛
else if(website_host == "www.52pojie.cn"){
}
})();
/**
* 避免重复造轮子
* 集成插件:下载知乎视频
* greasyfork地址:https://greasyfork.org/zh-CN/scripts/39206
* 版本:V1.18
* */
(async () => {
if (window.location.host == 'www.zhihu.com') return;
const playlistBaseUrl = 'https://lens.zhihu.com/api/videos/';
//const videoBaseUrl = 'https://video.zhihu.com/video/';
const videoId = window.location.pathname.split('/').pop(); // 视频id
const menuStyle = 'transform:none !important; left:auto !important; right:-0.5em !important;';
const playerId = 'player';
const coverSelector = '#' + playerId + ' > div:first-child > div:first-child > div:nth-of-type(2)';
const controlBarSelector = '#' + playerId + ' > div:first-child > div:first-child > div:last-child > div:last-child > div:first-child';
const svgDownload = '<path d="M9.5,4 H14.5 V10 H17.8 L12,15.8 L6.2,10 H9.5 Z M6.2,18 H17.8 V20 H6.2 Z"></path>';
let player = document.getElementById(playerId);
let resolutionMap = {'标清': 'sd', '高清': 'ld', '超清': 'hd'};
let videos = []; // 存储各分辨率的视频信息
let downloading = false;
function getBrowerInfo() {
let browser = (function (window) {
let document = window.document;
let navigator = window.navigator;
let agent = navigator.userAgent.toLowerCase();
// IE8+支持.返回浏览器渲染当前文档所用的模式
// IE6,IE7:undefined.IE8:8(兼容模式返回7).IE9:9(兼容模式返回7||8)
// IE10:10(兼容模式7||8||9)
let IEMode = document.documentMode;
let chrome = window.chrome || false;
let system = {
// user-agent
agent: agent,
// 是否为IE
isIE: /trident/.test(agent),
// Gecko内核
isGecko: agent.indexOf('gecko') > 0 && agent.indexOf('like gecko') < 0,
// webkit内核
isWebkit: agent.indexOf('webkit') > 0,
// 是否为标准模式
isStrict: document.compatMode === 'CSS1Compat',
// 是否支持subtitle
supportSubTitle: function () {
return 'track' in document.createElement('track');
},
// 是否支持scoped
supportScope: function () {
return 'scoped' in document.createElement('style');
},
// 获取IE的版本号
ieVersion: function () {
let rMsie = /(msie\\s|trident.*rv:)([\\w.]+)/;
let match = rMsie.exec(agent);
try {
return match[2];
} catch (e) {
return IEMode;
}
},
// Opera版本号
operaVersion: function () {
try {
if (window.opera) {
return agent.match(/opera.([\\d.]+)/)[1];
}
else if (agent.indexOf('opr') > 0) {
return agent.match(/opr\\/([\\d.]+)/)[1];
}
} catch (e) {
return 0;
}
}
};
try {
// 浏览器类型(IE、Opera、Chrome、Safari、Firefox)
system.type = system.isIE ? 'IE' :
window.opera || (agent.indexOf('opr') > 0) ? 'Opera' :
(agent.indexOf('chrome') > 0) ? 'Chrome' :
//safari也提供了专门的判定方式
window.openDatabase ? 'Safari' :
(agent.indexOf('firefox') > 0) ? 'Firefox' :
'unknow';
// 版本号
system.version = (system.type === 'IE') ? system.ieVersion() :
(system.type === 'Firefox') ? agent.match(/firefox\\/([\\d.]+)/)[1] :
(system.type === 'Chrome') ? agent.match(/chrome\\/([\\d.]+)/)[1] :
(system.type === 'Opera') ? system.operaVersion() :
(system.type === 'Safari') ? agent.match(/version\\/([\\d.]+)/)[1] :
'0';
// 浏览器外壳
system.shell = function () {
if (agent.indexOf('edge') > 0) {
system.version = agent.match(/edge\\/([\\d.]+)/)[1] || system.version;
return 'Edge';
}
// 遨游浏览器
if (agent.indexOf('maxthon') > 0) {
system.version = agent.match(/maxthon\\/([\\d.]+)/)[1] || system.version;
return 'Maxthon';
}
// QQ浏览器
if (agent.indexOf('qqbrowser') > 0) {
system.version = agent.match(/qqbrowser\\/([\\d.]+)/)[1] || system.version;
return 'QQBrowser';
}
// 搜狗浏览器
if (agent.indexOf('se 2.x') > 0) {
return '搜狗浏览器';
}
// Chrome:也可以使用window.chrome && window.chrome.webstore判断
if (chrome && system.type !== 'Opera') {
let external = window.external;
let clientInfo = window.clientInformation;
// 客户端语言:zh-cn,zh.360下面会返回undefined
let clientLanguage = clientInfo.languages;
// 猎豹浏览器:或者agent.indexOf("lbbrowser")>0
if (external && 'LiebaoGetVersion' in external) {
return 'LBBrowser';
}
// 百度浏览器
if (agent.indexOf('bidubrowser') > 0) {
system.version = agent.match(/bidubrowser\\/([\\d.]+)/)[1] ||
agent.match(/chrome\\/([\\d.]+)/)[1];
return 'BaiDuBrowser';
}
// 360极速浏览器和360安全浏览器
if (system.supportSubTitle() && typeof clientLanguage === 'undefined') {
let storeKeyLen = Object.keys(chrome.webstore).length;
let v8Locale = 'v8Locale' in window;
return storeKeyLen > 1 ? '360极速浏览器' : '360安全浏览器';
}
return 'Chrome';
}
return system.type;
};
// 浏览器名称(如果是壳浏览器,则返回壳名称)
system.name = system.shell();
// 对版本号进行过滤过处理
// System.version = System.versionFilter(System.version);
} catch (e) {
// console.log(e.message);
}
return system;
})(window);
if (browser.name == undefined || browser.name == '') {
browser.name = 'Unknown';
browser.version = 'Unknown';
}
else if (browser.version == undefined) {
browser.version = 'Unknown';
}
return browser;
}
function fetchRetry(url, options = {}, times = 1, delay = 1000, checkStatus = true) {
return new Promise((resolve, reject) => {
// fetch 成功处理函数
function success(res) {
if (checkStatus && !res.ok) {
failure(res);
}
else {
resolve(res);
}
}
// 单次失败处理函数
function failure(error) {
times--;
if (times) {
setTimeout(fetchUrl, delay);
}
else {
reject(error);
}
}
// 总体失败处理函数
function finalHandler(error) {
throw error;
}
function fetchUrl() {
return fetch(url, options)
.then(success)
.catch(failure)
.catch(finalHandler);
}
fetchUrl();
});
}
// 下载指定url的资源
async function downloadUrl(url, name = (new Date()).valueOf() + '.mp4') {
let browser = getBrowerInfo();
// Greasemonkey 需要把 url 转为 blobUrl
if (GM_info.scriptHandler == 'Greasemonkey') {
let res = await fetchRetry(url);
let blob = await res.blob();
url = URL.createObjectURL(blob);
}
// Chrome 可以使用 Tampermonkey 的 GM_download 函数绕过 CSP(Content Security Policy) 的限制
if (window.GM_download) {
GM_download({url, name});
}
else {
// firefox 需要禁用 CSP, about:config -> security.csp.enable => false
let a = document.createElement('a');
a.href = url;
a.download = name;
// a.target = '_blank';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
setTimeout(function () {
URL.revokeObjectURL(url);
}, 100);
}
}
function humanSize(size) {
let n = Math.log(size) / Math.log(1024) | 0;
return (size / Math.pow(1024, n)).toFixed(0) + ' ' + (n ? 'KMGTPEZY'[--n] + 'B' : 'Bytes');
}
if (!player) return;
// 获取视频信息
const res = await fetchRetry(playlistBaseUrl + videoId, {
headers: {
'referer': 'refererBaseUrl + videoId',
'authorization': 'oauth c3cef7c66a1843f8b3a9e6a1e3160e20' // in zplayer.min.js of zhihu
}
}, 3);
const videoInfo = await res.json();
// 获取不同分辨率视频的信息
for (let [key, video] of Object.entries(videoInfo.playlist)) {
video.name = key;
if (!videos.find(v => v.width == video.width)) {
videos.push(video);
}
}
// 按分辨率大小排序
videos = videos.sort(function (v1, v2) {
return v1.width == v2.width ? 0 : (v1.width > v2.width ? 1 : -1);
}).reverse();
document.addEventListener('DOMNodeInserted', (evt) => {
let domControlBar = evt.relatedNode.querySelector(':scope > div:last-child > div:first-child');
if (!domControlBar || domControlBar.querySelector('.download')) return;
let domFullScreenBtn = domControlBar.querySelector(':scope > div:nth-last-of-type(1)');
let domResolutionBtn = domControlBar.querySelector(':scope > div:nth-last-of-type(3)');
let domDownloadBtn, defaultResolution, buttons;
if (!domFullScreenBtn || !domFullScreenBtn.querySelector('button')) return;
// 克隆分辨率菜单或全屏按钮为下载按钮
domDownloadBtn = (domResolutionBtn && (domResolutionBtn.className == domFullScreenBtn.className))
? domResolutionBtn.cloneNode(true)
: domFullScreenBtn.cloneNode(true);
defaultResolution = domDownloadBtn.querySelector('button').innerText;
// 生成下载按钮图标
domDownloadBtn.querySelector('button:first-child').outerHTML = domFullScreenBtn.cloneNode(true).querySelector('button').outerHTML;
domDownloadBtn.querySelector('svg').innerHTML = svgDownload;
domDownloadBtn.className = domDownloadBtn.className + ' download';
buttons = domDownloadBtn.querySelectorAll('button');
// button 元素添加对应的下载地址
buttons.forEach(dom => {
let video = videos.find(v => v.name == resolutionMap[dom.innerText || defaultResolution]);
video = video || videos[0];
dom.dataset.video = video.play_url;
if (dom.innerText) {
(dom.innerText = \`${dom.innerText} (${humanSize(video.size)})\`);
}
else if (buttons.length == 1) {
dom.nextSibling.querySelector('div').innerText = humanSize(video.size);
}
});
// 鼠标事件 - 显示菜单
domDownloadBtn.addEventListener('pointerenter', () => {
let domMenu = domDownloadBtn.querySelector('div:nth-of-type(1)');
if (domMenu) {
domMenu.style.cssText = menuStyle + 'opacity:1 !important; visibility:visible !important';
}
});
// 鼠标事件 - 隐藏菜单
domDownloadBtn.addEventListener('pointerleave', () => {
let domMenu = domDownloadBtn.querySelector('div:nth-of-type(1)');
if (domMenu) {
domMenu.style.cssText = menuStyle;
}
});
// 鼠标事件 - 选择菜单项
domDownloadBtn.addEventListener('pointerup', event => {
if (downloading) {
alert('当前正在执行下载任务,请等待任务完成。');
return;
}
let e = event.srcElement || event.target;
while (e.tagName != 'BUTTON') {
e = e.parentNode;
}
downloadUrl(e.dataset.video);
});
// 显示下载按钮
domControlBar.appendChild(domDownloadBtn);
});
})();}()</script></body>`)
console.log('添加 tamperJS:zhihu.js')
}
$done({ body })
# 知乎 测试 脚本
https:\/\/.*\.zhihu\.com\/.* url script-response-body https://gist.githubusercontent.com/hello1983/f5e27c01dc954afeaca0e1c166a5d407/raw/zhihu-test.js
https:\/\/v\.vzuu\.com\/video\/.* url script-response-body https://gist.githubusercontent.com/hello1983/f5e27c01dc954afeaca0e1c166a5d407/raw/zhihu-test.js
https:\/\/video\.zhihu\.com\/video\/.* url script-response-body https://gist.githubusercontent.com/hello1983/f5e27c01dc954afeaca0e1c166a5d407/raw/zhihu-test.js
hostname=*.zhihu.com, v.vzuu.com, video.zhihu.com
# 知乎去广告 (By onewayticket255)
hostname= api.zhihu.com,link.zhihu.com,118.89.204.198
^https://api.zhihu.com/moments/recommend url script-response-body https://raw.githubusercontent.com/nzw9314/QuantumultX/master/onewayticket255/surge_zhihu_feed.js
^https://api.zhihu.com/topstory/recommend url script-response-body https://raw.githubusercontent.com/nzw9314/QuantumultX/master/onewayticket255/surge_zhihu_recommend.js
https://api.zhihu.com/v4/questions url script-response-body https://raw.githubusercontent.com/nzw9314/QuantumultX/master/onewayticket255/surge_zhihu_answer.js
^https://api.zhihu.com/people/ url script-response-body https://raw.githubusercontent.com/nzw9314/QuantumultX/master/onewayticket255/surge_zhihu_people.js
^https://api.zhihu.com/market/header url script-response-body https://raw.githubusercontent.com/NobyDa/Script/master/Surge/JS/Zhihu-ad-market.js
^https?:\/\/www\.zhihu\.com\/api\/v4\/community-ad\/ - reject
^https?:\/\/api\.zhihu\.com\/(launch|real_time) - reject
^https?:\/\/api\.zhihu\.com\/commercial_api\/(launch|real_time) - reject
^https?:\/\/api\.zhihu\.com\/fringe\/ad - reject
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment