123云盘解锁

专业的123云盘增强脚本 - 完美解锁会员功能、突破下载限制、去广告、支持自定义用户信息。支持个人网盘与分享页面,可在线配置,界面精美,功能强大,让你的123云盘体验更美好!

安装此脚本?
作者推荐脚本

您可能也喜欢搜索引擎净化

安装此脚本
  1. // ==UserScript==
  2. // @name 123云盘解锁
  3. // @author QingJ
  4. // @namespace https://github.com/QingJ01/123pan_unlock
  5. // @version 1.0.5
  6. // @description 专业的123云盘增强脚本 - 完美解锁会员功能、突破下载限制、去广告、支持自定义用户信息。支持个人网盘与分享页面,可在线配置,界面精美,功能强大,让你的123云盘体验更美好!
  7. // @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//x9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WDP7fFg/+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=
  8. // @license Apache Licence 2.0
  9. // @match *://*.123pan.com/*
  10. // @match *://*.123pan.cn/*
  11. // @match *://*.123684.com/*
  12. // @match *://*.123865.com/*
  13. // @match *://*.123952.com/*
  14. // @match *://*.123912.com/*
  15. // @grant GM_setValue
  16. // @grant GM_getValue
  17. // @grant unsafeWindow
  18. // @grant GM_getResourceText
  19. // @grant GM_info
  20. // @grant GM_registerMenuCommand
  21. // @grant GM_setClipboard
  22. // @grant GM_unregisterMenuCommand
  23. // @grant GM_xmlhttpRequest
  24. // @run-at document-start
  25. // ==/UserScript==
  26.  
  27. (function() {
  28. 'use strict';
  29. // 从存储中读取配置,如果没有存储过则使用默认值
  30. var user = {
  31. vip: GM_getValue('vip', 1), // 开启会员修改(总开关)
  32. svip: GM_getValue('svip', 1), // 显示为超级会员
  33. ad: GM_getValue('ad', 1), // 关闭广告
  34. name: GM_getValue('name', "QingJ"), // 自定义用户名
  35. photo: GM_getValue('photo', "http://q.qlogo.cn/headimg_dl?dst_uin=2903609300&spec=640&img_type=jpg"), // 自定义头像
  36. mail: GM_getValue('mail', ""), // 邮箱
  37. phone: GM_getValue('phone', ""), // 手机号
  38. id: GM_getValue('id', ""), // 用户ID
  39. level: GM_getValue('level', 128), // 成长容量等级
  40. endtime: GM_getValue('endtime', 253402185600), // 会员过期时间
  41. debug: GM_getValue('debug', 0), // 调试模式
  42. }
  43.  
  44. // 保存原始的XMLHttpRequest和fetch方法
  45. const originalXHR = unsafeWindow.XMLHttpRequest;
  46. const originalFetch = unsafeWindow.fetch;
  47.  
  48. // 创建新的XMLHttpRequest类
  49. function CustomXHR() {
  50. const xhr = new originalXHR();
  51. // 保存原始方法的引用并绑定正确的this上下文
  52. const originalOpen = xhr.open.bind(xhr);
  53. const originalSetRequestHeader = xhr.setRequestHeader.bind(xhr);
  54. // 重写open方法
  55. xhr.open = function(method, url, ...args) {
  56. try {
  57. url = new URL(url, location.origin).href;
  58. xhr.url = url;
  59. // 检查是否需要拦截请求
  60. if (url.includes('web_logs') || url.includes('metrics')) {
  61. throw new Error('【123 云盘解锁】已屏蔽此数据收集器');
  62. }
  63. return originalOpen(method, url, ...args);
  64. } catch (e) {
  65. console.error('XHR open error:', e);
  66. throw e;
  67. }
  68. };
  69. // 重写setRequestHeader方法
  70. xhr.setRequestHeader = function(header, value) {
  71. try {
  72. let info = reddem();
  73. let headers = {
  74. "user-agent": info.ua,
  75. "platform": info.os.toLowerCase(),
  76. "app-version": info.version,
  77. "x-app-version": info.versionX
  78. };
  79. if (header.toLowerCase() in headers) {
  80. value = headers[header.toLowerCase()];
  81. }
  82. return originalSetRequestHeader(header, value);
  83. } catch (e) {
  84. console.error('XHR setRequestHeader error:', e);
  85. return originalSetRequestHeader(header, value);
  86. }
  87. };
  88. // 添加响应拦截
  89. xhr.addEventListener('readystatechange', function() {
  90. if (this.readyState === 4) {
  91. try {
  92. handleResponse(xhr);
  93. } catch (e) {
  94. console.error('XHR response handler error:', e);
  95. }
  96. }
  97. });
  98. return xhr;
  99. }
  100.  
  101. // 处理响应数据
  102. function handleResponse(xhr) {
  103. if (!xhr.url) return;
  104. let res;
  105. try {
  106. res = JSON.parse(xhr.responseText);
  107. } catch (e) {
  108. return;
  109. }
  110. if (xhr.url.includes('api/user/info') && user.vip === 1) {
  111. modifyUserInfo(res);
  112. } else if (xhr.url.includes('file/download_info') ||
  113. xhr.url.includes('share/download_info') ||
  114. xhr.url.includes('file/batch_download_info')) {
  115. modifyDownloadInfo(res, xhr.url);
  116. }
  117. // 更新响应
  118. if (res) {
  119. if (!xhr._responseModified) {
  120. xhr._responseModified = true;
  121. const responseText = JSON.stringify(res);
  122. const handler = {
  123. get: function(target, prop) {
  124. if (prop === 'response' || prop === 'responseText') {
  125. return responseText;
  126. }
  127. return target[prop];
  128. }
  129. };
  130. Object.defineProperties(xhr, {
  131. 'response': {
  132. configurable: true,
  133. enumerable: true,
  134. get: () => responseText
  135. },
  136. 'responseText': {
  137. configurable: true,
  138. enumerable: true,
  139. get: () => responseText
  140. }
  141. });
  142. }
  143. }
  144. }
  145.  
  146. // 修改用户信息
  147. function modifyUserInfo(res) {
  148. if (!res.data) return;
  149. res.data.Vip = true;
  150. res.data.VipLevel = user.svip ? 2 : 1;
  151. if (user.ad === 1) res.data.IsShowAdvertisement = false;
  152. if (user.endtime) {
  153. let time = new Date(user.endtime * 1000);
  154. res.data.VipExpire = time.toLocaleString();
  155. res.data.UserVipDetailInfos = [{
  156. VipDesc: user.svip === 1 ? "SVIP 会员" : "VIP 会员",
  157. TimeDesc: time.toLocaleDateString() + " 到期",
  158. IsUse: time >= new Date()
  159. }];
  160. }
  161. if (user.name) res.data.Nickname = user.name;
  162. if (user.photo) res.data.HeadImage = user.photo;
  163. if (user.mail) res.data.Mail = user.mail;
  164. if (user.phone) res.data.Passport = Number(user.phone);
  165. if (user.id) res.data.UID = Number(user.id);
  166. }
  167.  
  168. // 修改下载信息
  169. function modifyDownloadInfo(res, url) {
  170. if (!res.data) return;
  171. let downloadUrl = res.data.DownloadUrl || res.data.DownloadURL;
  172. if (!downloadUrl) return;
  173. try {
  174. let originURL = new URL(downloadUrl);
  175. if (originURL.origin.includes("web-pro")) {
  176. let directURL = new URL(decodeURIComponent(atob(originURL.searchParams.get('params'))), originURL.origin);
  177. directURL.searchParams.set('auto_redirect', 0);
  178. originURL.searchParams.set('params', btoa(directURL.href));
  179. downloadUrl = originURL.href;
  180. } else {
  181. originURL.searchParams.set('auto_redirect', 0);
  182. let newURL = new URL('https://web-pro2.123952.com/download-v2/', originURL.origin);
  183. newURL.searchParams.set('params', btoa(encodeURI(originURL.href)));
  184. newURL.searchParams.set('is_s3', 0);
  185. downloadUrl = decodeURIComponent(newURL.href);
  186. }
  187. if (res.data.DownloadUrl) res.data.DownloadUrl = downloadUrl;
  188. if (res.data.DownloadURL) res.data.DownloadURL = downloadUrl;
  189. } catch (e) {
  190. console.error('Download URL modification error:', e);
  191. }
  192. }
  193.  
  194. // 替换原始的XMLHttpRequest
  195. unsafeWindow.XMLHttpRequest = CustomXHR;
  196.  
  197. // 重写fetch
  198. unsafeWindow.fetch = async function(url, options) {
  199. if (url.includes('web_logs') || url.includes('metrics')) {
  200. throw new Error('【123 云盘解锁】已屏蔽此数据收集器');
  201. }
  202. return originalFetch(url, options);
  203. };
  204.  
  205. // 重写atob
  206. const originalAtob = unsafeWindow.atob;
  207. unsafeWindow.atob = function(str) {
  208. try {
  209. return originalAtob(decodeURIComponent(str));
  210. } catch (e) {
  211. return originalAtob(str);
  212. }
  213. };
  214.  
  215. // 十连抽(bushi):console.log(reddem(),reddem(),reddem(),reddem(),reddem(),reddem(),reddem(),reddem(),reddem(),reddem())
  216. let reddem = unsafeWindow.reddem = () => {
  217. const and = {
  218. os: "Android",
  219. vers: ["6.0", "7.1.2", "8.1.0", "9.0", "10.0"]
  220. };
  221. const ios = {
  222. os: "iOS",
  223. vers: ["12.0", "13.4", "14.0", "15.0"]
  224. };
  225.  
  226. const devs = {
  227. "Apple": ios,
  228. "Xiaomi": and,
  229. "Samsung": and,
  230. "Huawei": {
  231. ...and,
  232. hmos: () => (Math.random() < 0.5 ? "HarmonyOS;" : ""),
  233. hmsCore: () => `HMScore ${Math.floor(Math.random() * 7) + 1}.${Math.floor(Math.random() * 10)}.${Math.floor(Math.random() * 10)}.${Math.floor(Math.random() * 1000)};`
  234. },
  235. "Google": and,
  236. "Oneplus": and,
  237. "Vivo": and,
  238. "Oppo": and
  239. };
  240.  
  241. const appXVers = [
  242. "2.1.3", "2.1.4",
  243. "2.3.1", "2.3.2", "2.3.4", "2.3.5",
  244. "2.3.6", "2.3.7", "2.3.8", "2.3.9",
  245. "2.3.12", "2.3.13", "2.3.14",
  246. "2.4.0", "2.4.1", "2.4.7"
  247. ];
  248. const appVers = [
  249. "38", "39",
  250. "42", "43", "44", "45",
  251. "46", "47", "48", "49",
  252. "50", "54", "55",
  253. "56", "61", "62", "69"
  254. ];
  255. const appXVer = appXVers[Math.floor(Math.random() * appXVers.length)];
  256. const appVer = appVers[appXVers.indexOf(appXVer)];
  257.  
  258. const brands = Object.keys(devs);
  259. const brand = brands[Math.floor(Math.random() * brands.length)];
  260. const {
  261. os,
  262. vers
  263. } = devs[brand];
  264.  
  265. const osVer = vers[Math.floor(Math.random() * vers.length)];
  266.  
  267. return {
  268. ua: `123pan/v${appXVer} (${os}_${osVer};${brand})`,
  269. version: Number(appVer),
  270. versionX: appXVer,
  271. osVersion: osVer,
  272. os: os,
  273. brand: brand
  274. }
  275. }
  276.  
  277. // 格式化设置项
  278. const formatSetting = (key, value, comment) => {
  279. const item = document.createElement('div');
  280. item.style.cssText = `
  281. padding: 12px;
  282. background: #f8f9fa;
  283. border-radius: 6px;
  284. border: 1px solid #e0e0e0;
  285. `;
  286.  
  287. const content = document.createElement('div');
  288. content.style.cssText = `
  289. display: flex;
  290. justify-content: space-between;
  291. align-items: center;
  292. flex-wrap: wrap;
  293. gap: 10px;
  294. `;
  295.  
  296. const keyElement = document.createElement('strong');
  297. keyElement.style.cssText = `
  298. color: #202124;
  299. margin-right: 10px;
  300. flex: 1;
  301. `;
  302. keyElement.textContent = `${key}:`;
  303. content.appendChild(keyElement);
  304.  
  305. // 判断设置类型
  306. const isSwitch = typeof value === 'number' && (value === 0 || value === 1);
  307. const isEditable = ['用户名', '头像', '等级'].includes(key);
  308.  
  309. if (isSwitch) {
  310. // 创建开关按钮
  311. const switchContainer = document.createElement('div');
  312. switchContainer.style.cssText = `
  313. position: relative;
  314. display: inline-block;
  315. width: 44px;
  316. height: 24px;
  317. background: ${value ? '#1a73e8' : '#ccc'};
  318. border-radius: 12px;
  319. transition: all 0.3s;
  320. cursor: pointer;
  321. flex-shrink: 0;
  322. `;
  323.  
  324. const switchKnob = document.createElement('div');
  325. switchKnob.style.cssText = `
  326. position: absolute;
  327. top: 2px;
  328. left: ${value ? '22px' : '2px'};
  329. width: 20px;
  330. height: 20px;
  331. background: white;
  332. border-radius: 50%;
  333. transition: all 0.3s;
  334. box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  335. `;
  336.  
  337. switchContainer.appendChild(switchKnob);
  338.  
  339. // 添加点击事件
  340. switchContainer.onclick = () => {
  341. const newValue = value === 1 ? 0 : 1;
  342. // 更新用户配置
  343. switch (key) {
  344. case 'VIP状态':
  345. user.vip = newValue;
  346. GM_setValue('vip', newValue);
  347. break;
  348. case 'SVIP显示':
  349. user.svip = newValue;
  350. GM_setValue('svip', newValue);
  351. break;
  352. case '广告控制':
  353. user.ad = newValue;
  354. GM_setValue('ad', newValue);
  355. break;
  356. case '调试模式':
  357. user.debug = newValue;
  358. GM_setValue('debug', newValue);
  359. break;
  360. }
  361.  
  362. // 更新开关状态
  363. switchContainer.style.background = newValue ? '#1a73e8' : '#ccc';
  364. switchKnob.style.left = newValue ? '22px' : '2px';
  365. value = newValue;
  366.  
  367. // 刷新页面以应用更改
  368. location.reload();
  369. };
  370.  
  371. content.appendChild(switchContainer);
  372. } else if (isEditable) {
  373. // 创建输入框
  374. const inputElement = document.createElement('input');
  375. inputElement.type = key === '等级' ? 'number' : 'text';
  376. inputElement.value = value;
  377. inputElement.style.cssText = `
  378. flex: 2;
  379. padding: 6px 10px;
  380. border: 1px solid #ddd;
  381. border-radius: 4px;
  382. font-size: 14px;
  383. width: 200px;
  384. transition: border-color 0.3s;
  385. `;
  386.  
  387. if (key === '等级') {
  388. inputElement.min = 0;
  389. inputElement.max = 128;
  390. }
  391.  
  392. // 添加输入框焦点效果
  393. inputElement.addEventListener('focus', () => {
  394. inputElement.style.borderColor = '#1a73e8';
  395. });
  396.  
  397. inputElement.addEventListener('blur', () => {
  398. inputElement.style.borderColor = '#ddd';
  399. });
  400.  
  401. // 添加保存按钮
  402. const saveButton = document.createElement('button');
  403. saveButton.textContent = '保存';
  404. saveButton.style.cssText = `
  405. padding: 6px 12px;
  406. background: #1a73e8;
  407. color: white;
  408. border: none;
  409. border-radius: 4px;
  410. cursor: pointer;
  411. font-size: 12px;
  412. margin-left: 8px;
  413. transition: background 0.2s;
  414. `;
  415.  
  416. saveButton.onmouseover = () => {
  417. saveButton.style.background = '#1557b0';
  418. };
  419. saveButton.onmouseout = () => {
  420. saveButton.style.background = '#1a73e8';
  421. };
  422.  
  423. // 保存按钮点击事件
  424. saveButton.onclick = () => {
  425. let newValue = inputElement.value;
  426. if (key === '等级') {
  427. newValue = parseInt(newValue);
  428. if (isNaN(newValue) || newValue < 0 || newValue > 128) {
  429. alert('等级必须在 0-128 之间');
  430. return;
  431. }
  432. }
  433.  
  434. // 更新配置
  435. switch (key) {
  436. case '用户名':
  437. user.name = newValue;
  438. GM_setValue('name', newValue);
  439. break;
  440. case '头像':
  441. user.photo = newValue;
  442. GM_setValue('photo', newValue);
  443. break;
  444. case '等级':
  445. user.level = newValue;
  446. GM_setValue('level', newValue);
  447. break;
  448. }
  449.  
  450. // 显示保存成功提示
  451. const successTip = document.createElement('span');
  452. successTip.textContent = '已保存';
  453. successTip.style.cssText = `
  454. color: #188038;
  455. font-size: 12px;
  456. margin-left: 8px;
  457. `;
  458. content.appendChild(successTip);
  459. setTimeout(() => successTip.remove(), 2000);
  460.  
  461. // 刷新页面以应用更改
  462. location.reload();
  463. };
  464.  
  465. const inputContainer = document.createElement('div');
  466. inputContainer.style.cssText = `
  467. display: flex;
  468. align-items: center;
  469. flex: 2;
  470. `;
  471. inputContainer.appendChild(inputElement);
  472. inputContainer.appendChild(saveButton);
  473. content.appendChild(inputContainer);
  474. } else {
  475. // 非编辑项的显示
  476. const valueElement = document.createElement('span');
  477. valueElement.style.cssText = `
  478. color: ${typeof value === 'number' ? '#1a73e8' : '#188038'};
  479. font-weight: 500;
  480. word-break: break-all;
  481. text-align: right;
  482. flex: 2;
  483. `;
  484. valueElement.textContent = key === '过期时间' ? new Date(value * 1000).toLocaleString() : value;
  485. content.appendChild(valueElement);
  486. }
  487.  
  488. item.appendChild(content);
  489.  
  490. if (comment) {
  491. const commentElement = document.createElement('div');
  492. commentElement.style.cssText = `
  493. margin-top: 8px;
  494. font-size: 12px;
  495. color: #5f6368;
  496. line-height: 1.4;
  497. `;
  498. commentElement.textContent = comment;
  499. item.appendChild(commentElement);
  500. }
  501.  
  502. return item;
  503. };
  504.  
  505. function createSettingsPanel() {
  506. // 检查是否已存在面板
  507. if (document.getElementById('vip-settings-panel')) {
  508. return;
  509. }
  510.  
  511. // 创建面板容器
  512. const panel = document.createElement('div');
  513. panel.id = 'vip-settings-panel';
  514. panel.style.cssText = `
  515. position: fixed;
  516. bottom: 20px;
  517. right: 20px;
  518. background: linear-gradient(to bottom, rgba(255, 255, 255, 0.98), rgba(250, 250, 250, 0.98));
  519. backdrop-filter: blur(10px);
  520. padding: 25px;
  521. border-radius: 12px;
  522. box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  523. z-index: 9999;
  524. width: 520px;
  525. font-size: 14px;
  526. max-height: 85vh;
  527. overflow-y: auto;
  528. font-family: Arial, sans-serif;
  529. border: 1px solid rgba(230, 230, 230, 0.7);
  530. scrollbar-width: thin;
  531. scrollbar-color: #1a73e8 #f8f9fa;
  532. `;
  533.  
  534. // 创建标题
  535. const title = document.createElement('h3');
  536. title.textContent = '123云盘VIP设置面板';
  537. title.style.cssText = `
  538. margin: 0 0 15px 0;
  539. font-size: 18px;
  540. font-weight: bold;
  541. padding-bottom: 10px;
  542. border-bottom: 2px solid #e0e0e0;
  543. background: linear-gradient(135deg, #1a73e8, #1557b0);
  544. -webkit-background-clip: text;
  545. -webkit-text-fill-color: transparent;
  546. letter-spacing: 0.5px;
  547. `;
  548. panel.appendChild(title);
  549.  
  550. // 创建设置列表
  551. const settingsList = document.createElement('div');
  552. settingsList.style.cssText = `
  553. display: grid;
  554. gap: 15px;
  555. padding: 20px;
  556. background: rgba(255, 255, 255, 0.5);
  557. border-radius: 8px;
  558. `;
  559.  
  560. // 添加所有设置项
  561. const settings = [{
  562. key: 'VIP状态',
  563. value: user.vip,
  564. comment: '会员修改总开关'
  565. },
  566. {
  567. key: 'SVIP显示',
  568. value: user.svip,
  569. comment: '显示为超级会员'
  570. },
  571. {
  572. key: '广告控制',
  573. value: user.ad,
  574. comment: '关闭广告'
  575. },
  576. {
  577. key: '用户名',
  578. value: user.name,
  579. comment: '自定义用户名'
  580. },
  581. {
  582. key: '头像',
  583. value: user.photo,
  584. comment: '自定义头像URL'
  585. },
  586. {
  587. key: '等级',
  588. value: user.level,
  589. comment: '成长容量等级(最高128)'
  590. },
  591. {
  592. key: '过期时间',
  593. value: user.endtime,
  594. comment: '会员过期时间'
  595. },
  596. {
  597. key: '调试模式',
  598. value: user.debug,
  599. comment: '调试信息显示级别'
  600. }
  601. ];
  602.  
  603. settings.forEach(setting => {
  604. settingsList.appendChild(formatSetting(setting.key, setting.value, setting.comment));
  605. });
  606.  
  607. panel.appendChild(settingsList);
  608.  
  609. // 添加分隔线
  610. const divider = document.createElement('div');
  611. divider.style.cssText = `
  612. height: 1px;
  613. background: linear-gradient(to right, transparent, #e0e0e0, transparent);
  614. margin: 15px 0;
  615. `;
  616. panel.appendChild(divider);
  617.  
  618. // 添加交流群按钮
  619. const groupButton = document.createElement('a');
  620. groupButton.href = 'https://qm.qq.com/cgi-bin/qm/qr?k=7j_1SXC6SUlOKqHfqVk2YMPrWSdf5Js7&jump_from=webapi&authKey=ih1vlkxMeQc9CxE18GjR2WN0x85OQoP7jB78/3UzeJ4hvXw3+eSUNeRMjHjS24lT';
  621. groupButton.target = '_blank';
  622. groupButton.style.cssText = `
  623. display: block;
  624. margin-top: 20px;
  625. padding: 12px 20px;
  626. background: linear-gradient(135deg, #1a73e8, #1557b0);
  627. color: white;
  628. border: none;
  629. border-radius: 8px;
  630. cursor: pointer;
  631. text-align: center;
  632. text-decoration: none;
  633. font-weight: 500;
  634. transition: all 0.3s ease;
  635. box-shadow: 0 2px 6px rgba(26, 115, 232, 0.3);
  636. `;
  637.  
  638. // 添加图标和文字
  639. groupButton.innerHTML = `
  640. <div style="display: flex; align-items: center; justify-content: center; gap: 8px;">
  641. <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
  642. <path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"/>
  643. </svg>
  644. <span>加入交流群</span>
  645. </div>
  646. `;
  647.  
  648. groupButton.onmouseover = () => {
  649. groupButton.style.transform = 'translateY(-2px)';
  650. groupButton.style.boxShadow = '0 4px 12px rgba(26, 115, 232, 0.4)';
  651. };
  652.  
  653. groupButton.onmouseout = () => {
  654. groupButton.style.transform = 'translateY(0)';
  655. groupButton.style.boxShadow = '0 2px 6px rgba(26, 115, 232, 0.3)';
  656. };
  657.  
  658. panel.appendChild(groupButton);
  659.  
  660. // 添加关闭按钮
  661. const closeButton = document.createElement('button');
  662. closeButton.textContent = '×';
  663. closeButton.style.cssText = `
  664. position: absolute;
  665. top: 10px;
  666. right: 10px;
  667. width: 24px;
  668. height: 24px;
  669. border: none;
  670. background: #f44336;
  671. color: white;
  672. border-radius: 50%;
  673. cursor: pointer;
  674. display: flex;
  675. align-items: center;
  676. justify-content: center;
  677. font-size: 18px;
  678. padding: 0;
  679. line-height: 1;
  680. transition: all 0.2s ease;
  681. `;
  682.  
  683. closeButton.onmouseover = () => {
  684. closeButton.style.transform = 'rotate(90deg)';
  685. closeButton.style.background = '#d32f2f';
  686. };
  687.  
  688. closeButton.onmouseout = () => {
  689. closeButton.style.transform = 'rotate(0)';
  690. closeButton.style.background = '#f44336';
  691. };
  692.  
  693. closeButton.onclick = () => panel.remove();
  694. panel.appendChild(closeButton);
  695.  
  696. // 添加自定义滚动条样式
  697. const style = document.createElement('style');
  698. style.textContent = `
  699. #vip-settings-panel::-webkit-scrollbar {
  700. width: 8px;
  701. }
  702. #vip-settings-panel::-webkit-scrollbar-track {
  703. background: #f8f9fa;
  704. border-radius: 4px;
  705. }
  706. #vip-settings-panel::-webkit-scrollbar-thumb {
  707. background: #1a73e8;
  708. border-radius: 4px;
  709. }
  710. #vip-settings-panel::-webkit-scrollbar-thumb:hover {
  711. background: #1557b0;
  712. }
  713. `;
  714. document.head.appendChild(style);
  715.  
  716. document.body.appendChild(panel);
  717. }
  718.  
  719. function addTriggerButton() {
  720. const trigger = document.createElement('button');
  721. trigger.textContent = '设置面板';
  722. trigger.style.cssText = `
  723. position: fixed;
  724. bottom: 20px;
  725. right: 20px;
  726. padding: 8px 16px;
  727. background: #1a73e8;
  728. color: white;
  729. border: none;
  730. border-radius: 6px;
  731. cursor: pointer;
  732. z-index: 9998;
  733. font-size: 14px;
  734. font-weight: 500;
  735. box-shadow: 0 2px 6px rgba(26, 115, 232, 0.3);
  736. transition: all 0.2s ease;
  737. `;
  738.  
  739. trigger.onmouseover = () => {
  740. trigger.style.background = '#1557b0';
  741. trigger.style.boxShadow = '0 4px 8px rgba(26, 115, 232, 0.4)';
  742. };
  743. trigger.onmouseout = () => {
  744. trigger.style.background = '#1a73e8';
  745. trigger.style.boxShadow = '0 2px 6px rgba(26, 115, 232, 0.3)';
  746. };
  747.  
  748. trigger.onclick = createSettingsPanel;
  749. document.body.appendChild(trigger);
  750. }
  751.  
  752. // 使用 MutationObserver 来确保按钮添加到页面上
  753. function waitForBody() {
  754. if (document.body) {
  755. addTriggerButton();
  756. } else {
  757. setTimeout(waitForBody, 100);
  758. }
  759. }
  760.  
  761. // 使用多种方式确保脚本执行
  762. document.addEventListener('DOMContentLoaded', waitForBody);
  763. window.addEventListener('load', waitForBody);
  764.  
  765. // 立即尝试执行
  766. waitForBody();
  767. })();

QingJ © 2025

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