├── 123pan_unlock.js ├── LICENSE ├── PanelView.png ├── README.md ├── gongzhonghao.png └── icon.ico /123pan_unlock.js: -------------------------------------------------------------------------------- 1 | // ==UserScript== 2 | // @name 123云盘解锁 3 | // @author QingJ 4 | // @namespace https://github.com/QingJ01/123pan_unlock 5 | // @version 1.0.6 6 | // @description 专业的123云盘增强脚本 - 完美解锁会员功能、突破下载限制、去广告、支持自定义用户信息。支持个人网盘与分享页面,可在线配置,界面精美,功能强大,让你的123云盘体验更美好! 7 | // @license Apache Licence 2.0 8 | // @match *://*.123pan.com/* 9 | // @match *://*.123pan.cn/* 10 | // @match *://*.123684.com/* 11 | // @match *://*.123865.com/* 12 | // @match *://*.123952.com/* 13 | // @match *://*.123912.com/* 14 | // @grant GM_setValue 15 | // @grant GM_getValue 16 | // @grant unsafeWindow 17 | // @grant GM_getResourceText 18 | // @grant GM_info 19 | // @grant GM_registerMenuCommand 20 | // @grant GM_setClipboard 21 | // @grant GM_unregisterMenuCommand 22 | // @grant GM_xmlhttpRequest 23 | // @run-at document-start 24 | // @icon data:image/x-icon;base64,AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEAAAMMOAADDDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPt8WAD7fFgC+3xYB/t8WBf7fFhQ+3xYkPt8WMD7fFji+3xY9Px9Wfr8fVn7+3xY+/x9Wfv7fFj7/H1Z+/t8WPv8fVn7/H1Z+/x9Wfv8fVn7/H1Z+/x9Wfv7fVn7+31Z+/t9Wfv7fVn7/H1Z+/x9Wfv8fVn7+3xY+/x9Wfv7fFj7/H1Z+/x9Wfv8fVn7/H1Z+/x9Wfv8fVn7/H1Z+/x9Wfr7fFj1+3xY5Pt8WMP7fFiU+3xYVPt8WBn7fFgI+3xYAvt8WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+3xYAPt8WAD7fFgF+3xYJft8WIL7fFjV/H1Z8ft9Wff8fVn6+31Z/ft9Wf78fVn//H1Z//x9Wf/8fVn//H1Z//t9Wf/8fVn/+31Z//x9Wf/8fVn//H1Z//t9Wf/7fVn/+31Y//t9Wf/7fVn/+31Z//x9WP/8fVn/+31Z//x9Wf/7fVn//H1Z//t9Wf/8fVn/+31Z//x9Wf/8fVn//H1Z//t9Wf/8fVn/+31Z/vt9Wf38fVn7/H1Z9/x9WfL7fFjZ+3xYift8WCr7fFgG+3xYAft8WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+3xYAPt8WAH7fFgQ+3xYc/t8WNn8fVn1/H1Z/fx9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z/fx9Wfb7fFjd+3xYfPt8WBP7fFgC+3xYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+3xYAPt8WAL7fFgm+3xYrvt9We/7fVn9+31Z//t8Wf/7fFj/+3xY//t9Wf/7fVn/+31Z//t9Wf/7fFj/+3xY//t8Wf/7fVn/+31Z//t9Wf/7fFj/+3xY//t8Wf/7fVn/+31Z//t9Wf/7fVj/+3xY//t8WP/7fFj/+31Y//t9Wf/7fVn/+31Z//t8Wf/7fFj/+3xY//t9Wf/7fVn/+31Z//t8Wf/7fFj/+3xY//t9Wf/7fVn/+31Z//t9Wf/7fFj/+3xY//t8Wf/7fVn/+31Z/vt9WfD7fFi2+3xYLft8WAP7fFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+3xYAPt8WAL7fFgx+3xYxvt9Wff7fFj/+3xY//t8WP/7fVn/+3xY//t8WP/7fVj/+31Z//t9Wf/7fVj/+3xY//t8WP/7fVn/+3xY//t8WP/7fFj/+31Z//t9WP/7fFj/+3xY//t8WP/7fVj/+31Y//t8WP/7fFj/+3xY//t9WP/7fFj/+3xY//t8WP/7fVj/+31Y//t9Wf/7fFj/+3xY//t8WP/7fVn/+3xY//t8WP/7fVj/+31Z//t9Wf/7fVj/+3xY//t8WP/7fVn/+3xY//t8WP/7fFj/+31Z+ft8WMz7fFg5+3xYA/t8WAAAAAAAAAAAAAAAAAAAAAAA+3xYAPt8WAH7fFgp+3xYxvx9WPn8fVj//H1Y//x9Wf/8fVj//H1Y//x9WP/8fVn//H1Y//x9WP/8fVj//H1Z//x9WP/8fVj//H1Y//x9Wf/8fVj//H1Y//x9WP/8fVn//H1Y//x9WP/8fVj//H1Z//x9WP/8fVj//H1Y//x9WP/8fVn//H1Y//x9WP/8fVj//H1Z//x9WP/8fVj//H1Y//x9Wf/8fVj//H1Y//x9WP/8fVn//H1Y//x9WP/8fVj//H1Z//x9WP/8fVj//H1Y//x9Wf/8fVj//H1Y//x9WP/8fVn7+3xYzft8WDH7fFgC+3xYAAAAAAAAAAAAAAAAAPt8WAH7fFgT+3xYtfx9Wfj7fVj//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//t9WP/8fVn//H1Z//t9Wf/8fVn//H1Z//x9Wf/8fVn/+31Y//x9Wf/8fVn//H1Z//x9Wf/7fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn/+31Z//x9Wf/7fVj//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//t9WP/8fVn//H1Z//t9Wf/8fVn//H1Z//x9Wf/8fVn/+31Y//x9Wf/8fVn//H1Z//x9Wfn7fFi++3xYGft8WAEAAAAAAAAAAPt8WAD7fFgG+3xYgfx9WfD8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z8/t8WI/7fFgG+3xYAAAAAAD7fFgC+3xYMft8WOD8fFn+/HxZ//x8Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fFn//HxZ//x8Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fFn//HxZ//x8Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fFn//HxZ//x8Wf77fFjk+3xYPPt8WAMAAAAA+3xYB/t8WJb7fFj3+3xY//t8WP/7fFj/+3xY//t8Wf/7fFj/+3xY//t8WP/7fFj/+3xZ//t8WP/7fFn/+3xZ//t8Wf/7fFn/+3xY//t8WP/7fFj/+3xY//t8Wf/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8Wf/7fFj/+3xY//t8WP/7fFj/+3xZ//t8WP/7fFn/+3xZ//t8Wf/7fFn/+3xY//t8WP/7fFj/+3xY//t8Wf/7fFj/+3xY//t8WP/7fFj/+3xY+Pt8WKT7fFgI+3xYAft8WCL7fFjg/HxY/vx8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP77fFnm+3xYLft8WAX7fFhj/HxY8/x8Wf/7fFj/+3xY//x8Wf/7fFj/+3xZ//x8WP/8fFj/+3xZ//x8Wf/8fFj//HxZ//x8Wf/8fFn//HxZ//x8WP/8fFn/+3xZ//x8WP/8fFn/+3xZ//t8WP/8fFj//HxY//t8WP/8fFj//HxY//x8WP/8fFj//HxZ//x8WP/8fFj//HxY//x8WP/7fFj//HxY//x8Wf/7fFj/+3xZ//x8WP/8fFj/+3xZ//x8Wf/8fFj//HxZ//x8Wf/8fFn//HxZ//x8WP/8fFn/+3xZ//x8WP/8fFn/+3xZ//t8WP/8fFj/+3xY//t8WP/8fFn//HxY9Pt8WHL7fFgJ+3xYovt8Wfn8fFn//HxZ//t8Wf/8fFn/+3xY//x8Wf/8fVn/+3xY//x8Wf/8fFn//H1Z//x8Wf/7fFn/+3xZ//t8Wf/7fFn//HxZ//x8Wf/7fFj//HxZ//x8Wf/7fFj//H1Y//x8Wf/8fFn//HxZ//x8Wf/8fFn//HxZ//x8Wf/8fFn/+3xZ//x8Wf/8fFn/+3xZ//t8Wf/8fFn/+3xY//x8Wf/8fVn/+3xY//x8Wf/8fFn//H1Z//x8Wf/7fFn/+3xZ//t8Wf/7fFn//HxZ//x8Wf/7fFj//HxZ//x8Wf/7fFj//H1Z//x8Wf/8fFn//HxZ//x9Wfr7fFix+3xYDPt8WND7fVj9+31Z//t9WP/7fVn/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVn/+31Y//t9WP/7fVj/+31Y//t9WP/7fVn/+31Y//t9WP/7fVn/+31Y//t9WP/7fVj/+31Y//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Y//t9WP/7fVn/+31Z//t9Wf/7fVn/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVn/+31Y//t9WP/7fVj/+31Y//t9WP/7fVn/+31Y//t9WP/7fVn/+31Y//t9WP/7fVj/+31Y//t9Wf/7fVn++3xY3Pt8WBn7fFjo/H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9WO37fFgm+3xY7/t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFjw+3xYLPx8WPD8fVn//H1Z//x9Wf/8fVj++3xZw/t8WK77fFit+3xYrft8WK37fFis/HxY2Px8WPr8fFj/+3xY3/t8WLb7fFis+3xYrft8WK37fFit+3xYrft8WK37fFit+3xYrft8WK37fFit+3xYrft8WK37fFit+3xYrft8WK37fFit+3xYrft8WKv7fFjC/HxY7/x9WP/8fFj//HxY5/t8WLb7fFis+3xYrft8WK37fFit+3xYrft8WK37fFit+3xYr/t8WLP7fFi8+3xYzPt8WOf7fFj//HxY//x8WP/8fVj//H1Y//x8WP/8fVj//H1Z//x9Wf/8fVn//HxY8ft8WCz7fVjw/H1Y//t9WP/7fVj//H1Y/Pt8WV77fFgn+3xYI/t8WCP7fFgj+3xYIvx9WZb8fVjx+31Y//t8WKn7fFg7+3xYIft8WCP7fFgj+3xYI/t8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Wf/7fVn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+31Z//t9Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFnk+3xYXvt8WAAAAAAAAAAAAPt8WAD7fFgD+3xYOft8Wfv7fFn/+3xZ//t8Wf/7fFnx+3xYLPx8WfD8fFn//HxZ//x8Wf/8fVn7+3xZRPt8WQX7fFkAAAAAAAAAAAD8fFkA/HxZhfx9We/8fFn/+3xYoft8WB77fFgAAAAAAAAAAAD7fFgA+3xYSft8WdP8fFn//HxZ//x9Wf/8fVn//HxZ//x8Wf/8fFn//HxZ//x8Wf/8fFn//HxZ//x8Wf/8fFn//HxZ//x8Wf/8fVn//H1Z//x8Wf/8fFn//HxZ//x8Wf/8fFn//HxZ//x8Wf/8fFn//HxZ//x8Wf/8fFn//H1Z6vt8WHX7fFgAAAAAAAAAAAD7fFgA+3xYBft8WEL8fVn7/HxZ//x8Wf/8fFn//HxZ8ft8WCz7fFjw+3xY//t8WP/7fFj/+3xY+/t8WUT7fFkF+3xZAAAAAAAAAAAA/H1YAPx9WIX8fFjv+3xY//t8WLD7fFgj+3xYAAAAAAAAAAAA+3xYAPt8WCf7fFjB+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WOD7fFhL+3xYAAAAAAAAAAAA+3xYAPt8WAn7fFhi+3xY/Pt8WP/7fFj/+3xY//t8WPH7fFgs+3xY8Pt8Wf/7fFn/+3xY//t8WPv7fFlE+3xZBft8WQAAAAAAAAAAAPx9WQD8fVmF+3xZ7/t8Wf/7fFjM+3xYLPt8WAAAAAAAAAAAAPt8WAD7fFgF+3xYd/t8WOf7fFj/+3xZ//t8WP/7fFj/+3xY//t8Wf/7fFj/+3xY//t8WP/7fFj/+3xY//t8Wf/7fFj/+3xY//t8WP/7fFn/+3xZ//t8WP/7fFj/+3xY//t8WP/7fFn/+3xZ//t8WP/7fFj/+3xY//t8WOn7fFiG+3xYEft8WAAAAAAAAAAAAPt8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WO/7fFj/+3xY//t8WP/7fFj/+3xY8ft8WCz8fVjw/H1Y//x9WP/8fVj//H1Y+/t8WET7fFkF+3xZAAAAAAAAAAAA/H1ZAPx9WYX8fVnv/H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/7fVj2+3xYkft8WB37fFgAAAAAAAAAAAD7fFgA+ntXAvt8WHn7fFj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//t9WP/7fFj6+3xY0/t8WHT7fFgM+3xYAAAAAAAAAAAA+3xYAPt8WBb7fFi1/HxY/fx9WP/8fVj//H1Y//x9WPH7fFgs+31Z8Pt9Wf/7fVn/+31Z//t9Wfv7fFlE+3xYBft8WAAAAAAAAAAAAPx9WQD8fVmF+31Z7/t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wdn7fFhO+3xYAAAAAAAAAAAA+XpWAPt8WAD7fFhp+3xY//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fFjd+3xYQPt8WAAAAAAAAAAAAPt8WAD7fFgL+3xYcPt9Wfz7fVn/+31Z//t9Wf/7fVnx+3xYLPx9WfD8fVj//H1Z//x9Wf/8fVn7+3xZRPt8WQX7fFkAAAAAAAAAAAD7fFgA+3xYhfx9WO/8fVn//H1Z//x9Wf/8fVn//H1Z//x9WP/8fVj//H1Z//x9Wf/8fVn//H1Y//x9Wf/8fVn//H1Z//x9Wf/8fVno+3xYXPt8WAAAAAAAAAAAAAAAAAD7fFgA+3xYZPt8WPr8fVn//H1Z//x9WP/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Y6Pt8WGz7fFgAAAAAAAAAAAD7fFgA+3xYBvt8WEv8fVn7/H1Z//x9Wf/8fVj//H1Z8ft8WCz8fVnw/H1Z//x9Wf/8fVn//H1Z+/t8WET7fFgF+3xYAAAAAAAAAAAA/HxZAPx8WYX8fVnv/H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn/+3xY0Pt8WEf7fFgAAAAAAAAAAAD7fFgA+3xYAPt8WGj7fFj+/H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9WeL7fFhU+3xYAAAAAAAAAAAA+3xYAPt8WAT7fFhB/H1Z+/x9Wf/8fVn//H1Z//x9WfH7fFgs+31Y8Pt8WP/7fFj/+3xY//t8WPv7fFhE+3xYBft8WAAAAAAAAAAAAPx9WAD8fViF+3xY7/t8WP/7fFj/+3xY//t9WP/7fVj/+3xY//t8WP/7fVj/+31Y//t9WP/7fVj/+3xY//t8WP/7fFj/+3xY7vt8WIX7fFgZ+3xYAAAAAAAAAAAA+3xYAPp7WAP7fFh6+3xY//t8WP/7fFj/+31Y//t9WP/7fVj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WPf7fFit+3xYG/t8WAAAAAAAAAAAAPt8WAD7fFgH+3xYVPt8WPv7fFj/+3xY//t9WP/7fFjx+3xYLPx9WPD8fVj//H1Y//x9WP/8fVj7+3xYRPt8WAX7fFgAAAAAAAAAAAD7fFgA+3xYhfx9WO/8fVj//H1Y+/x9WMz8fVi8/H1Yvfx9WL38fVi9/H1Yvfx9WL38fVi9/H1Yvfx9WL38fVi6+3xYrft8WHj7fFgj+3xYAAAAAAAAAAAAAAAAAPt8WAD7fFgc/HxYnPx9WP/8fVj//H1Y7Px9WMX8fVi9/H1Yvfx9WL38fVi9/H1Yvfx9WL38fVi9/H1YvPx9WLX7fFiT+3xYOvt8WAAAAAAAAAAAAAAAAAD7fFgA+3xYDvt8WIP8fVj8/H1Y//x9WP/8fVj//H1Y8ft8WCz8fFjw+3xY//t8WP/8fFj/+3xY+/t8WET7fFkF+3xZAAAAAAAAAAAA/HxYAPx8WIX7fFjv+3xZ//x8WPP8fFhV+31YIvx9WCX8fVgl/H1YJfx9WCX8fVgl/H1YJfx9WCX8fFgk+3xYIPt8WAv7fFgAAAAAAAAAAAAAAAAAAAAAAPt8WAD7fFgA+3xYRvt8WND7fFj/+3xY//t8WL/7fFg9/H1YI/x9WCX8fVgl/H1YJfx9WCX8fVgl+31YJfx8WCL7fFgX+3xYA/t8WAAAAAAAAAAAAAAAAAD7fFgA+3xYAPt8WCD7fFjJ+3xY/vx8WP/7fFj/+3xY//x8WPH7fFgs+3xY8Pt8Wf/7fFj/+3xY//t8WPv7fFhE+3xYBft8WAAAAAAAAAAAAPx9WQD8fVmF+3xY7/t8Wf/8fFjx/HxYOPx8WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7fFgA+3xYEvt8WIn7fFj9+3xY//t8WP/7fFiz+3xYG/t8WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+3xYAPt8WAv7fFho+3xY+vt8WP/7fFj/+3xY//t8Wf/7fFjx+3xYLPx8WfD8fFn//HxZ//x8Wf/8fFn7+3xZRPt8WQX7fFkAAAAAAAAAAAD7fFgA+3xYhfx8We/8fFn//HxY8vx8WDj8fFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7fFgA+3xYDft8WGj8fFnc/HxZ//x8Wf/8fFn//HxZtPt8WBz7fFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+3xYAPt8WAf7fFhL+3xY2fx8Wf78fFn//HxZ//x8Wf/8fFn//HxZ8ft8WCz8fVnw/H1Z//x9Wf/8fVn//H1Z+/t8WUL7fFkE+3xZAAAAAAAAAAAA/HxYAPx8WIT8fVnu/H1Z//x8WPH8fFg4/HxYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPt8WAD7fFgI+3xYI/t8WG/7fFjW/H1Z//x9Wf/8fVn//H1Z//x9WbP7fFgb+3xYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7fFgA+3xYA/t8WBz7fFhX+3xYzfx9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9WfH7fFgs+3xY8Pt8WP/7fFj/+3xY//t8WPz7fFli/H1ZLfx9WSn8fVkp/H1ZKfx9WSj8fVmY+3xY8ft8WP/7fFj0/HxYWPx9WSb8fVkp/H1ZKfx9WSn8fVkp/H1ZKfx9WSn8fVkp/H1ZKft9WCn7fFgp+3xYLPt8WDP7fFg/+3xYY/t8WK77fFjv+3xY//t8WP/7fFj/+3xY//t8WP/7fFjA+3xYQfx9WSf8fVkp/H1ZKfx9WSn8fVkp/H1ZKfx9WSn8fVkp/H1YKft8WCv7fFgv+3xYN/t8WFL7fFiV+3xY6vt8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFjx+3xYK/x8WPD8fFj//HxY//x8WP/8fFj++3xZy/x9Wbn8fVm4/H1ZuPx9Wbj8fVm4/H1Z3fx8WPr8fFj//HxY+/x8WMj8fVm3/H1ZuPx9Wbj8fVm4/H1ZuPx9Wbj8fVm4/H1ZuPx9Wbj8fVi4+3xYuft8WMD7fFjS+3xY7fx8WP78fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY6vx8WMD8fVm3/H1ZuPx9Wbj8fVm4/H1ZuPx9Wbj8fVm4/H1YuPx9WLn7fFi++3xYx/t8WNz7fFj7/HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY8ft8WCX8fFnu/HxY//x8WP/8fFj//HxY//x8Wf/8fFj//HxY//x8WP/8fFj//H1Z//x8WP/8fFj//H1Z//x8WP/8fFj//H1Z//x8WP/8fFj//H1Z//x8WP/8fFj/+3xY//t8WP/8fFn//HxZ//x8Wf/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxZ//x8Wf/8fFj//HxY//x8WP/8fFj//H1Z//x8WP/8fFj//H1Z//x8WP/8fFj//H1Z//x8WP/8fFj//H1Z//x8WP/8fFj/+3xY//x8WP/8fFn//HxY//x8Wf/8fFj//HxY//x8WfD7fFgX+3xY5ft9WP77fVj/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVj/+31Z//t9WP/7fVn/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+31Z//t9WP/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9WP/7fVn/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+31Z//t9WP/7fVn/+31Y//t9Wf/7fVj/+31Z//t9Wf/7fVn/+31Y//t9WP/7fVjr+3xYDPt8WM38fVn8/H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn9+3xY2vt8WAn7fFie+3xY+Pt8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t9WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t9WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY//t8WP/7fFj/+3xY+vt8WK37fFgF+3xYXvt9WPL7fVj/+3xY//t8WP/7fVj/+31Y//t8WP/7fVj/+31Y//t8WP/7fVj/+31Y//t8WP/7fVj/+31Y//t8WP/7fVj/+31Y//t8WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fFj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+3xY//t9WP/7fVj/+31Y//t8WP/7fVj/+31Y//t8WP/7fVj/+31Y//t8WP/7fVj/+31Y//t8WP/7fVj/+31Y//t8WP/7fVj/+31Y//t9WP/7fVj/+31Y//t8WP/7fFj/+31Y//t9WPT7fFhs+3xYAft8WB77fFjd/H1Y/vx9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fFj//H1Y//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fFj//H1Y//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP/8fVj//H1Y//x9WP77fFjj+3xYKQAAAAD7fFgH+3xYkPt9Wfb7fVj//H1Y//t9WP/7fVj/+31Z//t9WP/7fVj/+31Y//x9Wf/7fVj/+31Z//t9WP/7fVj/+31Z//t9WP/8fVn/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj//H1Y//t9WP/7fVn/+31Z//t9Wf/7fVn/+31Y//t9Wf/7fVn/+31Z//t9Wf/7fVj//H1Y//t9WP/7fVj/+31Z//t9WP/7fVj/+31Y//x9Wf/7fVj/+31Z//t9WP/7fVj/+31Z//t9WP/8fVn/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj//H1Y//t9WP/7fVn4+3xYnvt8WAcAAAAA+3xYAvt8WCv7fFjc+31Z/ft9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn++3xY4vt8WDb7fFgCAAAAAPt8WAD7fFgF+3xYefx9We78fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z//x9Wf/8fVn//H1Z8ft8WIb7fFgG+3xYAAAAAAAAAAAA+3xYAPt8WBD7fFiu+31Z9vt9Wf/7fVn/+31Z//t9Wf/7fVn/+3xZ//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+3xZ//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t8Wf/7fVn/+3xZ//t8Wf/7fVn/+31Z//t9Wf/7fFn/+3xZ//t9Wf/7fFn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+3xZ//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z//t9Wf/7fVn/+3xZ//t9Wf/7fVn/+31Z//t9Wf/7fVn/+31Z+Pt8WLf7fFgV+3xYAQAAAAAAAAAAAAAAAPt8WAD7fFgB+3xYI/t8WMD8fFj4/HxY//x8Wf/8fFj//HxZ//x8WP/8fFj//HxY//x8WP/8fFn//HxZ//x8WP/8fFj//HxY//x8WP/8fFn//HxY//x8Wf/8fFj//HxY//x8WP/8fFj//HxY//x8Wf/8fFj//HxY//x8WP/8fFj//HxY//x8Wf/8fFn//HxY//x8WP/8fFj//HxY//x8Wf/8fFj//HxZ//x8WP/8fFj//HxY//x8WP/8fFn//HxZ//x8WP/8fFj//HxY//x8WP/8fFn//HxY//x8Wf/8fFj//HxY+vt8WMj7fFgr+3xYAvt8WAAAAAAAAAAAAAAAAAAAAAAA+3xYAPt8WAL7fFgr+3xYvvx8WPX8fFn+/HxY//x8WP/8fFj//HxY//x8WP/8fFn//HxZ//x8Wf/8fFn//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY//x8WP/8fFn//HxY//x8WP/8fFj//HxY//x8WP/8fFn//HxZ//x8Wf/8fFn//HxY//x8WP/8fFj//HxY//x8WP/8fFj//HxY9/t8WMT7fFgx+3xYAvt8WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD7fFgA+3xYAvt8WCD7fFil+3xZ6/t8Wf37fFn/+3xZ//t8Wf/7fFn/+31Z//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+31Z//t8Wf/7fFn/+3xZ//t8Wf/7fFn/+3xZ//t8Wf/7fFn9+3xZ7ft8WK77fFgm+3xYAvt8WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPt8WAD7fFgB+3xYC/t8WGf7fFjT+31Y8/t9WPz7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+3xY//t9WP/7fFj/+31Y//t8WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+31Y//t8WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+31Y//t9WP/7fVj/+3xY//t9WP37fFj0+3xY1vt8WHD7fFgO+3xYAft8WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+nxYAPp8WAD7fFgE+3xYHft8WHb7fFjM/H1Z7fx9WfX8fVn5/H1Z/Px9Wf38fVn+/H1Z/vx9Wf78fVn+/H1Z/vx9Wf78fVn+/H1Z/vx9Wf78fVn+/H1Z/vx9Wf78fVn+/H1Z/vx9Wf78fVn+/H1Z/vx9Wf78fVn+/H1Z/vx9Wf78fVn+/H1Z/vx9Wf78fVn+/H1Z/vx9Wf78fVn+/H1Z/vx9Wf78fVn+/H1Z/fx9Wfz8fVn5/H1Z9vx9We77fFjR+3xYfPt8WCH7fFgF+3xYAPt8WAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+3xYAPt8WAH7fFgF+3xYD/t8WED7fFh7+3xYqPt8WMf7fFjZ/H1Z3/x9WeD8fVnf/H1Z3/x9Wd/8fVnf/H1Z3/x9Wd/8fVnf/H1Z3/x9Wd/8fVnf/H1Z3/x9Wd/8fVnf/H1Z3/x9Wd/8fVnf/H1Z3/x9Wd/8fVnf/H1Z3/x9Wd/8fVnf/H1Z3/x9Wd/8fVnf/H1Z3/x9Wd/8fVnf/H1Z3/t8WNv7fFjK+3xYrPt8WH77fFhF+3xYEvt8WAb7fFgB+3xYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+ntXAPp7VwD7fFgD+3xYB/t8WAr7fFgM+3xYDfx9WQ38fVkN/H1ZDfx9WQ38fVkN/H1ZDfx9WQ38fVkN/H1ZDfx9WQ38fVkN/H1ZDfx9WQ38fVkN/H1ZDfx9WQ38fVkN/H1ZDfx9WQ38fVkN/H1ZDfx9WQ38fVkN/H1ZDfx9WQ38fVkN/H1ZDfx9WQ38fVkN/H1ZDfx9WQ37fFgN+3xYDPt8WAr7fFgH+3xYBPt8WAH7fFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAH/8AAAAAAAAH/gAAAAAAAAP8AAAAAAAAAfgAAAAAAAAA8AAAAAAAAABwAAAAAAAAAGAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPB//+B/+AAA8H//4H/+AADwf//gf/8AAPB4AAAAH4AA8HgAAAAPgADweAAAAAeAAPB4AAAAB4AA8HgAAAAHgADweAAAAAeAAPB4AAAAB4AA8HwAAAAPAADwPgAAAD4AAPA//wAf/AAA8B//gB/8AADwB//AH/wAAPAAB+AAPgAA8AAD4AAPAADwAAHgAAeAAPAAAfAAB4AA8AAB8AAHgADwAAHwAAeAAPAAAeAAB4AA8AAD4AAPgADwAA/gAB8AAPB//8B//wAA8H//gH/+AADwf/4Af/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAMAAAAAAAAABwAAAAAAAAAHgAAAAAAAAA/AAAAAAAAAH+AAAAAAAAA/8AAAAAAAAH/8AAAAAAAB//+AAAAAAA/8= 25 | // ==/UserScript== 26 | 27 | (function() { 28 | 'use strict'; 29 | 30 | // 从存储中读取配置,如果没有存储过则使用默认值 31 | var user = { 32 | vip: GM_getValue('vip', 1), // 开启会员修改(总开关) 33 | svip: GM_getValue('svip', 1), // 显示为超级会员 34 | pvip: GM_getValue('pvip', 0), // 显示为长期会员 35 | ad: GM_getValue('ad', 1), // 关闭广告 36 | name: GM_getValue('name', "QingJ"), // 自定义用户名 37 | photo: GM_getValue('photo', "http://q.qlogo.cn/headimg_dl?dst_uin=2903609300&spec=640&img_type=jpg"), // 自定义头像 38 | mail: GM_getValue('mail', ""), // 邮箱 39 | phone: GM_getValue('phone', ""), // 手机号 40 | id: GM_getValue('id', ""), // 用户ID 41 | level: GM_getValue('level', 128), // 成长容量等级 42 | endtime: GM_getValue('endtime', 253402185600), // 会员过期时间 43 | debug: GM_getValue('debug', 0), // 调试模式 44 | } 45 | 46 | // 保存原始的XMLHttpRequest和fetch方法 47 | const originalXHR = unsafeWindow.XMLHttpRequest; 48 | const originalFetch = unsafeWindow.fetch; 49 | 50 | // 创建新的XMLHttpRequest类 51 | function CustomXHR() { 52 | const xhr = new originalXHR(); 53 | 54 | // 保存原始方法的引用并绑定正确的this上下文 55 | const originalOpen = xhr.open.bind(xhr); 56 | const originalSetRequestHeader = xhr.setRequestHeader.bind(xhr); 57 | 58 | // 重写open方法 59 | xhr.open = function(method, url, ...args) { 60 | try { 61 | url = new URL(url, location.origin).href; 62 | xhr.url = url; 63 | 64 | // 检查是否需要拦截请求 65 | if (url.includes('web_logs') || url.includes('metrics')) { 66 | throw new Error('【123 云盘解锁】已屏蔽此数据收集器'); 67 | } 68 | 69 | return originalOpen(method, url, ...args); 70 | } catch (e) { 71 | console.error('XHR open error:', e); 72 | throw e; 73 | } 74 | }; 75 | 76 | // 重写setRequestHeader方法 77 | xhr.setRequestHeader = function(header, value) { 78 | try { 79 | let info = reddem(); 80 | let headers = { 81 | "user-agent": info.ua, 82 | "platform": info.os.toLowerCase(), 83 | "app-version": info.version, 84 | "x-app-version": info.versionX 85 | }; 86 | 87 | if (header.toLowerCase() in headers) { 88 | value = headers[header.toLowerCase()]; 89 | } 90 | 91 | return originalSetRequestHeader(header, value); 92 | } catch (e) { 93 | console.error('XHR setRequestHeader error:', e); 94 | return originalSetRequestHeader(header, value); 95 | } 96 | }; 97 | 98 | // 添加响应拦截 99 | xhr.addEventListener('readystatechange', function() { 100 | if (this.readyState === 4) { 101 | try { 102 | handleResponse(xhr); 103 | } catch (e) { 104 | console.error('XHR response handler error:', e); 105 | } 106 | } 107 | }); 108 | 109 | return xhr; 110 | } 111 | 112 | // 处理响应数据 113 | function handleResponse(xhr) { 114 | if (!xhr.url) return; 115 | 116 | let res; 117 | try { 118 | res = JSON.parse(xhr.responseText); 119 | } catch (e) { 120 | return; 121 | } 122 | 123 | if (xhr.url.includes('api/user/info') && user.vip === 1) { 124 | modifyUserInfo(res); 125 | } else if (xhr.url.includes('file/download_info') || 126 | xhr.url.includes('share/download_info') || 127 | xhr.url.includes('file/batch_download_info')) { 128 | modifyDownloadInfo(res, xhr.url); 129 | } else if (xhr.url.includes('user/report/info') && user.vip === 1) { // Added this check for user report info 130 | if (res && res.data) { 131 | // Ensure vipType, vipSub, developSub are consistent with the displayed VIP level 132 | res.data.vipType = user.pvip ? 3 : (user.svip ? 2 : 1); 133 | res.data.vipSub = user.pvip ? 3 : (user.svip ? 2 : 1); 134 | res.data.developSub = user.pvip ? 3 : (user.svip ? 2 : 1); 135 | } 136 | } 137 | 138 | 139 | // 更新响应 140 | if (res) { 141 | if (!xhr._responseModified) { 142 | xhr._responseModified = true; 143 | const responseText = JSON.stringify(res); 144 | 145 | // Re-define response and responseText properties to return the modified content 146 | Object.defineProperties(xhr, { 147 | 'response': { 148 | configurable: true, 149 | enumerable: true, 150 | get: () => responseText 151 | }, 152 | 'responseText': { 153 | configurable: true, 154 | enumerable: true, 155 | get: () => responseText 156 | } 157 | }); 158 | } 159 | } 160 | } 161 | 162 | // 修改用户信息 163 | function modifyUserInfo(res) { 164 | if (!res.data) return; 165 | 166 | res.data.Vip = true; 167 | // Corrected VipLevel logic 168 | res.data.VipLevel = user.pvip === 1 ? 3 : (user.svip === 1 ? 2 : 1); 169 | 170 | if (user.ad === 1) res.data.IsShowAdvertisement = false; 171 | 172 | // Ensure UserVipDetail exists for consistency 173 | if (!res.data.UserVipDetail) { 174 | res.data.UserVipDetail = {}; 175 | } 176 | res.data.UserVipDetail.VipCode = res.data.VipLevel; 177 | 178 | 179 | if (user.pvip === 1) { // 长期会员 180 | res.data.VipExpire = "永久有效"; 181 | res.data.UserVipDetail.UserPermanentVIPDetailInfos = [{ 182 | VipDesc: "长期VIP会员", 183 | TimeDesc: " 永久有效", 184 | IsUse: true 185 | }]; 186 | res.data.UserVipDetailInfos = []; // Clear other VIP infos if permanent 187 | } else if (user.svip === 1) { // 超级会员 188 | let time = new Date(user.endtime * 1000); 189 | res.data.VipExpire = time.toLocaleString(); 190 | res.data.UserVipDetailInfos = [{ 191 | VipDesc: "SVIP 会员", 192 | TimeDesc: time.toLocaleDateString() + " 到期", 193 | IsUse: time >= new Date() 194 | }]; 195 | } else { // 普通会员 196 | let time = new Date(user.endtime * 1000); 197 | res.data.VipExpire = time.toLocaleString(); 198 | res.data.UserVipDetailInfos = [{ 199 | VipDesc: "VIP 会员", 200 | TimeDesc: time.toLocaleDateString() + " 到期", 201 | IsUse: time >= new Date() 202 | }]; 203 | } 204 | 205 | if (user.name) res.data.Nickname = user.name; 206 | if (user.photo) res.data.HeadImage = user.photo; 207 | if (user.mail) res.data.Mail = user.mail; 208 | if (user.phone) res.data.Passport = Number(user.phone); 209 | if (user.id) res.data.UID = Number(user.id); 210 | if (user.level) res.data.GrowSpaceAddCount = Number(user.level); 211 | } 212 | 213 | // 修改下载信息 214 | function modifyDownloadInfo(res, url) { 215 | if (!res.data) return; 216 | 217 | let downloadUrl = res.data.DownloadUrl || res.data.DownloadURL; 218 | if (!downloadUrl) return; 219 | 220 | try { 221 | let originURL = new URL(downloadUrl); 222 | if (originURL.origin.includes("web-pro")) { 223 | let directURL = new URL(decodeURIComponent(atob(originURL.searchParams.get('params'))), originURL.origin); 224 | directURL.searchParams.set('auto_redirect', 0); 225 | originURL.searchParams.set('params', btoa(directURL.href)); 226 | downloadUrl = originURL.href; 227 | } else { 228 | originURL.searchParams.set('auto_redirect', 0); 229 | let newURL = new URL('https://web-pro2.123952.com/download-v2/', originURL.origin); 230 | newURL.searchParams.set('params', btoa(encodeURI(originURL.href))); 231 | newURL.searchParams.set('is_s3', 0); 232 | downloadUrl = decodeURIComponent(newURL.href); 233 | } 234 | 235 | if (res.data.DownloadUrl) res.data.DownloadUrl = downloadUrl; 236 | if (res.data.DownloadURL) res.data.DownloadURL = downloadUrl; 237 | } catch (e) { 238 | console.error('Download URL modification error:', e); 239 | } 240 | } 241 | 242 | // 替换原始的XMLHttpRequest 243 | unsafeWindow.XMLHttpRequest = CustomXHR; 244 | 245 | // 重写fetch 246 | unsafeWindow.fetch = async function(url, options) { 247 | if (url.includes('web_logs') || url.includes('metrics')) { 248 | throw new Error('【123 云盘解锁】已屏蔽此数据收集器'); 249 | } 250 | return originalFetch(url, options); 251 | }; 252 | 253 | // 重写atob 254 | const originalAtob = unsafeWindow.atob; 255 | unsafeWindow.atob = function(str) { 256 | try { 257 | return originalAtob(decodeURIComponent(str)); 258 | } catch (e) { 259 | return originalAtob(str); 260 | } 261 | }; 262 | 263 | // 十连抽(bushi):console.log(reddem(),reddem(),reddem(),reddem(),reddem(),reddem(),reddem(),reddem(),reddem(),reddem()) 264 | let reddem = unsafeWindow.reddem = () => { 265 | const and = { 266 | os: "Android", 267 | vers: ["6.0", "7.1.2", "8.1.0", "9.0", "10.0"] 268 | }; 269 | const ios = { 270 | os: "iOS", 271 | vers: ["12.0", "13.4", "14.0", "15.0"] 272 | }; 273 | 274 | const devs = { 275 | "Apple": ios, 276 | "Xiaomi": and, 277 | "Samsung": and, 278 | "Huawei": { 279 | ...and, 280 | hmos: () => (Math.random() < 0.5 ? "HarmonyOS;" : ""), 281 | hmsCore: () => `HMScore ${Math.floor(Math.random() * 7) + 1}.${Math.floor(Math.random() * 10)}.${Math.floor(Math.random() * 10)}.${Math.floor(Math.random() * 1000)};` 282 | }, 283 | "Google": and, 284 | "Oneplus": and, 285 | "Vivo": and, 286 | "Oppo": and 287 | }; 288 | 289 | const appXVers = [ 290 | "2.1.3", "2.1.4", 291 | "2.3.1", "2.3.2", "2.3.4", "2.3.5", 292 | "2.3.6", "2.3.7", "2.3.8", "2.3.9", 293 | "2.3.12", "2.3.13", "2.3.14", 294 | "2.4.0", "2.4.1", "2.4.7" 295 | ]; 296 | const appVers = [ 297 | "38", "39", 298 | "42", "43", "44", "45", 299 | "46", "47", "48", "49", 300 | "50", "54", "55", 301 | "56", "61", "62", "69" 302 | ]; 303 | const appXVer = appXVers[Math.floor(Math.random() * appXVers.length)]; 304 | const appVer = appVers[appXVers.indexOf(appXVer)]; 305 | 306 | const brands = Object.keys(devs); 307 | const brand = brands[Math.floor(Math.random() * brands.length)]; 308 | const { 309 | os, 310 | vers 311 | } = devs[brand]; 312 | 313 | const osVer = vers[Math.floor(Math.random() * vers.length)]; 314 | 315 | return { 316 | ua: `123pan/v${appXVer} (${os}_${osVer};${brand})`, 317 | version: Number(appVer), 318 | versionX: appXVer, 319 | osVersion: osVer, 320 | os: os, 321 | brand: brand 322 | } 323 | } 324 | 325 | // 格式化设置项 326 | const formatSetting = (key, value, comment) => { 327 | const item = document.createElement('div'); 328 | item.style.cssText = ` 329 | padding: 12px; 330 | background: #f8f9fa; 331 | border-radius: 6px; 332 | border: 1px solid #e0e0e0; 333 | `; 334 | 335 | const content = document.createElement('div'); 336 | content.style.cssText = ` 337 | display: flex; 338 | justify-content: space-between; 339 | align-items: center; 340 | flex-wrap: wrap; 341 | gap: 10px; 342 | `; 343 | 344 | const keyElement = document.createElement('strong'); 345 | keyElement.style.cssText = ` 346 | color: #202124; 347 | margin-right: 10px; 348 | flex: 1; 349 | `; 350 | keyElement.textContent = `${key}:`; 351 | content.appendChild(keyElement); 352 | 353 | // 判断设置类型 354 | const isSwitch = typeof value === 'number' && (value === 0 || value === 1); 355 | const isEditable = ['用户名', '头像', '等级'].includes(key); 356 | 357 | if (isSwitch) { 358 | // 创建开关按钮 359 | const switchContainer = document.createElement('div'); 360 | switchContainer.style.cssText = ` 361 | position: relative; 362 | display: inline-block; 363 | width: 44px; 364 | height: 24px; 365 | background: ${value ? '#1a73e8' : '#ccc'}; 366 | border-radius: 12px; 367 | transition: all 0.3s; 368 | cursor: pointer; 369 | flex-shrink: 0; 370 | `; 371 | 372 | const switchKnob = document.createElement('div'); 373 | switchKnob.style.cssText = ` 374 | position: absolute; 375 | top: 2px; 376 | left: ${value ? '22px' : '2px'}; 377 | width: 20px; 378 | height: 20px; 379 | background: white; 380 | border-radius: 50%; 381 | transition: all 0.3s; 382 | box-shadow: 0 2px 4px rgba(0,0,0,0.2); 383 | `; 384 | 385 | switchContainer.appendChild(switchKnob); 386 | 387 | // 添加点击事件 388 | switchContainer.onclick = () => { 389 | let newValue = value === 1 ? 0 : 1; 390 | // 更新用户配置 391 | switch (key) { 392 | case 'VIP状态': 393 | user.vip = newValue; 394 | GM_setValue('vip', newValue); 395 | break; 396 | case 'SVIP显示': 397 | user.svip = newValue; 398 | GM_setValue('svip', newValue); 399 | // 如果 SVIP 关了,长期会员也应该关掉 (因为长期会员是 SVIP 的一个更高层级) 400 | if (newValue === 0 && user.pvip === 1) { 401 | user.pvip = 0; 402 | GM_setValue('pvip', 0); 403 | } 404 | break; 405 | case '长期会员显示': 406 | user.pvip = newValue; 407 | GM_setValue('pvip', newValue); 408 | // 如果长期会员开了,SVIP 必须是开的 409 | if (newValue === 1 && user.svip === 0) { 410 | user.svip = 1; 411 | GM_setValue('svip', 1); 412 | } 413 | break; 414 | case '广告控制': 415 | user.ad = newValue; 416 | GM_setValue('ad', newValue); 417 | break; 418 | case '调试模式': 419 | user.debug = newValue; 420 | GM_setValue('debug', newValue); 421 | break; 422 | } 423 | 424 | // 更新开关状态 425 | switchContainer.style.background = newValue ? '#1a73e8' : '#ccc'; 426 | switchKnob.style.left = newValue ? '22px' : '2px'; 427 | value = newValue; // Update local value 428 | 429 | // 刷新页面以应用更改 430 | location.reload(); 431 | }; 432 | 433 | content.appendChild(switchContainer); 434 | } else if (isEditable) { 435 | // 创建输入框 436 | const inputElement = document.createElement('input'); 437 | inputElement.type = key === '等级' ? 'number' : 'text'; 438 | inputElement.value = value; 439 | inputElement.style.cssText = ` 440 | flex: 2; 441 | padding: 6px 10px; 442 | border: 1px solid #ddd; 443 | border-radius: 4px; 444 | font-size: 14px; 445 | width: 200px; 446 | transition: border-color 0.3s; 447 | `; 448 | 449 | if (key === '等级') { 450 | inputElement.min = 0; 451 | inputElement.max = 128; 452 | } 453 | 454 | // 添加输入框焦点效果 455 | inputElement.addEventListener('focus', () => { 456 | inputElement.style.borderColor = '#1a73e8'; 457 | }); 458 | 459 | inputElement.addEventListener('blur', () => { 460 | inputElement.style.borderColor = '#ddd'; 461 | }); 462 | 463 | // 添加保存按钮 464 | const saveButton = document.createElement('button'); 465 | saveButton.textContent = '保存'; 466 | saveButton.style.cssText = ` 467 | padding: 6px 12px; 468 | background: #1a73e8; 469 | color: white; 470 | border: none; 471 | border-radius: 4px; 472 | cursor: pointer; 473 | font-size: 12px; 474 | margin-left: 8px; 475 | transition: background 0.2s; 476 | `; 477 | 478 | saveButton.onmouseover = () => { 479 | saveButton.style.background = '#1557b0'; 480 | }; 481 | saveButton.onmouseout = () => { 482 | saveButton.style.background = '#1a73e8'; 483 | }; 484 | 485 | // 保存按钮点击事件 486 | saveButton.onclick = () => { 487 | let newValue = inputElement.value; 488 | if (key === '等级') { 489 | newValue = parseInt(newValue); 490 | if (isNaN(newValue) || newValue < 0 || newValue > 128) { 491 | alert('等级必须在 0-128 之间'); 492 | return; 493 | } 494 | } 495 | 496 | // 更新配置 497 | switch (key) { 498 | case '用户名': 499 | user.name = newValue; 500 | GM_setValue('name', newValue); 501 | break; 502 | case '头像': 503 | user.photo = newValue; 504 | GM_setValue('photo', newValue); 505 | break; 506 | case '等级': 507 | user.level = newValue; 508 | GM_setValue('level', newValue); 509 | break; 510 | } 511 | 512 | // 显示保存成功提示 513 | const successTip = document.createElement('span'); 514 | successTip.textContent = '已保存'; 515 | successTip.style.cssText = ` 516 | color: #188038; 517 | font-size: 12px; 518 | margin-left: 8px; 519 | `; 520 | content.appendChild(successTip); 521 | setTimeout(() => successTip.remove(), 2000); 522 | 523 | // 刷新页面以应用更改 524 | location.reload(); 525 | }; 526 | 527 | const inputContainer = document.createElement('div'); 528 | inputContainer.style.cssText = ` 529 | display: flex; 530 | align-items: center; 531 | flex: 2; 532 | `; 533 | inputContainer.appendChild(inputElement); 534 | inputContainer.appendChild(saveButton); 535 | content.appendChild(inputContainer); 536 | } else { 537 | // 非编辑项的显示 538 | const valueElement = document.createElement('span'); 539 | valueElement.style.cssText = ` 540 | color: ${typeof value === 'number' ? '#1a73e8' : '#188038'}; 541 | font-weight: 500; 542 | word-break: break-all; 543 | text-align: right; 544 | flex: 2; 545 | `; 546 | valueElement.textContent = key === '过期时间' ? new Date(value * 1000).toLocaleString() : value; 547 | content.appendChild(valueElement); 548 | } 549 | 550 | item.appendChild(content); 551 | 552 | if (comment) { 553 | const commentElement = document.createElement('div'); 554 | commentElement.style.cssText = ` 555 | margin-top: 8px; 556 | font-size: 12px; 557 | color: #5f6368; 558 | line-height: 1.4; 559 | `; 560 | commentElement.textContent = comment; 561 | item.appendChild(commentElement); 562 | } 563 | 564 | return item; 565 | }; 566 | 567 | function createSettingsPanel() { 568 | // 检查是否已存在面板 569 | if (document.getElementById('vip-settings-panel')) { 570 | return; 571 | } 572 | 573 | // 创建面板容器 574 | const panel = document.createElement('div'); 575 | panel.id = 'vip-settings-panel'; 576 | panel.style.cssText = ` 577 | position: fixed; 578 | bottom: 20px; 579 | right: 20px; 580 | background: linear-gradient(to bottom, rgba(255, 255, 255, 0.98), rgba(250, 250, 250, 0.98)); 581 | backdrop-filter: blur(10px); 582 | padding: 25px; 583 | border-radius: 12px; 584 | box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1); 585 | z-index: 9999; 586 | width: 520px; 587 | font-size: 14px; 588 | max-height: 85vh; 589 | overflow-y: auto; 590 | font-family: Arial, sans-serif; 591 | border: 1px solid rgba(230, 230, 230, 0.7); 592 | scrollbar-width: thin; 593 | scrollbar-color: #1a73e8 #f8f9fa; 594 | `; 595 | 596 | // 创建标题 597 | const title = document.createElement('h3'); 598 | title.textContent = '123云盘VIP设置面板'; 599 | title.style.cssText = ` 600 | margin: 0 0 15px 0; 601 | font-size: 18px; 602 | font-weight: bold; 603 | padding-bottom: 10px; 604 | border-bottom: 2px solid #e0e0e0; 605 | background: linear-gradient(135deg, #1a73e8, #1557b0); 606 | -webkit-background-clip: text; 607 | -webkit-text-fill-color: transparent; 608 | letter-spacing: 0.5px; 609 | `; 610 | panel.appendChild(title); 611 | 612 | // 创建设置列表 613 | const settingsList = document.createElement('div'); 614 | settingsList.style.cssText = ` 615 | display: grid; 616 | gap: 15px; 617 | padding: 20px; 618 | background: rgba(255, 255, 255, 0.5); 619 | border-radius: 8px; 620 | `; 621 | 622 | // 添加所有设置项 623 | const settings = [{ 624 | key: 'VIP状态', 625 | value: user.vip, 626 | comment: '会员修改总开关' 627 | }, 628 | { 629 | key: 'SVIP显示', 630 | value: user.svip, 631 | comment: '显示为超级会员 (关闭将自动关闭长期会员)' 632 | }, 633 | { 634 | key: '长期会员显示', 635 | value: user.pvip, 636 | comment: '显示为长期会员 (开启将自动开启 SVIP 显示)' 637 | }, 638 | { 639 | key: '广告控制', 640 | value: user.ad, 641 | comment: '关闭广告' 642 | }, 643 | { 644 | key: '用户名', 645 | value: user.name, 646 | comment: '自定义用户名' 647 | }, 648 | { 649 | key: '头像', 650 | value: user.photo, 651 | comment: '自定义头像URL' 652 | }, 653 | { 654 | key: '等级', 655 | value: user.level, 656 | comment: '成长容量等级(最高128)' 657 | }, 658 | { 659 | key: '过期时间', 660 | value: user.endtime, 661 | comment: '会员过期时间' 662 | }, 663 | { 664 | key: '调试模式', 665 | value: user.debug, 666 | comment: '调试信息显示级别' 667 | } 668 | ]; 669 | 670 | settings.forEach(setting => { 671 | settingsList.appendChild(formatSetting(setting.key, setting.value, setting.comment)); 672 | }); 673 | 674 | panel.appendChild(settingsList); 675 | 676 | // 添加分隔线 677 | const divider = document.createElement('div'); 678 | divider.style.cssText = ` 679 | height: 1px; 680 | background: linear-gradient(to right, transparent, #e0e0e0, transparent); 681 | margin: 15px 0; 682 | `; 683 | panel.appendChild(divider); 684 | 685 | // 添加交流群按钮 686 | const groupButton = document.createElement('a'); 687 | groupButton.href = 'https://qm.qq.com/cgi-bin/qm/qr?k=7j_1SXC6SUlOKqHfqVk2YMPrWSdf5Js7&jump_from=webapi&authKey=ih1vlkxMeQc9CxE18GjR2WN0x85OQoP7jB78/3UzeJ4hvXw3+eSUNeRMjHjS24lT'; 688 | groupButton.target = '_blank'; 689 | groupButton.style.cssText = ` 690 | display: block; 691 | margin-top: 20px; 692 | padding: 12px 20px; 693 | background: linear-gradient(135deg, #1a73e8, #1557b0); 694 | color: white; 695 | border: none; 696 | border-radius: 8px; 697 | cursor: pointer; 698 | text-align: center; 699 | text-decoration: none; 700 | font-weight: 500; 701 | transition: all 0.3s ease; 702 | box-shadow: 0 2px 6px rgba(26, 115, 232, 0.3); 703 | `; 704 | 705 | // 添加图标和文字 706 | groupButton.innerHTML = ` 707 |
708 | 709 | 710 | 711 | 加入交流群 712 |
713 | `; 714 | 715 | groupButton.onmouseover = () => { 716 | groupButton.style.transform = 'translateY(-2px)'; 717 | groupButton.style.boxShadow = '0 4px 12px rgba(26, 115, 232, 0.4)'; 718 | }; 719 | 720 | groupButton.onmouseout = () => { 721 | groupButton.style.transform = 'translateY(0)'; 722 | groupButton.style.boxShadow = '0 2px 6px rgba(26, 115, 232, 0.3)'; 723 | }; 724 | 725 | panel.appendChild(groupButton); 726 | 727 | // 添加关闭按钮 728 | const closeButton = document.createElement('button'); 729 | closeButton.textContent = '×'; 730 | closeButton.style.cssText = ` 731 | position: absolute; 732 | top: 10px; 733 | right: 10px; 734 | width: 24px; 735 | height: 24px; 736 | border: none; 737 | background: #f44336; 738 | color: white; 739 | border-radius: 50%; 740 | cursor: pointer; 741 | display: flex; 742 | align-items: center; 743 | justify-content: center; 744 | font-size: 18px; 745 | padding: 0; 746 | line-height: 1; 747 | transition: all 0.2s ease; 748 | `; 749 | 750 | closeButton.onmouseover = () => { 751 | closeButton.style.transform = 'rotate(90deg)'; 752 | closeButton.style.background = '#d32f2f'; 753 | }; 754 | 755 | closeButton.onmouseout = () => { 756 | closeButton.style.transform = 'rotate(0)'; 757 | closeButton.style.background = '#f44336'; 758 | }; 759 | 760 | closeButton.onclick = () => panel.remove(); 761 | panel.appendChild(closeButton); 762 | 763 | // 添加自定义滚动条样式 764 | const style = document.createElement('style'); 765 | style.textContent = ` 766 | #vip-settings-panel::-webkit-scrollbar { 767 | width: 8px; 768 | } 769 | #vip-settings-panel::-webkit-scrollbar-track { 770 | background: #f8f9fa; 771 | border-radius: 4px; 772 | } 773 | #vip-settings-panel::-webkit-scrollbar-thumb { 774 | background: #1a73e8; 775 | border-radius: 4px; 776 | } 777 | #vip-settings-panel::-webkit-scrollbar-thumb:hover { 778 | background: #1557b0; 779 | } 780 | `; 781 | document.head.appendChild(style); 782 | 783 | document.body.appendChild(panel); 784 | } 785 | 786 | function addTriggerButton() { 787 | const trigger = document.createElement('button'); 788 | trigger.textContent = '设置面板'; 789 | trigger.style.cssText = ` 790 | position: fixed; 791 | bottom: 20px; 792 | right: 20px; 793 | padding: 8px 16px; 794 | background: #1a73e8; 795 | color: white; 796 | border: none; 797 | border-radius: 6px; 798 | cursor: pointer; 799 | z-index: 9998; 800 | font-size: 14px; 801 | font-weight: 500; 802 | box-shadow: 0 2px 6px rgba(26, 115, 232, 0.3); 803 | transition: all 0.2s ease; 804 | `; 805 | 806 | trigger.onmouseover = () => { 807 | trigger.style.background = '#1557b0'; 808 | trigger.style.boxShadow = '0 4px 8px rgba(26, 115, 232, 0.4)'; 809 | }; 810 | trigger.onmouseout = () => { 811 | trigger.style.background = '#1a73e8'; 812 | trigger.style.boxShadow = '0 2px 6px rgba(26, 115, 232, 0.3)'; 813 | }; 814 | 815 | trigger.onclick = createSettingsPanel; 816 | document.body.appendChild(trigger); 817 | } 818 | 819 | // 使用 MutationObserver 来确保按钮添加到页面上 820 | function waitForBody() { 821 | if (document.body) { 822 | addTriggerButton(); 823 | } else { 824 | setTimeout(waitForBody, 100); 825 | } 826 | } 827 | 828 | // 使用多种方式确保脚本执行 829 | document.addEventListener('DOMContentLoaded', waitForBody); 830 | window.addEventListener('load', waitForBody); 831 | 832 | // 立即尝试执行 833 | waitForBody(); 834 | })(); 835 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright [yyyy] [name of copyright owner] 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. 202 | -------------------------------------------------------------------------------- /PanelView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QingJ01/123pan_unlock/12315e1c706d468ca37d9119e18e0e1bf0b908a0/PanelView.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 123云盘解锁 2 | 3 |
4 | 5 |
6 | version 7 | stars 8 | forks 9 | issues 10 | license 11 |
12 | 让你的123云盘体验更美好 13 |
14 | 15 | ## ✨ 特性 16 | 17 | ### 🎭 会员功能 18 | - **身份显示**: 完美模拟会员/超级会员身份 19 | - **等级提升**: 支持自定义等级(最高128级) 20 | - **过期时间**: 自定义会员过期时间 21 | - **广告移除**: 一键关闭所有广告显示 22 | 23 | ### 🚀 下载增强 24 | - **容量突破**: 解除1GB下载限制 25 | - **场景支持**: 26 | - ✅ 个人网盘页面下载 27 | - ✅ 分享页面文件下载 28 | - ✅ 不限速不限流文件下载 29 | 30 | ### 🎨 个性化 31 | - **用户名称**: 自定义显示昵称 32 | - **头像设置**: 自定义头像图片 33 | - **界面美化**: 精心设计的设置面板 34 | - **便捷操作**: 快速切换各项功能 35 | 36 | ## 🌈 界面预览 37 | 38 |
39 | 40 |

设置面板界面 - 简洁而强大

41 |
42 | 43 | ## 📦 安装使用 44 | 45 | ### 安装步骤 46 | 1. 安装 [Tampermonkey](https://www.tampermonkey.net/) 浏览器扩展 47 | 2. 点击 [安装脚本](https://greasyfork.org/zh-CN/scripts/519353-123%E4%BA%91%E7%9B%98%E8%A7%A3%E9%94%81) 跳转至 Greasy Fork 48 | 3. 点击安装按钮完成安装 49 | 50 | ### 使用方法 51 | 1. 访问 [123云盘](https://www.123pan.com) 网站 52 | 2. 点击右下角 `设置面板` 按钮 53 | 3. 在面板中配置所需功能: 54 | - 开启/关闭会员模拟 55 | - 切换会员等级显示 56 | - 自定义用户信息 57 | - 调整其他设置项 58 | 59 | ## 🔄 更新日志 60 | ### v1.0.6 (2025-05-21) 61 | - 🔧 用户报告信息同步: 确保用户报告信息与脚本设置的保持一致 62 | - ⚡️ 增加“长期会员”选项 用户可设置为长期会员状态 63 | - 🐛 对下载链接的转换逻辑进行了细微调整 以提高兼容性和稳定性 64 | - 💻 更新了版本号 65 | 66 | ### v1.0.5 (2025-02-18) 67 | - ⚡️ 新适配123云盘新域名123912.com 68 | 69 | ### v1.0.4 (2025-01-18) 70 | - 🔧 修复部分问题 71 | - ⚡️ 优化脚本性能 72 | 73 | ### v1.0.3 (2025-01-01) 74 | - 🔧 修复了 XMLHttpRequest 中 this 指向问题 75 | - ⚡️ 优化了请求拦截处理 76 | - 🐛 修复了响应拦截可能导致的内存泄漏 77 | - 💻 改进了异常情况的处理逻辑 78 | 79 | ### v1.0.2 (2024-12-07) 80 | - 🔧 修复了响应处理导致的栈溢出问题 81 | - ⚡️ 优化了脚本整体性能 82 | - 🐛 修复了一些已知问题 83 | 84 | ### v1.0.1 (2024-12-02) 85 | - 🐛 修复了部分浏览器中脚本无效果的问题,增强兼容性。 86 | - 💻 优化脚本性能 87 | 88 | ### v1.0.0 (2024-11-30) 89 | - ✨ 首次发布 90 | - 🎭 支持会员身份模拟 91 | - 可切换普通/超级会员显示 92 | - 自定义会员等级(最高128级) 93 | - 自定义过期时间 94 | - 🚀 突破下载限制 95 | - 解除1GB下载上限 96 | - 支持个人网盘下载 97 | - 支持分享页面下载 98 | - 支持大空间告诉下载 99 | - 🎨 个性化设置 100 | - 精美设置面板 101 | - 自定义用户名称 102 | - 自定义头像图片 103 | - 一键关闭广告 104 | - 🔧 其他功能 105 | - 支持调试模式 106 | - 数据本地存储 107 | 108 | ## 💡 常见问题 109 | 110 | **Q: 设置不生效怎么办?** 111 | A: 请尝试刷新页面或重新登录 112 | 113 | **Q: 下载还是有限制?** 114 | A: 请确保已正确开启会员模拟功能 115 | 116 | **Q: 支持批量下载吗?** 117 | A: 不支持,可以选择多个文件后单个下载 118 | 119 | ## 🤝 交流反馈 120 | 121 | - [GitHub Issues](https://github.com/QingJ01/123pan_unlock/issues): 提交问题反馈 122 | - [QQ交流群](https://qm.qq.com/cgi-bin/qm/qr?k=7j_1SXC6SUlOKqHfqVk2YMPrWSdf5Js7&jump_from=webapi&authKey=ih1vlkxMeQc9CxE18GjR2WN0x85OQoP7jB78/3UzeJ4hvXw3+eSUNeRMjHjS24lT): 加入用户交流群 123 | - 公众号:极客氢云![公众号](https://jiashu.1win.eu.org/https://raw.githubusercontent.com/QingJ01/123pan_unlock/refs/heads/main/gongzhonghao.png) 124 | 125 | ## 📝 开源协议 126 | 127 | 本项目基于 Apache Licence 2.0 协议开源,使用请注明出处。 128 | 129 | ## ⚠️ 免责声明 130 | 131 | - 本脚本仅供学习交流使用 132 | - 请勿用于任何商业用途 133 | - 使用本脚本产生的任何后果由用户自行承担 134 | 135 | ## 🙏 鸣谢 136 | 137 | - 感谢 [Bao-qing](https://github.com/Bao-qing/) 提供的初始方法 138 | - 感谢所有提供建议和反馈的用户 139 | 140 | --- 141 | 142 |
143 | 如果觉得脚本好用,欢迎点个 ⭐ Star 支持一下! 144 |

145 | 146 | GitHub 147 | 148 | 149 | 150 | GreasyFork 151 | 152 |
153 | -------------------------------------------------------------------------------- /gongzhonghao.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QingJ01/123pan_unlock/12315e1c706d468ca37d9119e18e0e1bf0b908a0/gongzhonghao.png -------------------------------------------------------------------------------- /icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/QingJ01/123pan_unlock/12315e1c706d468ca37d9119e18e0e1bf0b908a0/icon.ico --------------------------------------------------------------------------------