您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Webos辅助插件,用于对webos网页版的增强
// ==UserScript== // @name Webos辅助插件 // @namespace https://gitee.com/fs185085781 // @version 1.0.7 // @description Webos辅助插件,用于对webos网页版的增强 // @author 阿范🎈 // @include * // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAArtJREFUOE+tlE9IVFEUxr9z33vz3ozpzNSQpaOhKRG6qDZFtChoE7UyA5FwES6qVdFiICKxIsiCAv/AUAtbFEKbNkEQQZsgAlu0ihBlRp10hFQ0ne597954d5wZRaM/+uDAu/fB733nnO8cAoCmYamkIP+1+EhPwRNePriEu+q9cO9yCSk8/U1KAzJRQ7R5mNQ/NQQQlA5o/wel/l9ZCeZwA7Zga4H/luZ6mLMauBWwosLfwSJM4UtLZE2zrAfpYs0KafrKfFiQG6B976XyXL+T67s50x5F+Mk0dDddibdnYzhabaN5YAKpjNSQAszhDEFhgBreCbWRNXxYfHAK80u+dSQ8V0G5HniiDuU30kWYxSVCnOCrdTwbVPcmp1b77FzcQu+RkE5zR38KXCgIARhKYfhCHMf6voGWGXpboojYDCKn0J1chC1MOMIE1b5aUgXTTrWGNejAUBbJ42Ec3mWjoucrfroGctf3Ymd3GjNdtbjyfBavP+ZgLTPYvjrXhM1NWB6Bql4u6JQll8i2RxFJToJcT8fTUzGcbixH5PYIRq/V4+DdSaTu1KD56gRONJahNhxA4nwZTrYtwHQJJghU+WJOp8xcD9MdMWzvG8PnjjiCFoNJQIVjoPLmKLK36uFKBZMRDl3O4NNAlc5mbl6hrXMRpmIwiECxZ9+VFC78mO3cjW0PxyC4xMilPbAZ0NSThslN2MJA0CWEOIPFGRpiJrJpE0wQDABMebCYA4oOzig94NxDmClMXqxe47s/Hc60/tDKDPjBQBWPp1Rpa+THKSQJZV5+Ngtec4QBm5fOAel3mFZgbAVIoFB/Jq/Q99rK1thoAkoGNnQ3TeRr5qvKq8vfkfNoXG0VTDfFvJ/StvH32WaUFepI7N64YjmxJbAAI+i9X96VUYFlrzjo/tb425oVlAUMQnKI0S+ZC2NKOJYdzwAAAABJRU5ErkJggg== // @grant GM_getValue // @grant GM_setValue // @grant GM_removeValueChangeListener // @grant GM_addValueChangeListener // @grant window.close // @license MIT // ==/UserScript== (function() { 'use strict'; let timeData = setInterval(function(){ try{ webos.addPanTokenGet = function(pName){ return new Promise(function(success){ GM_setValue("setGetWebosToken","1"); GM_setValue(pName,""); GM_removeValueChangeListener(pName); GM_addValueChangeListener(pName,(name,oldValue,newValue,remote)=>{ success(newValue); }); }); } clearInterval(timeData); }catch(e){ } },100); setTimeout(function(){ clearInterval(timeData); },30000); function addLog(text){ var log = document.querySelector("#webos-log"); if(log){ log.innerHTML = text; }else{ log = document.createElement("div"); log.innerHTML = text; log.id = "webos-log"; log.style.position = "fixed"; log.style.top = "0px"; log.style.left = "calc(50vw - 80px)"; log.style.zIndex = "999999"; log.style.color = "#fff"; log.style.fontSize = "15px"; log.style.background = "red"; log.style.padding = "5px"; document.body.appendChild(log); } } let hasProxy = false; if(window.location.host.includes("pan.xunlei.com")){ if(GM_getValue("setGetWebosToken") == "1"){ setTimeout(function(){ GM_setValue("setGetWebosToken",""); },60000); hasProxy = true; let timeId = setInterval(function(){ for(let i=0;i<localStorage.length;i++){ let key = localStorage.key(i); if(key.startsWith("credentials_")){ let str = localStorage.getItem(key); let json = JSON.parse(str); let refresh_token = json.refresh_token; if(refresh_token){ GM_setValue("xunlei",refresh_token); clearInterval(timeId); setTimeout(function(){ top.close(); },1000); } } } },1000); } } if(window.location.host.includes("mypikpak.com")){ if(!document.cookie.includes("pp_access_to_visit=true")){ document.cookie = "pp_access_to_visit=true" } if(GM_getValue("setGetWebosToken") == "1"){ setTimeout(function(){ GM_setValue("setGetWebosToken",""); },60000); let lastCache = {}; let oldFetch = fetch; hasProxy = true; addLog("Webos开始拦截PikPak加密数据(60秒未登录PikPak网盘将自动取消拦截)"); unsafeWindow.fetch = function(...args){ try{ if(args[0].includes("/v1/shield/captcha/init")){ addLog("Webos成功拦截到PikPak加密数据"); let b = JSON.parse(args[1].body); if(b.client_id && b.device_id && b.meta.captcha_sign && b.meta.timestamp){ lastCache.client_id = b.client_id; lastCache.device_id = b.device_id; lastCache.captcha_sign = b.meta.captcha_sign; lastCache.sign_timestamp = b.meta.timestamp; } } }catch(e){ } return oldFetch.apply(this,...args); }; (async function(){ while(true){ if(lastCache.captcha_sign){ addLog("Webos开始拦截PikPak Token"); for (let i = 0; i < localStorage.length; i++) { const key = localStorage.key(i); if (key.includes("credentials_")) { addLog("Webos成功拦截到PikPak Token"); GM_setValue("setGetWebosToken",""); let param = JSON.parse(localStorage.getItem(key)); param.client_id = lastCache.client_id; param.device_id = lastCache.device_id; param.captcha_sign = lastCache.captcha_sign; param.sign_timestamp = lastCache.sign_timestamp; GM_setValue("pikpak",JSON.stringify(param)); lastCache = {}; setTimeout(function(){ top.close(); },1000); } } } await new Promise(function(success){ setTimeout(function(){ success(); },100); }); } })(); } } if(!hasProxy && GM_getValue("setGetWebosToken") == "1"){ setTimeout(function(){ GM_setValue("setGetWebosToken",""); },60000); addLog("Webos即将开始拦截Token或者Cookie(60秒未登录对应网盘将自动取消拦截)"); var setRequestHeader = XMLHttpRequest.prototype.setRequestHeader; XMLHttpRequest.prototype.setRequestHeader = function (...args){ if(args[0] == "Authorization"){ this.auth = args[1].split(" ")[1]; } return setRequestHeader.apply(this,args); } var open = XMLHttpRequest.prototype.open; XMLHttpRequest.prototype.open = function (...args){ var that = this; let need = false; let data = { pan139:"yun.139.com/hcy/file/list", pan1392:"/orchestration/personalCloud/catalog/v1.0/getDisk", weiyun:"weiyunQdisk/DiskDirBatchList", lanzou:"doupload.php?uid", pan115:"files?aid=" }; for(let key in data){ if(args[1].includes(data[key])){ need = true; that.authKey = key; if(that.authKey == "pan139" || that.authKey == "pan1392"){ that.isOld = false; if(that.authKey == "pan1392"){ that.authKey = "pan139"; that.isOld = true; } } break; } } if(need){ if(that.authKey == "pan139"){ addLog("Webos开始拦截移动云盘的Token"); } if(that.authKey == "weiyun"){ addLog("Webos开始拦截微云的Cookie"); } if(that.authKey == "lanzou"){ addLog("Webos开始拦截蓝奏云的Cookie"); } let time = setInterval(function(){ if(that.readyState == 4){ clearInterval(time); if(that.status == 200){ let token = null; if(that.authKey == "pan139"){ var tmpData = {token:that.auth,isOld:that.isOld}; var sz = document.cookie.split(";"); for (let i = 0; i < sz.length; i++) { if(sz[i].includes("ud_id=")){ tmpData.domainId = sz[i].split("=")[1].trim(); } }; token = JSON.stringify(tmpData); }else if(that.authKey == "weiyun" || that.authKey == "lanzou" || that.authKey == "pan115"){ token = document.cookie; } if(token){ if(that.authKey == "pan139"){ addLog("Webos成功拦截到移动云盘的Token"); } if(that.authKey == "weiyun"){ addLog("Webos成功拦截到微云的Cookie"); } if(that.authKey == "lanzou"){ addLog("Webos成功拦截到蓝奏云的Cookie"); } GM_setValue("setGetWebosToken",""); GM_setValue(that.authKey,token); setTimeout(function(){ top.close(); },1000); } } } },100); } return open.apply(this,args); }; } })();