【玩的嗨】VIP工具箱,夸克网盘直链批量获取,全网VIP视频免费破解去广告,获取B站封面,下载B站视频等众多功能聚合 长期更新,放心使用

🔥功能介绍🔥:🎉 1、Vip视频解析;🎉 2、一站式音乐搜索解决方案;🎉 3、bilibili视频封面获取;🎉 4、bilibili视频下载(已支持分P下载);🎉 5、夸克网盘直链批量获取;🎉 6、CSDN页面、剪切板清理;🎉 7、页面自动展开(更多网站匹配中,欢迎提交想要支持的网站) 🎉 8、YouTube视频下载🎉 9、中间页自动跳转;🎉 10、搜索引擎快速跳转

  1. // ==UserScript==
  2. // @name 【玩的嗨】VIP工具箱,夸克网盘直链批量获取,全网VIP视频免费破解去广告,获取B站封面,下载B站视频等众多功能聚合 长期更新,放心使用
  3. // @namespace https://www.wandhi.com/
  4. // @description 🔥功能介绍🔥:🎉 1、Vip视频解析;🎉 2、一站式音乐搜索解决方案;🎉 3、bilibili视频封面获取;🎉 4、bilibili视频下载(已支持分P下载);🎉 5、夸克网盘直链批量获取;🎉 6、CSDN页面、剪切板清理;🎉 7、页面自动展开(更多网站匹配中,欢迎提交想要支持的网站) 🎉 8、YouTube视频下载🎉 9、中间页自动跳转;🎉 10、搜索引擎快速跳转
  5. // @license MIT
  6. // @version 4.9.24
  7. // @author MaxZhang
  8. // @exclude *://vip.wandhi.com/*
  9. // @match *://*blog.csdn.net/*
  10. // @match *://*download.csdn.net/*
  11. // @match *://*c.pc.qq.com/middlem*
  12. // @match *://*pan.baidu.com/disk/main*
  13. // @match *://link.csdn.net/*
  14. // @match *://link.zhihu.com/*
  15. // @match *://browser.gwdang.com/*
  16. // @match *://*www.jianshu.com/go-wild*
  17. // @match *://*gitee.com/link*
  18. // @match *://*juejin.cn/?target*
  19. // @match *://www.aliyundrive.com/drive*
  20. // @match *://www.alipan.com/drive/*
  21. // @match *://*.youtube.com/watch?v=*
  22. // @match *://support.qq.com/products*
  23. // @match *://weibo.cn/sinaurl*
  24. // @match *://afdian.net/link*
  25. // @match *://*oschina.net/action/GoToLink*
  26. // @match *://jump2.bdimg.com/safecheck*
  27. // @match *://www.douban.com/link2/?url*
  28. // @match *://link.17173.com*
  29. // @match *://search.suning.com/*
  30. // @match *://pan.quark.cn/*
  31. // @match *://docs.qq.com/scenario/link*
  32. // @match *://mail.qq.com/cgi-bin/readtemplate*
  33. // @match *://cloud.tencent.com/developer/tools/blog-entry*
  34. // @match *://link.uisdc.com/*
  35. // @match *://*.tudou.com/listplay/*
  36. // @match *://*.tudou.com/albumplay/*
  37. // @match *://*.tudou.com/programs/view/*
  38. // @match *://*.tudou.com/v*
  39. // @match *://*.mgtv.com/b/*
  40. // @match *://film.sohu.com/album/*
  41. // @match *://tv.sohu.com/v/*
  42. // @match *://*.acfun.cn/v/*
  43. // @match *://*.bilibili.com/video/*
  44. // @match *://*.bilibili.com/anime/*
  45. // @match *://*.bilibili.com/bangumi/play/*
  46. // @match *://*.pptv.com/show/*
  47. // @match *://*.baofeng.com/play/*
  48. // @match *://*.wasu.cn/Play/show*
  49. // @match *://v.yinyuetai.com/video/*
  50. // @match *://v.yinyuetai.com/playlist/*
  51. // @match *://*.wasu.cn/Play/show/*
  52. // @match *://music.taihe.com/song*
  53. // @match *://music.163.com/song*
  54. // @match *://music.163.com/m/song*
  55. // @match *://y.qq.com/*
  56. // @match *://*.kugou.com/*
  57. // @match *://*.kuwo.cn/*
  58. // @match *://*.xiami.com/*
  59. // @match *://music.taihe.com/*
  60. // @match *://*.1ting.com/player*
  61. // @match *://www.qingting.fm/*
  62. // @match *://www.lizhi.fm/*
  63. // @match *://music.migu.cn/*
  64. // @match *://www.shangxueba.com/ask/*.html
  65. // @match *://www.ximalaya.com/*
  66. // @match *://www.shangxueba.com/ask/*.html
  67. // @match *://pan.baidu.com/disk/home*
  68. // @match *://yun.baidu.com/disk/home*
  69. // @match *://pan.baidu.com/s/*
  70. // @match *://yun.baidu.com/s/*
  71. // @match *://pan.baidu.com/share/link*
  72. // @match *://yun.baidu.com/share/link*
  73. // @match *://wenku.baidu.com/view/*
  74. // @match *://settings.wandhi.com/*
  75. // @match *://m.youku.com/v*
  76. // @match *://m.youku.com/a*
  77. // @match *://v.youku.com/v_*
  78. // @match *://v.youku.com/pad_show*
  79. // @match *://*.iqiyi.com/v_*
  80. // @match *://*.iqiyi.com/w_*
  81. // @match *://*.iqiyi.com/a_*
  82. // @match *://*.iqiyi.com/adv*
  83. // @match *://*.iq.com/play/*
  84. // @match *://*.le.com/ptv/vplay/*
  85. // @match *://v.qq.com/x/cover/*
  86. // @match *://v.qq.com/x/page/*
  87. // @match *://v.qq.com/*play*
  88. // @match *://v.qq.com/cover*
  89. // @match *://c.pc.qq.com/ios*
  90. // @match *://www.v2ex.com/t/*
  91. // @match *://*.nodeseek.com/jump*
  92. // @match *://*.zhihu.com/question*
  93. // @match *://www.baidu.com/*
  94. // @match *://www.google.com/*
  95. // @match *://www.sogou.com/*
  96. // @match *://www.so.com/s*
  97. // @match *://cn.bing.com/search*
  98. // @match *://sspai.com/link*
  99. // @match *://*.kdocs.cn/office/link*
  100. // @match *://ispacesoft.com/*.html
  101. // @match *://tv.wandhi.com/go.html*
  102. // @match *://tv.wandhi.com/check.html
  103. // @match *://*.xiaohongshu.com/explore*
  104. // @match *://www.yuque.com/r/goto*
  105. // @match *://blog.51cto.com/transfer*
  106. // @match *://r.wjx.com/redirect.aspx*
  107. // @match *://www.infoq.cn/link*
  108. // @match *://open.work.weixin.qq.com/wwopen/uriconfirm?uri=
  109. // @match *://link.gitcode.com/?target=*
  110. // @require https://lib.baomitu.com/jquery/1.12.4/jquery.min.js
  111. // @require https://lib.baomitu.com/limonte-sweetalert2/11.4.7/sweetalert2.all.min.js
  112. // @require https://lib.baomitu.com/echarts/4.6.0/echarts.min.js
  113. // @require https://lib.baomitu.com/layer/2.3/layer.js
  114. // @require https://lib.baomitu.com/qrcode-generator/1.4.4/qrcode.min.js
  115. // @require https://lib.baomitu.com/FileSaver.js/2.0.5/FileSaver.min.js
  116. // @require https://lib.baomitu.com/viewerjs/1.11.3/viewer.min.js
  117. // @require https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/react/18.2.0/umd/react.production.min.js
  118. // @require https://lf6-cdn-tos.bytecdntp.com/cdn/expire-1-M/react-dom/18.2.0/umd/react-dom.production.min.js
  119. // @require https://registry.npmmirror.com/@douyinfe/semi-ui/2.51.0/files/dist/umd/semi-ui.min.js
  120. // @grant GM_setClipboard
  121. // @grant unsafeWindow
  122. // @grant GM_xmlhttpRequest
  123. // @grant GM_info
  124. // @grant GM_cookie
  125. // @grant GM_addStyle
  126. // @grant GM.addStyle
  127. // @grant GM_getValue
  128. // @grant GM_setValue
  129. // @grant GM.getValue
  130. // @grant GM.setValue
  131. // @grant GM_notification
  132. // @grant GM_openInTab
  133. // @grant GM_deleteValue
  134. // @grant GM_registerMenuCommand
  135. // @grant GM_unregisterMenuCommand
  136. // @grant GM_download
  137. // @connect api.wandhi.com
  138. // @connect api.huizhek.com
  139. // @connect cdn.jsdelivr.net
  140. // @connect tool.manmanbuy.com
  141. // @connect gwdang.com
  142. // @connect scriptcat.org
  143. // @connect quark.cn
  144. // @connect openapi.baidu.com
  145. // @connect localhost
  146. // @connect pan.baidu.com
  147. // @connect api.bilibili.com
  148. // @compatible firefox
  149. // @compatible chrome
  150. // @compatible opera safari edge
  151. // @compatible safari
  152. // @compatible edge
  153. // @run-at document-end
  154. // ==/UserScript==
  155.  
  156. (function(global, factory) {
  157. "object" == typeof exports && "undefined" != typeof module ? factory(require("react-dom"), require("sweetalert2"), require("@douyinfe/semi-ui"), require("react")) : "function" == typeof define && define.amd ? define([ "react-dom", "sweetalert2", "@douyinfe/semi-ui", "react" ], factory) : factory((global = "undefined" != typeof globalThis ? globalThis : global || self).ReactDOM, global.Swal, global.SemiUI, global.React);
  158. })(this, (function(ReactDOM, Swal, semiUi, React) {
  159. "use strict";
  160. var ReactDOM__default, Swal__default, React__default, LogLevel, BrowerType, VersionResult, css_248z$5, ConfigEnum, Common, SiteEnum, css_248z$4, css_248z$3, Menu$2, css_248z$2, Menu$1, css_248z$1, css_248z, Menu;
  161. function _interopDefaultLegacy(e) {
  162. return e && "object" == typeof e && "default" in e ? e : {
  163. default: e
  164. };
  165. }
  166. ReactDOM__default = _interopDefaultLegacy(ReactDOM), Swal__default = _interopDefaultLegacy(Swal),
  167. React__default = _interopDefaultLegacy(React);
  168. const container = new Map;
  169. class Container {
  170. static Registe(type, args) {
  171. let className = this.processName(type.name);
  172. return container.has(className) ? container.get(className) : className ? (container.set(className, window.Reflect.construct(type, args)),
  173. container.get(className)) : void 0;
  174. }
  175. static processName(name) {
  176. return name.toLowerCase();
  177. }
  178. static Require(type) {
  179. return this.Registe(type, []);
  180. }
  181. }
  182. class Logger {
  183. static log(msg, group, level) {}
  184. static debug(msg, group = "debug") {
  185. this.log(msg, group, LogLevel.debug);
  186. }
  187. static info(msg, group = "info") {
  188. this.log(msg, group, LogLevel.info);
  189. }
  190. static warn(msg, group = "warning") {
  191. this.log(msg, group, LogLevel.warn);
  192. }
  193. static error(msg, group = "error") {
  194. this.log(msg, group, LogLevel.error);
  195. }
  196. }
  197. function __awaiter(thisArg, _arguments, P, generator) {
  198. return new (P || (P = Promise))((function(resolve, reject) {
  199. function fulfilled(value) {
  200. try {
  201. step(generator.next(value));
  202. } catch (e) {
  203. reject(e);
  204. }
  205. }
  206. function rejected(value) {
  207. try {
  208. step(generator.throw(value));
  209. } catch (e) {
  210. reject(e);
  211. }
  212. }
  213. function step(result) {
  214. result.done ? resolve(result.value) : function adopt(value) {
  215. return value instanceof P ? value : new P((function(resolve) {
  216. resolve(value);
  217. }));
  218. }(result.value).then(fulfilled, rejected);
  219. }
  220. step((generator = generator.apply(thisArg, _arguments || [])).next());
  221. }));
  222. }
  223. !function(LogLevel) {
  224. LogLevel[LogLevel.debug = 0] = "debug", LogLevel[LogLevel.info = 1] = "info", LogLevel[LogLevel.warn = 2] = "warn",
  225. LogLevel[LogLevel.error = 3] = "error";
  226. }(LogLevel || (LogLevel = {})), function(BrowerType) {
  227. BrowerType[BrowerType.Edge = 0] = "Edge", BrowerType[BrowerType.Edg = 1] = "Edg",
  228. BrowerType[BrowerType.Chrome = 2] = "Chrome", BrowerType[BrowerType.Firefox = 3] = "Firefox",
  229. BrowerType[BrowerType.Safiri = 4] = "Safiri", BrowerType[BrowerType.Se360 = 5] = "Se360",
  230. BrowerType[BrowerType.Ie2345 = 6] = "Ie2345", BrowerType[BrowerType.Baidu = 7] = "Baidu",
  231. BrowerType[BrowerType.Liebao = 8] = "Liebao", BrowerType[BrowerType.UC = 9] = "UC",
  232. BrowerType[BrowerType.QQ = 10] = "QQ", BrowerType[BrowerType.Sogou = 11] = "Sogou",
  233. BrowerType[BrowerType.Opera = 12] = "Opera", BrowerType[BrowerType.Maxthon = 13] = "Maxthon";
  234. }(BrowerType || (BrowerType = {})), function(VersionResult) {
  235. VersionResult[VersionResult.less = -1] = "less", VersionResult[VersionResult.equal = 0] = "equal",
  236. VersionResult[VersionResult.greater = 1] = "greater", VersionResult[VersionResult.incomparable = NaN] = "incomparable";
  237. }(VersionResult || (VersionResult = {}));
  238. class Core {
  239. constructor() {
  240. this.url = Core.currentUrl();
  241. }
  242. static Render(element, id) {
  243. let container = document.getElementById(id);
  244. if (!container) {
  245. let script = unsafeWindow.window.document.createElement("div");
  246. script.id = id, unsafeWindow.window.document.head.append(script), container = document.getElementById(id);
  247. }
  248. ReactDOM__default.default.render(element, container);
  249. }
  250. static appendTo(selector, html) {
  251. $(selector).append(html);
  252. }
  253. static prepend(selector, html) {
  254. $(selector).prepend(html);
  255. }
  256. static lazyload(callback, time = 5) {
  257. return __awaiter(this, void 0, void 0, (function*() {
  258. return new Promise(resolve => {
  259. setTimeout(() => __awaiter(this, void 0, void 0, (function*() {
  260. yield callback(), resolve();
  261. })), 1e3 * time);
  262. });
  263. }));
  264. }
  265. static autoLazyload(is_ok, callback, time = 5) {
  266. return __awaiter(this, void 0, void 0, (function*() {
  267. return new Promise(resolve => __awaiter(this, void 0, void 0, (function*() {
  268. is_ok() ? (yield callback(), Logger.debug("\u81ea\u52a8\u5ef6\u8fdf\u56de\u8c03\u6267\u884c\u5b8c\u6bd5,\u5ef6\u65f6\u65f6\u95f4:" + time),
  269. resolve()) : setTimeout(() => {
  270. Core.autoLazyload(is_ok, callback, time).then(() => resolve());
  271. }, 1e3 * time);
  272. })));
  273. }));
  274. }
  275. static sleep(time) {
  276. return new Promise(resolve => {
  277. setTimeout(() => {
  278. resolve();
  279. }, 1e3 * time);
  280. });
  281. }
  282. static random(min, max) {
  283. let range = max - min, rand = Math.random();
  284. return min + Math.round(rand * range);
  285. }
  286. static randStr(len = 4) {
  287. let $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", maxPos = $chars.length, pwd = "";
  288. for (let i = 0; i < len; i++) pwd += $chars.charAt(Math.floor(Math.random() * maxPos));
  289. return pwd;
  290. }
  291. static background(callback, time = 5) {
  292. setInterval(() => {
  293. callback();
  294. }, 1e3 * time);
  295. }
  296. static get head() {
  297. return unsafeWindow.window.document.head;
  298. }
  299. static isNumber(a) {
  300. return !Array.isArray(a) && a - parseFloat(a) >= 0;
  301. }
  302. static addUrl(key, url) {
  303. GM_setValue(key, url);
  304. }
  305. static openUrl(key) {
  306. this.open(GM_getValue(key));
  307. }
  308. static getPar(option, url = window.location.search) {
  309. let v = url.match(new RegExp("[?&]" + option + "=([^&]+)", "i"));
  310. return null == v || v.length < 1 ? "" : v[1];
  311. }
  312. static appendCss(url) {
  313. let linkCSS = document.createElement("link");
  314. linkCSS.type = "text/css", linkCSS.rel = "stylesheet", linkCSS.href = url, Core.head.appendChild(linkCSS);
  315. }
  316. static appendCssContent(content) {
  317. let Style = document.createElement("style");
  318. Style.innerHTML = content, Core.head.appendChild(Style);
  319. }
  320. bodyAppendCss(url) {
  321. $("body").append($('<link rel="stylesheet" href="' + url + '">'));
  322. }
  323. static bodyAppend(html) {
  324. $("body").append(html);
  325. }
  326. static bodyPrepend(html) {
  327. $("body").prepend(html);
  328. }
  329. static appendJs(url) {
  330. let linkScript = document.createElement("script");
  331. linkScript.type = "text/javascript", linkScript.src = url, this.head.appendChild(linkScript);
  332. }
  333. bodyAppendJs(url) {
  334. $("body").append($('<script type="text/javascript" src="' + url + '"><\/script>'));
  335. }
  336. static currentUrl() {
  337. return window.location.href;
  338. }
  339. static get url() {
  340. return window.location.href;
  341. }
  342. static inIframe() {
  343. return !(!self.frameElement || "IFRAME" != self.frameElement.tagName) || (window.frames.length != parent.frames.length || self != top);
  344. }
  345. static format(time, fmt = "yyyy-MM-dd hh:mm:ss") {
  346. let o = {
  347. "M+": time.getMonth() + 1,
  348. "d+": time.getDate(),
  349. "h+": time.getHours(),
  350. "m+": time.getMinutes(),
  351. "s+": time.getSeconds(),
  352. "q+": Math.floor((time.getMonth() + 3) / 3),
  353. S: time.getMilliseconds()
  354. };
  355. /(y+)/.test(fmt) && (fmt = fmt.replace(RegExp.$1, (time.getFullYear() + "").substr(4 - RegExp.$1.length)));
  356. for (let k in o) new RegExp("(" + k + ")").test(fmt) && (fmt = fmt.replace(RegExp.$1, 1 == RegExp.$1.length ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)));
  357. return fmt;
  358. }
  359. static sizeFormat(value) {
  360. if (value === +value) {
  361. let unit = [ "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" ], index = Math.floor(Math.log(value) / Math.log(1024));
  362. return `${(value / Math.pow(1024, index)).toFixed(1)}${unit[index]}`;
  363. }
  364. return "";
  365. }
  366. static encode(str) {
  367. return window.btoa(str);
  368. }
  369. static decode(str) {
  370. return window.atob(str);
  371. }
  372. static open(url, loadInBackGround = !1) {
  373. if (Core.getBrowser() == BrowerType.Safiri && "undefined" == typeof GM_openInTab) {
  374. if (void 0 === (null === GM || void 0 === GM ? void 0 : GM.openInTab)) return void window.open(url, "_blank");
  375. null === GM || void 0 === GM || GM.openInTab(url, loadInBackGround);
  376. }
  377. GM_openInTab(url, loadInBackGround);
  378. }
  379. static click(selector, callback) {
  380. $(selector).on("click", callback);
  381. }
  382. static uuid(len = 10, split = !1, radix = 0) {
  383. let i, chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""), uuid = [];
  384. if (radix = 0 == radix ? radix || chars.length : radix, split) {
  385. let r;
  386. for (uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-", uuid[14] = "4", i = 0; i < 36; i++) uuid[i] || (r = 0 | 16 * Math.random(),
  387. uuid[i] = chars[19 == i ? 3 & r | 8 : r]);
  388. } else for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix];
  389. return uuid.join("");
  390. }
  391. static getBrowser() {
  392. let browser = !1, userAgent = window.navigator.userAgent.toLowerCase();
  393. return null != userAgent.match(/firefox/) ? browser = BrowerType.Firefox : null != userAgent.match(/edge/) ? browser = BrowerType.Edge : null != userAgent.match(/edg/) ? browser = BrowerType.Edg : null != userAgent.match(/bidubrowser/) ? browser = BrowerType.Baidu : null != userAgent.match(/lbbrowser/) ? browser = BrowerType.Liebao : null != userAgent.match(/ubrowser/) ? browser = BrowerType.UC : null != userAgent.match(/qqbrowse/) ? browser = BrowerType.QQ : null != userAgent.match(/metasr/) ? browser = BrowerType.Sogou : null != userAgent.match(/opr/) ? browser = BrowerType.Opera : null != userAgent.match(/maxthon/) ? browser = BrowerType.Maxthon : null != userAgent.match(/2345explorer/) ? browser = BrowerType.Ie2345 : null != userAgent.match(/chrome/) ? browser = navigator.mimeTypes.length > 10 ? BrowerType.Se360 : BrowerType.Chrome : null != userAgent.match(/safari/) && (browser = BrowerType.Safiri),
  394. browser;
  395. }
  396. static getPercent(num, total) {
  397. return num = parseFloat(String(num)), total = parseFloat(String(total)), isNaN(num) || isNaN(total) ? 0 : total <= 0 ? "0" : Math.round(num / total * 1e4) / 100;
  398. }
  399. static getReact(dom, traverseUp = 0) {
  400. const domFiber = dom[Object.keys(dom).find(key => key.startsWith("__reactFiber$") || key.startsWith("__reactInternalInstance$"))];
  401. if (null == domFiber) return null;
  402. if (domFiber._currentElement) {
  403. let compFiber = domFiber._currentElement._owner;
  404. for (let i = 0; i < traverseUp; i++) compFiber = compFiber._currentElement._owner;
  405. return compFiber._instance;
  406. }
  407. const GetCompFiber = fiber => {
  408. let parentFiber = fiber.return;
  409. for (;"string" == typeof parentFiber.type; ) parentFiber = parentFiber.return;
  410. return parentFiber;
  411. };
  412. let compFiber = GetCompFiber(domFiber);
  413. for (let i = 0; i < traverseUp; i++) compFiber = GetCompFiber(compFiber);
  414. return compFiber.stateNode || compFiber;
  415. }
  416. static copyText(text) {
  417. const textArea = document.createElement("textarea");
  418. return textArea.style.position = "fixed", textArea.style.visibility = "-10000px",
  419. textArea.value = text, document.body.appendChild(textArea), textArea.focus(), textArea.select(),
  420. document.execCommand("copy") ? (document.body.removeChild(textArea), !0) : (document.body.removeChild(textArea),
  421. !1);
  422. }
  423. static getGmCookie(key, domain = "") {
  424. return new Promise((resolve, reject) => {
  425. if ("undefined" == typeof GM_cookie) return void resolve("");
  426. let obj = {
  427. name: key,
  428. url: Core.url
  429. };
  430. domain && (obj.domain = domain), GM_cookie.list(obj, (cookies, error) => {
  431. (null == cookies ? void 0 : cookies.length) > 0 ? resolve(cookies[0].value) : (Logger.warn(`get cookie [${key}] is error:${error}`),
  432. resolve(""));
  433. });
  434. });
  435. }
  436. static getCookie(key) {
  437. let arr = document.cookie.replace(/\s/g, "").split(";");
  438. for (let i = 0, l = arr.length; i < l; i++) {
  439. let tempArr = arr[i].split("=");
  440. if (tempArr[0] == key) return decodeURIComponent(tempArr[1]);
  441. }
  442. return "";
  443. }
  444. }
  445. const Min = 60, Hour = 60 * Min, Day = 24 * Hour, Week = 7 * Day;
  446. function styleInject(css, ref) {
  447. var insertAt, head, style;
  448. void 0 === ref && (ref = {}), insertAt = ref.insertAt, css && "undefined" != typeof document && (head = document.head || document.getElementsByTagName("head")[0],
  449. (style = document.createElement("style")).type = "text/css", "top" === insertAt && head.firstChild ? head.insertBefore(style, head.firstChild) : head.appendChild(style),
  450. style.styleSheet ? style.styleSheet.cssText = css : style.appendChild(document.createTextNode(css)));
  451. }
  452. css_248z$5 = 'html .aside-nav {\n -ms-text-size-adjust: 100%;\n -webkit-text-size-adjust: 100%;\n -webkit-font-smoothing: antialiased;\n font-size: 62.5%\n}\n\nbody .aside-nav {\n font-family: "Helvetica Neue", Helvetica, "Microsoft YaHei", Arial, sans-serif;\n margin: 0;\n font-size: 1.6rem;\n color: #4e546b\n}\n\n.aside-nav-LT {\n top: 0 !important;\n}\n\n.aside-nav-LC {\n top: 40% !important;\n}\n\n.aside-nav-LB {\n bottom: 0 !important;\n}\n\n\n.aside-nav {\n position: fixed;\n bottom: 0;\n left: -47px;\n width: 260px;\n height: 260px;\n -webkit-filter: url(#goo);\n filter: url(#goo);\n -ms-user-select: none;\n -moz-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n opacity: .75;\n z-index: 99999\n}\n\n.aside-nav.no-filter {\n -webkit-filter: none;\n filter: none\n}\n\n.aside-nav .aside-menu {\n position: absolute;\n width: 70px;\n height: 70px;\n -webkit-border-radius: 50%;\n border-radius: 50%;\n background: #f34444;\n left: -95px;\n top: 0;\n right: 0;\n bottom: 0;\n margin: auto;\n text-align: center;\n line-height: 70px;\n color: #fff;\n font-size: 20px;\n z-index: 1;\n cursor: move\n}\n\n.aside-nav .menu-item {\n position: absolute;\n width: 60px;\n height: 60px;\n background-color: #ff7676;\n left: -95px;\n top: 0;\n right: 0;\n bottom: 0;\n margin: auto;\n line-height: 60px;\n text-align: center;\n -webkit-border-radius: 50%;\n border-radius: 50%;\n text-decoration: none;\n color: #fff;\n -webkit-transition: background .5s, -webkit-transform .6s;\n transition: background .5s, -webkit-transform .6s;\n -moz-transition: transform .6s, background .5s, -moz-transform .6s;\n transition: transform .6s, background .5s;\n transition: transform .6s, background .5s, -webkit-transform .6s, -moz-transform .6s;\n font-size: 14px;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n box-sizing: border-box\n}\n\n.aside-nav .menu-item:hover {\n background: #a9c734\n}\n\n.aside-nav .menu-line {\n line-height: 20px;\n padding-top: 10px\n}\n\n.aside-nav:hover {\n opacity: 1\n}\n\n.aside-nav:hover .aside-menu {\n -webkit-animation: jello 1s;\n -moz-animation: jello 1s;\n animation: jello 1s\n}\n\n.aside-nav:hover .menu-first {\n -webkit-transform: translate3d(0, -135%, 0);\n -moz-transform: translate3d(0, -135%, 0);\n transform: translate3d(0, -135%, 0)\n}\n\n.aside-nav:hover .menu-second {\n -webkit-transform: translate3d(120%, -70%, 0);\n -moz-transform: translate3d(120%, -70%, 0);\n transform: translate3d(120%, -70%, 0)\n}\n\n.aside-nav:hover .menu-third {\n -webkit-transform: translate3d(120%, 70%, 0);\n -moz-transform: translate3d(120%, 70%, 0);\n transform: translate3d(120%, 70%, 0)\n}\n\n.aside-nav:hover .menu-fourth {\n -webkit-transform: translate3d(0, 135%, 0);\n -moz-transform: translate3d(0, 135%, 0);\n transform: translate3d(0, 135%, 0)\n}\n\n@-webkit-keyframes jello {\n\n from,\n 11.1%,\n to {\n -webkit-transform: none;\n transform: none\n }\n\n 22.2% {\n -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);\n transform: skewX(-12.5deg) skewY(-12.5deg)\n }\n\n 33.3% {\n -webkit-transform: skewX(6.25deg) skewY(6.25deg);\n transform: skewX(6.25deg) skewY(6.25deg)\n }\n\n 44.4% {\n -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);\n transform: skewX(-3.125deg) skewY(-3.125deg)\n }\n\n 55.5% {\n -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);\n transform: skewX(1.5625deg) skewY(1.5625deg)\n }\n\n 66.6% {\n -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);\n transform: skewX(-.78125deg) skewY(-.78125deg)\n }\n\n 77.7% {\n -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);\n transform: skewX(0.390625deg) skewY(0.390625deg)\n }\n\n 88.8% {\n -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);\n transform: skewX(-.1953125deg) skewY(-.1953125deg)\n }\n}\n\n@-moz-keyframes jello {\n\n from,\n 11.1%,\n to {\n -moz-transform: none;\n transform: none\n }\n\n 22.2% {\n -moz-transform: skewX(-12.5deg) skewY(-12.5deg);\n transform: skewX(-12.5deg) skewY(-12.5deg)\n }\n\n 33.3% {\n -moz-transform: skewX(6.25deg) skewY(6.25deg);\n transform: skewX(6.25deg) skewY(6.25deg)\n }\n\n 44.4% {\n -moz-transform: skewX(-3.125deg) skewY(-3.125deg);\n transform: skewX(-3.125deg) skewY(-3.125deg)\n }\n\n 55.5% {\n -moz-transform: skewX(1.5625deg) skewY(1.5625deg);\n transform: skewX(1.5625deg) skewY(1.5625deg)\n }\n\n 66.6% {\n -moz-transform: skewX(-.78125deg) skewY(-.78125deg);\n transform: skewX(-.78125deg) skewY(-.78125deg)\n }\n\n 77.7% {\n -moz-transform: skewX(0.390625deg) skewY(0.390625deg);\n transform: skewX(0.390625deg) skewY(0.390625deg)\n }\n\n 88.8% {\n -moz-transform: skewX(-.1953125deg) skewY(-.1953125deg);\n transform: skewX(-.1953125deg) skewY(-.1953125deg)\n }\n}\n\n@keyframes jello {\n\n from,\n 11.1%,\n to {\n -webkit-transform: none;\n -moz-transform: none;\n transform: none\n }\n\n 22.2% {\n -webkit-transform: skewX(-12.5deg) skewY(-12.5deg);\n -moz-transform: skewX(-12.5deg) skewY(-12.5deg);\n transform: skewX(-12.5deg) skewY(-12.5deg)\n }\n\n 33.3% {\n -webkit-transform: skewX(6.25deg) skewY(6.25deg);\n -moz-transform: skewX(6.25deg) skewY(6.25deg);\n transform: skewX(6.25deg) skewY(6.25deg)\n }\n\n 44.4% {\n -webkit-transform: skewX(-3.125deg) skewY(-3.125deg);\n -moz-transform: skewX(-3.125deg) skewY(-3.125deg);\n transform: skewX(-3.125deg) skewY(-3.125deg)\n }\n\n 55.5% {\n -webkit-transform: skewX(1.5625deg) skewY(1.5625deg);\n -moz-transform: skewX(1.5625deg) skewY(1.5625deg);\n transform: skewX(1.5625deg) skewY(1.5625deg)\n }\n\n 66.6% {\n -webkit-transform: skewX(-.78125deg) skewY(-.78125deg);\n -moz-transform: skewX(-.78125deg) skewY(-.78125deg);\n transform: skewX(-.78125deg) skewY(-.78125deg)\n }\n\n 77.7% {\n -webkit-transform: skewX(0.390625deg) skewY(0.390625deg);\n -moz-transform: skewX(0.390625deg) skewY(0.390625deg);\n transform: skewX(0.390625deg) skewY(0.390625deg)\n }\n\n 88.8% {\n -webkit-transform: skewX(-.1953125deg) skewY(-.1953125deg);\n -moz-transform: skewX(-.1953125deg) skewY(-.1953125deg);\n transform: skewX(-.1953125deg) skewY(-.1953125deg)\n }\n}\n\n.animated {\n -webkit-animation-duration: 1s;\n -moz-animation-duration: 1s;\n animation-duration: 1s;\n -webkit-animation-fill-mode: both;\n -moz-animation-fill-mode: both;\n animation-fill-mode: both\n}\n\n@-webkit-keyframes bounceInUp {\n\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, .61, .355, 1);\n animation-timing-function: cubic-bezier(0.215, .61, .355, 1)\n }\n\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 800px, 0);\n transform: translate3d(0, 800px, 0)\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0)\n }\n\n 75% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0)\n }\n\n 90% {\n -webkit-transform: translate3d(0, -5px, 0);\n transform: translate3d(0, -5px, 0)\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0)\n }\n}\n\n@-moz-keyframes bounceInUp {\n\n from,\n 60%,\n 75%,\n 90%,\n to {\n -moz-animation-timing-function: cubic-bezier(0.215, .61, .355, 1);\n animation-timing-function: cubic-bezier(0.215, .61, .355, 1)\n }\n\n from {\n opacity: 0;\n -moz-transform: translate3d(0, 800px, 0);\n transform: translate3d(0, 800px, 0)\n }\n\n 60% {\n opacity: 1;\n -moz-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0)\n }\n\n 75% {\n -moz-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0)\n }\n\n 90% {\n -moz-transform: translate3d(0, -5px, 0);\n transform: translate3d(0, -5px, 0)\n }\n\n to {\n -moz-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0)\n }\n}\n\n@keyframes bounceInUp {\n\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, .61, .355, 1);\n -moz-animation-timing-function: cubic-bezier(0.215, .61, .355, 1);\n animation-timing-function: cubic-bezier(0.215, .61, .355, 1)\n }\n\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 800px, 0);\n -moz-transform: translate3d(0, 800px, 0);\n transform: translate3d(0, 800px, 0)\n }\n\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n -moz-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0)\n }\n\n 75% {\n -webkit-transform: translate3d(0, 10px, 0);\n -moz-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0)\n }\n\n 90% {\n -webkit-transform: translate3d(0, -5px, 0);\n -moz-transform: translate3d(0, -5px, 0);\n transform: translate3d(0, -5px, 0)\n }\n\n to {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0)\n }\n}\n\n.bounceInUp {\n -webkit-animation-name: bounceInUp;\n -moz-animation-name: bounceInUp;\n animation-name: bounceInUp;\n -webkit-animation-delay: 1s;\n -moz-animation-delay: 1s;\n animation-delay: 1s\n}',
  453. styleInject(css_248z$5);
  454. class Config {
  455. static get env() {
  456. return GM_info;
  457. }
  458. static get(key, defaultValue = "") {
  459. let objStr = GM_getValue(this.encode(key), null);
  460. if (objStr) {
  461. let obj = JSON.parse(objStr);
  462. if (-1 == obj.exp || obj.exp > (new Date).getTime()) return Logger.info(`cache true:${key},${obj.exp}`),
  463. obj.value;
  464. GM_deleteValue(key);
  465. }
  466. return Logger.info("cache false"), defaultValue;
  467. }
  468. static set(key, v, exp = -1) {
  469. let obj = {
  470. key: key,
  471. value: v,
  472. exp: -1 == exp ? exp : (new Date).getTime() + 1e3 * exp
  473. };
  474. Logger.debug(obj), GM_setValue(this.encode(key), JSON.stringify(obj));
  475. }
  476. static remember(key, exp, callback) {
  477. return new Promise((reso, reject) => {
  478. let v = this.get(key, null);
  479. null == v || "" === v ? callback().then(res => {
  480. this.set(key, res, exp), reso(res);
  481. }).catch(e => {
  482. reject(e);
  483. }) : (Logger.debug(v), reso(v));
  484. });
  485. }
  486. static clear(key) {
  487. GM_deleteValue(key);
  488. }
  489. static decode(str) {
  490. return atob(str);
  491. }
  492. static encode(str) {
  493. return btoa(str);
  494. }
  495. static inc(s) {
  496. let v = Config.get(s, 0);
  497. v++, Config.set(s, v);
  498. }
  499. }
  500. !function(ConfigEnum) {
  501. ConfigEnum.WangPan_Aria_Host = "WangPan_Aria_Host", ConfigEnum.WangPan_Aria_Port = "WangPan_Aria_Port",
  502. ConfigEnum.WangPan_Aria_Token = "WangPan_Aria_Token", ConfigEnum.WangPan_Aria_Path = "WangPan_Aria_Path",
  503. ConfigEnum.WangPan_Aria_Dir = "WangPan_Aria_Dir", ConfigEnum.Jiexi_Cus_Interface = "Jiexi_Cus_Interface",
  504. ConfigEnum.Jiexi_Cus_Postion = "Jiexi_Cus_Postion", ConfigEnum.Jiexi_Interface_Last_Play = "Jiexi_Interface_Last_Play",
  505. ConfigEnum.Jiexi_Interface_Last_Play_Url = "Jiexi_Interface_Last_Play_Url", ConfigEnum.BiliPc_Cover = "bili_pc_cover",
  506. ConfigEnum.BiliPc_Video_Download = "bili_pc_video_download", ConfigEnum.BiliPc_Triple_Click = "bili_pc_triple_click",
  507. ConfigEnum.AutoJump_ZhiHu = "AutoJump_ZhiHu", ConfigEnum.AutoJump_CSDN = "AutoJump_CSDN",
  508. ConfigEnum.AutoJump_JianShu = "AutoJump_JianShu", ConfigEnum.AutoJump_Gitee = "AutoJump_Gitee",
  509. ConfigEnum.AutoJump_JueJin = "AutoJump_JueJin", ConfigEnum.AutoJump_Weibo = "AutoJump_Weibo",
  510. ConfigEnum.AutoJump_TuXiaoChao = "AutoJump_TuXiaoChao", ConfigEnum.AutoJump_OsCh = "AutoJump_OsCh",
  511. ConfigEnum.AutoJump_AiFaDian = "AutoJump_AiFaDian", ConfigEnum.AutoJump_Baidu = "AutoJump_Baidu",
  512. ConfigEnum.AutoJump_DouBan = "AutoJump_DouBan", ConfigEnum.AutoJump_g17173 = "AutoJump_g17173",
  513. ConfigEnum.AutoJump_TencentDoc = "AutoJump_TencentDoc", ConfigEnum.CSDN_OpImgLink = "csdn_op_img_link",
  514. ConfigEnum.CSDN_OpAdClean = "csdn_op_ad_clean", ConfigEnum.CSDN_OpArticleClean = "csdn_op_article_clean",
  515. ConfigEnum.CSDN_OpCommentClean = "csdn_op_comment_clean", ConfigEnum.CSDN_OpClipboardClean = "csdn_op_clipboard_clean",
  516. ConfigEnum.Search_Helper_Switch = "search_helper_switch", ConfigEnum.Search_OptMenuMethod = "search_opt_menu_method",
  517. ConfigEnum.Search_OptMenuPos = "search_opt_menu_pos", ConfigEnum.Search_Helper_Postion = "search_helper_postion";
  518. }(ConfigEnum || (ConfigEnum = {})), function(Common) {
  519. class Menu {
  520. constructor() {
  521. this.core = new Core, this.site = /tv.wandhi.com/i, this.userAgent = navigator.userAgent,
  522. this.menusClass = [ "first", "second", "third", "fourth", "fifth" ], this.menuSelector = "#Wandhi-nav";
  523. }
  524. loader() {}
  525. getBody(option) {
  526. return `<svg width="0" height="0"><defs><filter id="goo"><feGaussianBlur in="SourceGraphic" stdDeviation="10" result="blur"></feGaussianBlur><feColorMatrix in="blur" mode="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 19 -9" result="goo"></feColorMatrix><feComposite in="SourceGraphic" in2="goo" operator="atop"></feComposite></filter></defs></svg><div class="aside-nav bounceInUp animated aside-nav-${Config.get(ConfigEnum.Jiexi_Cus_Postion, "LC")}" id="Wandhi-nav"><label for="" class="aside-menu" title="\u6309\u4f4f\u62d6\u52a8">VIP</label>${option}</div>`;
  527. }
  528. Init(menus, callback, skipIframe = !0) {
  529. if (Core.inIframe() && skipIframe) return;
  530. this.loader();
  531. let str = "";
  532. menus.forEach((element, index) => {
  533. str += `<a href="javascript:void(0)" title="${element.title}" data-cat="${element.type}" class="menu-item menu-line menu-${this.menusClass[index]}">${element.show}</a>`;
  534. }), Logger.info("\u8ffd\u52a0\u83dc\u5355"), Core.bodyAppend(this.getBody(str)),
  535. /Safari|iPhone/i.test(this.userAgent) && /chrome/i.test(this.userAgent) && $("#Wandhi-nav").addClass("no-filter");
  536. const drags = {
  537. down: !1,
  538. x: 0,
  539. y: 0,
  540. winWid: 0,
  541. winHei: 0,
  542. clientX: 0,
  543. clientY: 0
  544. };
  545. let asideNav = $(this.menuSelector)[0];
  546. $("body").on("mousedown", "" + this.menuSelector, (function(a) {
  547. const getCss = (a, e) => {
  548. var _a, _b, _c;
  549. return null !== (_b = null === (_a = document.defaultView) || void 0 === _a ? void 0 : _a.getComputedStyle(a, null)[e]) && void 0 !== _b ? _b : null !== (_c = a.currentStyle) && void 0 !== _c ? _c : a.currentStyle[e];
  550. };
  551. drags.down = !0, drags.clientX = a.clientX, drags.clientY = a.clientY, drags.x = parseInt(getCss(this, "left")),
  552. drags.y = parseInt(getCss(this, "top")), drags.winHei = $(window).height(), drags.winWid = $(window).width(),
  553. $(document).on("mousemove", (function(a) {
  554. var e = a.clientX - drags.clientX, t = a.clientY - drags.clientY;
  555. asideNav = asideNav || $("#Wandhi-nav")[0], asideNav.style.top = drags.y + t + "px",
  556. asideNav.style.left = drags.x + e + "px";
  557. }));
  558. })).on("mouseup", "" + this.menuSelector, (function() {
  559. drags.down = !1, $(document).off("mousemove");
  560. })), Menu.fullScreenMirror(), callback.call(this);
  561. }
  562. static fullScreenMirror() {
  563. unsafeWindow.document.onfullscreenchange = e => {
  564. Logger.debug("fullElement:" + unsafeWindow.document.fullscreenElement), Menu.autoHide && (unsafeWindow.document.fullscreenElement ? $("#" + Menu.mainId).hide() : $("#" + Menu.mainId).show());
  565. };
  566. }
  567. static close() {
  568. Menu.autoHide = !1, $("#" + Menu.mainId).hide();
  569. }
  570. }
  571. Menu.mainId = "Wandhi-nav", Menu.autoHide = !0, Common.Menu = Menu;
  572. }(Common || (Common = {}));
  573. class PluginBase {
  574. constructor() {
  575. this._unique = !0, this.semiui = !1, this.menu = new Common.Menu, this.Process = () => {
  576. this.semiui && Core.appendCss("https://registry.npmmirror.com/@douyinfe/semi-ui/2.51.0/files/dist/css/semi.min.css"),
  577. this.loader(), this.run();
  578. }, this._appName = "base";
  579. }
  580. unique() {
  581. return this._unique;
  582. }
  583. linkTest(url) {
  584. url || (url = Core.currentUrl());
  585. let flag = !1;
  586. return this.rules.forEach((v, k) => !v.test(url) || (flag = !0, this.site = k, !1)),
  587. flag;
  588. }
  589. appName() {
  590. return this._appName;
  591. }
  592. }
  593. !function(SiteEnum) {
  594. SiteEnum.All = "All", SiteEnum.Settings = "Settings", SiteEnum.Settings_Jiexi_Opt = "Settings_Jiexi_Opt",
  595. SiteEnum.Settings_AutoJump = "Settings_AutoJump", SiteEnum.Settings_AutoJump_Opt = "Settings_AutoJump_Opt",
  596. SiteEnum.Settings_CSDN = "Settings_CSDN", SiteEnum.Settings_CSDN_Opt = "Settings_CSDN_Opt",
  597. SiteEnum.Settings_Search = "Settings_Search", SiteEnum.Settings_Search_Opt = "Settings_Search_Opt",
  598. SiteEnum.Settings_WangPan_Opt = "Settings_WangPan_Opt", SiteEnum.Settings_Bili_Pc_Opt = "Settings_Bili_Pc_Opt",
  599. SiteEnum.TaoBao = "TaoBao", SiteEnum.TMall = "TMall", SiteEnum.JingDong = "JingDong",
  600. SiteEnum.JingDongList = "JingDongList", SiteEnum.IQiYi = "IQiYi", SiteEnum.YouKu = "YouKu",
  601. SiteEnum.LeShi = "LeShi", SiteEnum.TuDou = "TuDou", SiteEnum.Tencent_V = "Tencent_V",
  602. SiteEnum.MangGuo = "MangGuo", SiteEnum.SoHu = "SoHu", SiteEnum.Acfun = "Acfun",
  603. SiteEnum.BiliBili = "BiliBili", SiteEnum.BiliMobile = "BiliMobile", SiteEnum.M1905 = "M1905",
  604. SiteEnum.PPTV = "PPTV", SiteEnum.YinYueTai = "YinYueTai", SiteEnum.WangYi = "WangYi",
  605. SiteEnum.Tencent_M = "Tencent_M", SiteEnum.KuGou = "KuGou", SiteEnum.KaoLa = "KaoLa",
  606. SiteEnum.KuWo = "KuWo", SiteEnum.XiaMi = "XiaMi", SiteEnum.TaiHe = "TaiHe", SiteEnum.QingTing = "QingTing",
  607. SiteEnum.LiZhi = "LiZhi", SiteEnum.MiGu = "MiGu", SiteEnum.XiMaLaYa = "XiMaLaYa",
  608. SiteEnum.WenKu = "WenKu", SiteEnum.YouTuBe = "YouTuBe", SiteEnum.SXB = "SXB", SiteEnum.BDY = "BDY",
  609. SiteEnum.ALY = "ALY", SiteEnum.ALY_P = "ALY_P", SiteEnum.BDY1 = "BDY1", SiteEnum.LZY = "LZY",
  610. SiteEnum.SuNing = "SuNing", SiteEnum.Steam = "Steam", SiteEnum.Vp = "Vp", SiteEnum.CSDN = "CSDN",
  611. SiteEnum.CSDN_Download = "CSDN_Download", SiteEnum.ZhiHu = "ZhiHu", SiteEnum.JianShu = "JianShu",
  612. SiteEnum.JueJin = "JueJin", SiteEnum.Gitee = "Gitee", SiteEnum.Weibo = "Weibo",
  613. SiteEnum.TuXiaoChao = "TuXiaoChao", SiteEnum.OsCh = "OsCh", SiteEnum.AiFaDian = "AiFaDian",
  614. SiteEnum.Baidu = "Baidu", SiteEnum.BaiduPanMain = "BaiduPanMain", SiteEnum.BaiduPanHome = "BaiduPanHome",
  615. SiteEnum.DouBan = "DouBan", SiteEnum.g17173 = "g17173", SiteEnum.Google = "Google",
  616. SiteEnum.SoGou = "SoGou", SiteEnum.KuaKeHome = "KuaKeHome", SiteEnum.TencentDoc = "TencentDoc",
  617. SiteEnum.TencentDiskDoc = "TencentDiskDoc", SiteEnum.TencentMail = "TencentMail",
  618. SiteEnum.TencentCloudBlog = "TencentCloudBlog", SiteEnum.SsPAi = "SsPai", SiteEnum.FeiShuDoc = "FeiShuDoc",
  619. SiteEnum.TencentQQ = "TencentQQ", SiteEnum.Shuma = "Shuma", SiteEnum.BD_DETAIL_OLD = "BD_DETAIL_OLD",
  620. SiteEnum.BD_DETAIL_NEW = "BD_DETAIL_NEW", SiteEnum.BD_DETAIL_Share = "BD_DETAIL_Share",
  621. SiteEnum.Gwd = "Gwd", SiteEnum.Xxqg = "Xxqg", SiteEnum.Juhaowan = "Juhaowan", SiteEnum.MhXin = "MhXin",
  622. SiteEnum.V2EX = "V2EX", SiteEnum.Github = "Github", SiteEnum.NodeSeek = "NodeSeek",
  623. SiteEnum.HiTv = "HiTv", SiteEnum.HiTvCheck = "HiTvCheck", SiteEnum.Xhs = "Xhs",
  624. SiteEnum.KingSoftDoc = "KingSoftDoc", SiteEnum.BingCn = "BingCn", SiteEnum.Bing = "Bing",
  625. SiteEnum.SiChuang = "SiChuang", SiteEnum.Uisdc = "Uisdc", SiteEnum.YuQue = "YuQue",
  626. SiteEnum.KDocs = "KDocs", SiteEnum.CTO51 = "CTO51", SiteEnum.WenJuanXing = "WenJuanXing",
  627. SiteEnum.InfoQ = "InfoQ", SiteEnum.WeChatWork = "WeChatWork", SiteEnum.KuaKeShare = "KuaKeShare",
  628. SiteEnum.GitCode = "GitCode";
  629. }(SiteEnum || (SiteEnum = {}));
  630. class AjaxOption {
  631. constructor(_url, _methodType = "GET", _data, _success, _header = new Map, timeOut = 60) {
  632. this.url = _url, this.methodType = _methodType, this.onSuccess = _success, this.onError = _success,
  633. this.data = _data, this.headers = _header, this.timeOut = timeOut;
  634. }
  635. getData() {
  636. if (this.data instanceof FormData) return this.data;
  637. if (this.data instanceof Map) {
  638. let fd = new FormData;
  639. return this.data.forEach((v, k) => {
  640. fd.append(k, v);
  641. }), fd;
  642. }
  643. {
  644. let fd = new FormData;
  645. for (var i in this.data) fd.append(i, this.data[i]);
  646. return fd;
  647. }
  648. }
  649. }
  650. class Http {
  651. constructor() {}
  652. static ajax(option) {
  653. var _a, _b, _c;
  654. option.headers.set("User-Agent", null !== (_a = unsafeWindow.navigator.userAgent) && void 0 !== _a ? _a : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36"),
  655. 0 == option.headers.has("Accept") && option.headers.set("Accept", "application/atom+xml,application/xml,text/xml");
  656. let head = new HttpHeaders;
  657. option.url.indexOf("wandhi") > 0 && (head.version = Config.env.script.version, head.auth = null !== (_b = Config.env.script.author) && void 0 !== _b ? _b : "",
  658. head.namespace = null !== (_c = Config.env.script.namespace) && void 0 !== _c ? _c : ""),
  659. option.headers.forEach((v, k) => {
  660. head[k] = v;
  661. }), GM_xmlhttpRequest({
  662. url: option.url,
  663. method: option.methodType,
  664. headers: head,
  665. data: option.getData(),
  666. timeout: 1e3 * option.timeOut,
  667. onload: function(res) {
  668. var _a, _b;
  669. try {
  670. null === (_a = option.onSuccess) || void 0 === _a || _a.call(option, "POST" == option.methodType ? JSON.parse(res.responseText) : res.responseText);
  671. } catch (error) {
  672. null === (_b = option.onSuccess) || void 0 === _b || _b.call(option, null);
  673. }
  674. },
  675. onerror: function(res) {
  676. var _a, _b, _c;
  677. (null === (_a = res.finalUrl) || void 0 === _a ? void 0 : _a.indexOf("adguard.org")) > 0 || (null === (_b = option.url) || void 0 === _b ? void 0 : _b.indexOf("jsdelivr")) > 0 ? option.onError(null) : null === (_c = option.onError) || void 0 === _c || _c.call(option, res);
  678. }
  679. });
  680. }
  681. static ajaxNew(url, method, data, header = new Map, dataType) {
  682. var _a, _b;
  683. let head = new HttpHeaders;
  684. header.size > 0 && header.forEach((v, k) => {
  685. head[k] = v;
  686. }), url.indexOf("wandhi") > 0 && (head.version = Config.env.script.version, head.auth = null !== (_a = Config.env.script.author) && void 0 !== _a ? _a : "",
  687. head.namespace = null !== (_b = Config.env.script.namespace) && void 0 !== _b ? _b : "");
  688. let _data = (_data => {
  689. if (_data instanceof FormData) return data;
  690. if (data instanceof Map) {
  691. let fd = new FormData;
  692. return _data.forEach((v, k) => {
  693. let _v;
  694. _v = "string" == typeof v ? v.toString() : JSON.stringify(v), fd.append(k, _v);
  695. }), fd;
  696. }
  697. return JSON.stringify(_data);
  698. })(data);
  699. return Logger.debug(_data), null != dataType ? "multipart/form-data" != dataType && (head["Content-Type"] = dataType) : data instanceof FormData || data instanceof Map ? head["Content-Type"] = "application/x-www-form-urlencoded; charset=utf-8" : head["Content-Type"] = "application/json; charset=utf-8",
  700. new Promise((resolve, reject) => {
  701. GM_xmlhttpRequest({
  702. url: url,
  703. method: method,
  704. headers: head,
  705. data: _data,
  706. onload: res => {
  707. try {
  708. resolve(JSON.parse(res.responseText));
  709. } catch (error) {
  710. Logger.debug(error), resolve(res.responseText);
  711. }
  712. },
  713. onerror: err => {
  714. Logger.debug(err), reject(err);
  715. },
  716. ontimeout: () => {
  717. Logger.debug("\u8bf7\u6c42\u8d85\u65f6:" + url), reject("\u8bf7\u6c42\u8d85\u65f6");
  718. }
  719. });
  720. });
  721. }
  722. static getData(url, callback) {
  723. $.getJSON(url, (function(d) {
  724. callback(d);
  725. }));
  726. }
  727. static JqGet(url, callback, head = new Map) {
  728. Http.get(url, new Map, head).then(d => {
  729. callback(d);
  730. });
  731. }
  732. static post(url, data, timeOut = 10) {
  733. return new Promise((function(resolve) {
  734. Http.ajax(new AjaxOption(url, "POST", data, (function(data) {
  735. resolve(data);
  736. }), new Map, timeOut));
  737. }));
  738. }
  739. static get(url, data = new Map, head = new Map, loading = !0, time_out = 10) {
  740. return new Promise((function(resolve, reject) {
  741. Http.ajax(new AjaxOption(url, "GET", data, (function(data) {
  742. var _a;
  743. try {
  744. let res = null !== (_a = JSON.parse(data)) && void 0 !== _a ? _a : data;
  745. resolve(res);
  746. } catch (error) {
  747. Logger.debug(error), reject();
  748. }
  749. }), head, time_out));
  750. }));
  751. }
  752. static getWithHead(url, data = new Map, head = new Map, time_out = 10) {
  753. return new Promise((function(resolve, reject) {
  754. Http.ajax(new AjaxOption(url, "GET", data, (function(data) {
  755. var _a;
  756. try {
  757. let res = null !== (_a = JSON.parse(data)) && void 0 !== _a ? _a : data;
  758. resolve(res);
  759. } catch (error) {
  760. Logger.debug(error), reject();
  761. }
  762. }), head, time_out));
  763. }));
  764. }
  765. static postWithHead(url, data = new Map, head = new Map, time_out = 10) {
  766. return new Promise((function(resolve, reject) {
  767. Http.ajax(new AjaxOption(url, "POST", data, (function(data) {
  768. try {
  769. resolve(data);
  770. } catch (error) {
  771. Logger.debug([ url, error ]), reject();
  772. }
  773. }), head, time_out));
  774. }));
  775. }
  776. static get_text(url) {
  777. return new Promise((function(resolve) {
  778. Http.ajax(new AjaxOption(url, "GET", new Map, (function(data) {
  779. resolve(data);
  780. })));
  781. }));
  782. }
  783. static get302(url) {
  784. return new Promise((function(resolve) {
  785. GM_xmlhttpRequest({
  786. url: url,
  787. onload: function(response) {
  788. resolve(response.finalUrl);
  789. },
  790. onabort: () => {
  791. resolve("");
  792. },
  793. method: "GET",
  794. onerror: response => {
  795. resolve("");
  796. }
  797. });
  798. }));
  799. }
  800. }
  801. class HttpHeaders {}
  802. class Route {
  803. static get apiRoot() {
  804. return "https://api.huizhek.com/api";
  805. }
  806. static baseApi(api, data, callback, timeOut = 10) {
  807. Http.post(Route.apiRoot + api, data, timeOut).then(res => {
  808. callback(res);
  809. });
  810. }
  811. static querySbx(id, callback) {
  812. "" !== Config.get(this.sxb_key, "") ? this.query365(id, Config.get(this.sxb_key), callback) : this.queryValue("sxb_anhao", res => {
  813. this.query365(id, res.data, callback);
  814. });
  815. }
  816. static sbxFeedback(id, answer) {
  817. this.baseApi("/tools/record", new Map([ [ "id", id ], [ "data", answer ], [ "anhao", Config.get(this.sxb_key) ] ]), () => {});
  818. }
  819. static query365(id, anhao, callback) {
  820. let api = Config.get("sxb_api");
  821. api ? Http.post(api, new Map([ [ "docinfo", `https://www.shangxueba.com/ask/${id}.html` ], [ "anhao", anhao ] ])).then(res => {
  822. callback(res);
  823. }) : this.queryValue("sxb_api", res => {
  824. Config.set("sxb_api", res.data, 864e5), Http.post(res.data, new Map([ [ "docinfo", `https://www.shangxueba.com/ask/${id}.html` ], [ "anhao", anhao ] ]));
  825. });
  826. }
  827. static queryValue(key, callback) {
  828. this.baseApi(Route.config, new Map([ [ "key", key ] ]), callback);
  829. }
  830. static queryHistory(url, siteType, callback) {
  831. this.baseApi(this.history, new Map([ [ "url", url ], [ "type", siteType ] ]), callback);
  832. }
  833. static queryHistoryV5(url) {
  834. return new Promise((reso, reje) => {
  835. this.baseApi(this.historyv3, new Map([ [ "url", url ] ]), res => {
  836. res.code ? reso(res) : reje(res);
  837. });
  838. });
  839. }
  840. static queryHistoryV4Pre(url) {
  841. return new Promise((reso, reje) => {
  842. this.baseApi(url, new Map([]), res => {
  843. res.code ? reso(res) : reje(res);
  844. });
  845. });
  846. }
  847. static queryHistoryV4(url, pre, callback) {
  848. Http.JqGet(pre, res => {
  849. Http.JqGet(url, callback, new Map([ [ ":authority", "browser.gwdang.com" ], [ "referer", unsafeWindow.window.location.origin ] ]));
  850. });
  851. }
  852. static queryBiliImg(aid, callback) {
  853. Http.getData(`${this.biliInfo}?aid=${aid}`, callback);
  854. }
  855. static queryBiliDown(aid, cid, callback) {
  856. Http.get(`${this.bilidown}?cid=${cid}&avid=${aid}&qn=112&fnval=4048&s=wandhi`).then(res => {
  857. callback(res);
  858. });
  859. }
  860. static queryBiliDownWeb(aid, cid) {
  861. return Http.get(`https://api.bilibili.com/x/player/wbi/playurl?avid=${aid}&cid=${cid}`);
  862. }
  863. static queryCoupons(itemId, callback) {
  864. this.baseApi(this.coupons, new Map([ [ "id", itemId ] ]), callback);
  865. }
  866. static queryJdCoupons(itemId, callback) {
  867. Route.baseApi(Route.jd_coupons, new Map([ [ "item_id", itemId ] ]), callback);
  868. }
  869. static querySnCoupons(url, callback) {
  870. Route.baseApi(Route.sn_coupons, new Map([ [ "url", url ] ]), callback);
  871. }
  872. static queryVpCoupons(url, callback) {
  873. Route.baseApi(Route.vp_coupons, new Map([ [ "url", url ] ]), callback);
  874. }
  875. static queryKlCoupons(itemId) {
  876. return new Promise(reso => {
  877. Route.baseApi(Route.kl_coupons, new Map([ [ "itemId", itemId ] ]), res => {
  878. reso(res);
  879. });
  880. });
  881. }
  882. static couponQuery(itemId, type, callback) {
  883. Route.baseApi("/coupons/info", new Map([ [ "id", itemId ], [ "type", type ] ]), callback);
  884. }
  885. static _getSurl() {
  886. let reg = /(?<=s\/|surl=)([a-zA-Z0-9_-]+)/g;
  887. return reg.test(Core.url) ? Core.url.match(reg)[0] : "";
  888. }
  889. static baiduDriect(fids, accessToken) {
  890. return __awaiter(this, void 0, void 0, (function*() {
  891. let url = `https://pan.baidu.com/rest/2.0/xpan/multimedia?method=filemetas&dlink=1&fsids=${fids}&access_token=${accessToken}`;
  892. return Http.ajaxNew(url, "GET", null, new Map([ [ "User-Agent", "pan.baidu.com" ] ]));
  893. }));
  894. }
  895. static baiduAccessToken() {
  896. return Http.get302("https://openapi.baidu.com/oauth/2.0/authorize?client_id=IlLqBbU3GjQ0t46TRwFateTprHWl39zF&response_type=token&redirect_uri=oob&scope=basic,netdisk");
  897. }
  898. static baiduAccessTokenAuth() {
  899. var _a, _b;
  900. return __awaiter(this, void 0, void 0, (function*() {
  901. let url = "https://openapi.baidu.com/oauth/2.0/authorize?client_id=IlLqBbU3GjQ0t46TRwFateTprHWl39zF&response_type=token&redirect_uri=oob&scope=basic,netdisk", html = yield Http.get_text(url), data = new Map;
  902. return data.set("grant_permissions_arr", "netdisk"), data.set("bdstoken", null === (_a = null == html ? void 0 : html.match(/name="bdstoken"\s+value="([^"]+)"/)) || void 0 === _a ? void 0 : _a[1]),
  903. data.set("client_id", null === (_b = null == html ? void 0 : html.match(/name="client_id"\s+value="([^"]+)"/)) || void 0 === _b ? void 0 : _b[1]),
  904. data.set("response_type", "token"), data.set("display", "page"), data.set("grant_permissions", "basic,netdisk"),
  905. Http.ajaxNew(url, "POST", data, new Map, "multipart/form-data");
  906. }));
  907. }
  908. static quarkDriect(fids) {
  909. return Http.ajaxNew("https://drive.quark.cn/1/clouddrive/file/download?pr=ucpro&fr=pc", "POST", {
  910. fids: fids
  911. }, new Map([ [ "User-Agent", "quark-cloud-drive" ] ]));
  912. }
  913. static RouteConfig() {
  914. return new Promise(resolve => {
  915. let config = Config.get("script_config", !1);
  916. config ? resolve(config) : Route.baseApi("/config/script", new Map, res => {
  917. let config = JSON.parse(Core.decode(res.data));
  918. Config.set("script_config", config, 2 * Hour), resolve(config);
  919. });
  920. });
  921. }
  922. }
  923. Route.sxb_key = "sxb_anhao", Route.config = "/config/query", Route.history = "/history/",
  924. Route.historyv1 = "/history/v1", Route.historyv2 = "/history/v2", Route.historyv3 = "/history/v3",
  925. Route.bili = "/tools/bili", Route.biliInfo = "https://api.bilibili.com/x/web-interface/view",
  926. Route.bilidown = "https://api.bilibili.com/x/player/wbi/playurl", Route.coupons = "/tb/infos/",
  927. Route.like = "/tb/guesslike", Route.jd_coupons = "/jd/info", Route.sn_coupons = "/sn/info",
  928. Route.vp_coupons = "/vp/info", Route.kl_coupons = "/kl/info", css_248z$4 = ".one-key-vip-container { z-index: 99999!important }\n.one-key-vip-popup { font-size: 14px !important }\n.one-key-vip-setting-label { display: flex;align-items: center;justify-content: space-between;padding-top: 20px; }\n.one-key-vip-setting-checkbox { width: 16px;height: 16px; }\n",
  929. styleInject(css_248z$4);
  930. class sAlert {
  931. static toast(msg, icon = "success", position = "top", time = 2) {
  932. Swal__default.default.fire({
  933. toast: !0,
  934. position: position,
  935. showCancelButton: !1,
  936. showConfirmButton: !1,
  937. title: msg,
  938. icon: icon,
  939. timer: 1e3 * time,
  940. customClass: this.customeCss
  941. });
  942. }
  943. static error(msg, time = 2) {
  944. this.toast(msg, "error", "center", time);
  945. }
  946. static info(msg, icon = "success", position = "top", time = 2) {
  947. Swal__default.default.fire({
  948. toast: !0,
  949. position: position,
  950. showCancelButton: !1,
  951. showConfirmButton: !1,
  952. title: msg,
  953. icon: icon,
  954. timer: 1e3 * time,
  955. customClass: this.customeCss
  956. });
  957. }
  958. static msg(title, html, width = "32rem") {
  959. return "auto" == width && (width = unsafeWindow.window.outerWidth < 900 ? "90%" : 800),
  960. Swal__default.default.fire({
  961. title: `<strong>${title}</strong>`,
  962. html: html,
  963. showCloseButton: !0,
  964. width: width
  965. });
  966. }
  967. static html(title, html, cancel = !1, cancelTxt = "", cancelColor = "#3085d6", width = "32rem", confirm = !1, confirmTxt = "") {
  968. return "auto" == width && (width = unsafeWindow.window.outerWidth < 900 ? "90%" : 800),
  969. Swal__default.default.fire({
  970. position: "center",
  971. width: width,
  972. html: html,
  973. showCancelButton: cancel,
  974. showConfirmButton: confirm,
  975. cancelButtonColor: cancelColor,
  976. title: title,
  977. cancelButtonText: cancelTxt,
  978. confirmButtonText: confirmTxt,
  979. customClass: this.customeCss,
  980. allowOutsideClick: !1,
  981. allowEscapeKey: !1
  982. });
  983. }
  984. static confirm(title, text, confirmText = "\u786e\u5b9a", cancelText = "\u53d6\u6d88", icon = "question", denyText = "") {
  985. let option = {
  986. title: title,
  987. text: text,
  988. icon: icon,
  989. showCancelButton: !0,
  990. allowOutsideClick: !1,
  991. confirmButtonColor: "#3085d6",
  992. cancelButtonColor: "#d33",
  993. confirmButtonText: confirmText,
  994. cancelButtonText: cancelText
  995. };
  996. return "" != denyText && (option.denyButtonText = denyText), Swal__default.default.fire(option);
  997. }
  998. static showImg(image, title, text, alt, btnTxt = "") {
  999. let opt = {
  1000. title: title,
  1001. text: text,
  1002. imageUrl: image,
  1003. imageAlt: alt,
  1004. showConfirmButton: !1
  1005. };
  1006. return null != btnTxt && (opt.showConfirmButton = !0, opt.confirmButtonText = btnTxt),
  1007. Swal__default.default.fire(opt);
  1008. }
  1009. static loading(time = -1, target = null) {
  1010. null == target ? Swal__default.default.showLoading() : Swal__default.default.showLoading(target),
  1011. -1 != time && Core.sleep(time).then(() => {
  1012. Swal__default.default.hideLoading();
  1013. });
  1014. }
  1015. static closeLoading() {
  1016. Swal__default.default.hideLoading();
  1017. }
  1018. static close(target) {
  1019. Swal__default.default.close(target);
  1020. }
  1021. }
  1022. sAlert.customeCss = {
  1023. container: "one-key-vip-container",
  1024. popup: "one-key-vip-popup",
  1025. header: "one-key-vip-header",
  1026. title: "one-key-vip-title",
  1027. closeButton: "one-key-vip-close",
  1028. icon: "one-key-vip-icon",
  1029. image: "one-key-vip-image",
  1030. content: "one-key-vip-content",
  1031. htmlContainer: "one-key-vip-html",
  1032. input: "one-key-vip-input",
  1033. validationMessage: "one-key-vip-validation",
  1034. actions: "one-key-vip-actions",
  1035. confirmButton: "one-key-vip-confirm",
  1036. denyButton: "one-key-vip-deny",
  1037. cancelButton: "one-key-vip-cancel",
  1038. loader: "one-key-vip-loader",
  1039. footer: "one-key-vip-footer"
  1040. }, css_248z$3 = ".okv-btn {\n display: inline-block;\n padding: 6px 16px;\n font-size: 12px;\n outline: 0;\n line-height: 1.5;\n text-align: center;\n white-space: nowrap;\n border: 1px solid #c5d9e8;\n border-top-color: #c5d9e8;\n border-right-color: #c5d9e8;\n border-bottom-color: #c5d9e8;\n border-left-color: #c5d9e8;\n border-radius: 0.7rem;\n background-color: #fff;\n -webkit-transition: background 0.2s;\n transition: background 0.2s;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: pointer;\n}\n.okv-btn-primary {\n border-color: #6190e8;\n background-color: #6190e8;\n color: #fff;\n}\n.okv-btn-primary:hover {\n background-color: #79a1eb;\n border-color: #79a1eb;\n}\n.okv-btn-primary:active {\n background-color: #5782d1;\n border-color: #5782d1;\n}\n.okv-btn-success {\n border-color: #13ce66;\n background-color: #13ce66;\n color: #fff;\n}\n.okv-btn-success:hover {\n background-color: #36d57d;\n border-color: #36d57d;\n}\n.okv-btn-success:active {\n background-color: #11b95c;\n border-color: #11b95c;\n}\n.okv-btn-error {\n border-color: #ff4949;\n background-color: #ff4949;\n color: #fff;\n}\n.okv-btn-error:hover {\n background-color: #ff6464;\n border-color: #ff6464;\n}\n.okv-btn-error:active {\n background-color: #e64242;\n border-color: #e64242;\n}\n.okv-bg-pink {\n color: #fff;\n border-color: #fff;\n background-color: #fb7299;\n}\n.okv-bg-pink:hover {\n background-color: #fc8bab;\n}\n.okv-tools-bili {\n padding-top: 5px;\n}\n.video-info-detail {\n flex-wrap: wrap !important;\n overflow: unset !important;\n}\n.video-info-container {\n height: 124px !important;\n}\n.okv-btn {\n padding: 2px 16px !important;\n}\n.bili-top-button {\n margin-right: 0.7rem;\n}\n.bili-table {\n width: 100%;\n border-collapse: separate;\n border-spacing: 0;\n text-align: left;\n overflow: hidden;\n}\n.bili-table td,\n.bili-table th {\n height: 40px;\n text-align: left;\n text-overflow: ellipsis;\n vertical-align: middle;\n border-bottom: 1px solid #ececec;\n}\n.bili-table-cell {\n padding: 0 16px;\n border-bottom: 1px solid #ececec;\n}\n.at-table-tbody > tr:hover {\n background-color: #f6fafe;\n}\n.bili-table-small {\n font-size: 11px;\n}\n.bili-table-head {\n border-collapse: separate;\n border-spacing: 0;\n text-align: left;\n}\n.bili-table-head tr th {\n font-weight: 700;\n text-align: left;\n background-color: #f7f7f7;\n white-space: nowrap;\n}\n",
  1041. styleInject(css_248z$3);
  1042. class Runtime {
  1043. static get url() {
  1044. return window.location.href;
  1045. }
  1046. }
  1047. class Toast {
  1048. static success(str, time = 3, position = "top") {
  1049. semiUi.Notification.success({
  1050. content: str,
  1051. duration: time,
  1052. position: position
  1053. });
  1054. }
  1055. static warning(str, time = 3, position = "top") {
  1056. semiUi.Notification.warning({
  1057. content: str,
  1058. duration: time,
  1059. position: position,
  1060. zIndex: 999999
  1061. });
  1062. }
  1063. static error(str, time = 3, position = "top") {
  1064. semiUi.Notification.error({
  1065. content: str,
  1066. duration: time,
  1067. position: position
  1068. });
  1069. }
  1070. }
  1071. class BiliImgService extends PluginBase {
  1072. constructor() {
  1073. super(), this.rules = new Map([ [ SiteEnum.BiliBili, /www\.bilibili\.com\/video\/[av|bv]*/i ] ]),
  1074. this._appName = "bilibili";
  1075. }
  1076. static listHtml(list) {
  1077. let rows = "";
  1078. return list.forEach(e => {
  1079. rows += `<tr>\n <td class="bili-table-cell">${e.part}</td>\n <td class="bili-table-cell"><button class="okv-btn okv-btn-primary bili-down-item" data-cid="${e.cid}" data-part-title="${e.part}">\u4e0b\u8f7d</button></td>\n </tr>`;
  1080. }), `<div style="height: 30rem"><table class="bili-table bili-table-small">\n <thead class="bili-table-head">\n <tr> \n <th class="bili-table-cell">\u6807\u9898</th>\n <th class="bili-table-cell">\u64cd\u4f5c</th>\n </tr>\n </thead>\n <tbody class="at-table-tbody"> \n ${rows}\n </tbody> \n </table></div>`;
  1081. }
  1082. static getQuality(id) {
  1083. switch (id) {
  1084. case 16:
  1085. return "360P \u6d41\u7545";
  1086.  
  1087. case 32:
  1088. return "480P \u6e05\u6670";
  1089.  
  1090. case 64:
  1091. return "720P \u9ad8\u6e05";
  1092.  
  1093. case 80:
  1094. return "1080P \u9ad8\u6e05";
  1095.  
  1096. case 112:
  1097. return "1080P 60\u5e27";
  1098.  
  1099. case 30280:
  1100. case 30260:
  1101. return "320Kbps";
  1102.  
  1103. case 30259:
  1104. return "128Kbps";
  1105.  
  1106. case 30257:
  1107. return "64Kbps";
  1108.  
  1109. case 30255:
  1110. return "AUDIO";
  1111.  
  1112. case 30251:
  1113. return "FLAC";
  1114.  
  1115. case 30250:
  1116. return "ATMOS";
  1117.  
  1118. case 30232:
  1119. return "128Kbps";
  1120.  
  1121. case 30216:
  1122. return "64Kbps";
  1123.  
  1124. default:
  1125. return "\u672a\u77e5";
  1126. }
  1127. }
  1128. static videoListHtml(videoList, audioList, duration, mp4s = []) {
  1129. let sizeFormat = (size = 0) => {
  1130. let unit = [ "B", "K", "M", "G" ], i = unit.length - 1, dex = Math.pow(1024, i), vor = Math.pow(1e3, i);
  1131. for (;dex > 1; ) {
  1132. if (size >= vor) {
  1133. size = Number((size / dex).toFixed(2));
  1134. break;
  1135. }
  1136. dex /= 1024, vor /= 1e3, i--;
  1137. }
  1138. return size ? size + unit[i] : "N/A";
  1139. }, rows = "";
  1140. return videoList.forEach(e => {
  1141. rows += `<tr>\n <td class="bili-table-cell">\u89c6\u9891</td>\n <td class="bili-table-cell">${this.getQuality(e.id)}</td>\n <td class="bili-table-cell">${sizeFormat(e.bandwidth * duration / 8)}</td>\n <td class="bili-table-cell">${e.frameRate}</td>\n <td class="bili-table-cell">${e.codecs}</td>\n <td class="bili-table-cell"><button class="okv-btn okv-btn-primary bili-down-video-item" data-url="${e.baseUrl}" data-type="1">\u4e0b\u8f7d</button></td>\n </tr>`;
  1142. }), audioList.forEach(e => {
  1143. rows += `<tr>\n <td class="bili-table-cell">\u97f3\u9891</td>\n <td class="bili-table-cell">${this.getQuality(e.id)}</td>\n <td class="bili-table-cell">${sizeFormat(e.bandwidth * duration / 8)}</td>\n <td class="bili-table-cell">${e.frameRate}</td>\n <td class="bili-table-cell">${e.codecs}</td>\n <td class="bili-table-cell"><button class="okv-btn okv-btn-primary bili-down-video-item" data-url="${e.baseUrl}" data-type="2">\u4e0b\u8f7d</button></td>\n </tr>`;
  1144. }), mp4s.forEach(e => {
  1145. rows = `<tr>\n <td class="bili-table-cell">\u97f3\u89c6\u5df2\u5408\u5e76</td>\n <td class="bili-table-cell">${this.getQuality(e.quality)}</td>\n <td class="bili-table-cell">${sizeFormat(e.size)}</td>\n <td class="bili-table-cell">MP4</td>\n <td class="bili-table-cell">MP4</td>\n <td class="bili-table-cell"><button class="okv-btn okv-btn-primary bili-down-video-item" data-url="${e.url}" data-type="1">\u4e0b\u8f7d</button></td>\n </tr>` + rows;
  1146. }), `\n<div style="height: 30rem">\n <div style="margin-bottom: 20px">\u6ce8\u610f:\u97f3\u89c6\u9891\u662f<b style="color:red">\u5206\u5f00</b>\u7684,\u8bf7\u4e0b\u8f7d\u540e\u81ea\u884c\u5408\u5e76\uff0c\u5408\u5e76\u5de5\u5177\u5728<b>wiki\u7ad9</b>\u7684\u4e0b\u8f7d\u4e2d\u5fc3\u81ea\u884c\u5bfb\u627e</div>\n <table class="bili-table bili-table-small">\n <thead class="bili-table-head">\n <tr>\n <th class="bili-table-cell">\u7c7b\u578b</th>\n <th class="bili-table-cell">\u54c1\u8d28</th>\n <th class="bili-table-cell">\u5927\u5c0f</th>\n <th class="bili-table-cell">\u7801\u7387</th>\n <th class="bili-table-cell">\u7f16\u7801</th>\n <th class="bili-table-cell">\u64cd\u4f5c</th>\n </tr>\n </thead>\n <tbody class="at-table-tbody"> \n ${rows}\n </tbody> \n </table>\n</div>`;
  1147. }
  1148. loader() {}
  1149. run() {
  1150. this.init();
  1151. }
  1152. init() {
  1153. Core.autoLazyload(() => {
  1154. var _a, _b, _c, _d;
  1155. return ((null === (_a = $(".reply-box-textarea")) || void 0 === _a ? void 0 : _a.length) > 0 || (null === (_b = $(".comment-submit")) || void 0 === _b ? void 0 : _b.length) > 0 || (null === (_c = $(".comment-container")) || void 0 === _c ? void 0 : _c.length) > 0 || (null === (_d = $("bili-comments")) || void 0 === _d ? void 0 : _d.length) > 0) && ($("#viewbox_report").append('<div class="video-info-detail-list okv-tools-bili"></div>'),
  1156. !0);
  1157. }, () => {
  1158. Config.get(ConfigEnum.BiliPc_Cover, !0) && BiliImgService.add_img_btn(), Config.get(ConfigEnum.BiliPc_Video_Download, !0) && BiliImgService.add_down_btn(),
  1159. Config.get(ConfigEnum.BiliPc_Triple_Click, !0) && BiliImgService.add_triple_btn();
  1160. }, 1);
  1161. }
  1162. static add_img_btn() {
  1163. let that = this;
  1164. $(this.hookSelector).last().append(BiliImgService.coverBtn), $("body").on("click", "#findimg", () => {
  1165. let aid = unsafeWindow.__INITIAL_STATE__.videoData.aid;
  1166. that.getVideoInfo(aid).then(res => {
  1167. res ? sAlert.showImg(res.pic, "\u662f\u5c01\u9762\u5566", "\u554a\u54c8\u54c8\u54c8\u3001\u5c01\u9762\u6765\u54af", "\u662f\u5c01\u9762\u9171\u5566>\u3002<", "\u4e0b\u8f7d").then(() => {
  1168. Core.open(res.pic);
  1169. }) : Toast.error("\u54ce\u54df\u6ca1\u627e\u5230\u5c01\u9762\u54e6\uff0c\u8981\u4e0d\u8ddf\u4f5c\u8005\u62a5\u544a\u4e00\u4e0b\uff1f");
  1170. }).catch(() => {
  1171. Toast.error("\u54ce\u54df\u6ca1\u627e\u5230\u5c01\u9762\u54e6\uff0c\u8981\u4e0d\u8ddf\u4f5c\u8005\u62a5\u544a\u4e00\u4e0b\uff1f", 5);
  1172. });
  1173. });
  1174. }
  1175. static add_down_btn() {
  1176. let that = this;
  1177. $(this.hookSelector).last().append(BiliImgService.downBtn), $("body").on("click", "#downvideo", () => {
  1178. that.initDown();
  1179. });
  1180. }
  1181. static initDown() {
  1182. let aid = unsafeWindow.__INITIAL_STATE__.videoData.aid;
  1183. BiliImgService.getVideoInfo(aid).then(res => {
  1184. sAlert.html(res.title, this.listHtml(res.pages), !0, "\u6211\u597d\u4e86", "#3085d6", "40%"),
  1185. $(".bili-down-item").on("click", e => {
  1186. let cid = $(e.currentTarget).attr("data-cid"), title = $(e.currentTarget).attr("data-part-title");
  1187. BiliImgService.downVideo(aid, cid, title);
  1188. });
  1189. });
  1190. }
  1191. static downVideo(aid, cid, title) {
  1192. let key = `${aid}${cid}MDD-NEW`;
  1193. Config.remember(key, Min, () => new Promise((resolve, reject) => __awaiter(this, void 0, void 0, (function*() {
  1194. let mp4s = yield Route.queryBiliDownWeb(aid, cid);
  1195. Route.queryBiliDown(aid, cid, res => {
  1196. var _a, _b, _c, _d, _e;
  1197. let r;
  1198. (null === (_c = null === (_b = null === (_a = res.data) || void 0 === _a ? void 0 : _a.dash) || void 0 === _b ? void 0 : _b.video) || void 0 === _c ? void 0 : _c.length) > 0 ? (r = res,
  1199. (null === (_e = null === (_d = mp4s.data) || void 0 === _d ? void 0 : _d.durl) || void 0 === _e ? void 0 : _e.length) > 0 && (r.data.durl = mp4s.data.durl,
  1200. r.data.durl[0].quality = mp4s.data.quality), resolve(r)) : reject(res);
  1201. });
  1202. })))).then(res => {
  1203. sAlert.html(title, this.videoListHtml(res.data.dash.video, res.data.dash.audio, res.data.dash.duration, res.data.durl), !0, "\u6211\u597d\u4e86", "#3085d6", "40%").finally(() => {
  1204. BiliImgService.initDown();
  1205. }), $(".bili-down-video-item").on("click", e => {
  1206. let url = $(e.currentTarget).attr("data-url"), type = $(e.currentTarget).attr("data-type");
  1207. Swal__default.default.fire({
  1208. title: "\u51c6\u5907\u4e0b\u8f7d",
  1209. html: '<span id="bili-download-step">\u5f00\u59cb\u4e0b\u8f7d\u540e\u5f53\u524d\u9875\u9762\u5c06\u4e0d\u53ef\u64cd\u4f5c,\u662f\u5426\u5f00\u59cb\u4e0b\u8f7d\uff1f</span>',
  1210. showCancelButton: !0,
  1211. confirmButtonText: "\u597d\u7684\u5f00\u59cb",
  1212. cancelButtonText: "\u8fd8\u662f\u7b97\u4e86",
  1213. showLoaderOnConfirm: !0,
  1214. preConfirm: () => new Promise((r, j) => {
  1215. GM_download({
  1216. url: url,
  1217. name: `\u3010${"1" == type ? "\u89c6\u9891" : "\u97f3\u9891"}\u3011${title}.mp4`,
  1218. headers: {
  1219. referer: Runtime.url
  1220. },
  1221. onerror(data) {
  1222. j(data);
  1223. },
  1224. onprogress(data) {
  1225. $("#bili-download-step").text(`\u5f53\u524d\u8fdb\u5ea6${Core.getPercent(data.done, data.total)}%`),
  1226. data.done == data.total && r();
  1227. }
  1228. });
  1229. }),
  1230. allowOutsideClick: () => !Swal__default.default.isLoading()
  1231. }).then(result => {
  1232. result.isConfirmed && sAlert.info("\u4e0b\u8f7d\u7ed3\u675f");
  1233. }).finally(() => {
  1234. BiliImgService.downVideo(aid, cid, title);
  1235. });
  1236. });
  1237. }).catch(e => {
  1238. Logger.error(e), sAlert.error("\u5565\u4e5f\u6ca1\u67e5\u7740,\u518d\u8bd5\u4e00\u4e0b\u6216\u8005\u5e26\u7740\u89c6\u9891\u5730\u5740\u7ed9\u4f5c\u8005\u62a5\u544a\u4e00\u4e0b\u5427~");
  1239. });
  1240. }
  1241. static getVideoInfo(aid) {
  1242. return Config.remember("biliInfo-" + aid, Week, () => new Promise((resolve, reje) => {
  1243. Route.queryBiliImg(aid, res => {
  1244. 0 === res.code ? resolve(res.data) : reje();
  1245. });
  1246. }));
  1247. }
  1248. static add_triple_btn() {
  1249. $(this.hookSelector).last().append(BiliImgService.tripleClickBtn), $("body").on("click", "#tripleClick", () => {
  1250. [ ".video-like", ".video-coin", ".video-fav" ].forEach(item => {
  1251. $(item).trigger("click");
  1252. });
  1253. });
  1254. }
  1255. }
  1256. BiliImgService.coverBtn = '<button class="okv-btn okv-btn-primary okv-bg-pink bili-top-button" id="findimg">\u83b7\u53d6\u5c01\u9762</button>',
  1257. BiliImgService.downBtn = '<button id="downvideo" class="okv-btn okv-btn-primary okv-bg-pink bili-top-button">\u4e0b\u8f7d\u89c6\u9891</button>',
  1258. BiliImgService.tripleClickBtn = '<button class="okv-btn okv-btn-primary okv-bg-pink bili-top-button" id="tripleClick">\u4e00\u4e0b\u70b9\u4ee8(\u70b9\u8d5e\u3001\u6295\u5e01\u3001\u6536\u85cf)</button>',
  1259. BiliImgService.hookSelector = ".okv-tools-bili", Menu$2 = Common.Menu;
  1260. const jks = [ {
  1261. url: "https://www.ckplayer.vip/jiexi/?url=",
  1262. title: "\u63a5\u53e3:Ckplayer"
  1263. }, {
  1264. url: "https://yparse.ik9.cc/index.php?url=",
  1265. title: "\u63a5\u53e3:\u4e91\u6790"
  1266. }, {
  1267. url: "https://www.8090g.cn/?url=",
  1268. title: "\u63a5\u53e3:8090"
  1269. }, {
  1270. title: "\u5256\u5143",
  1271. url: "https://www.pouyun.com/?url="
  1272. }, {
  1273. url: "https://z1.m1907.top/?jx=",
  1274. title: "\u73a9\u7684\u55e8\u2014\u201428-\u82e5\u63a5\u53e3\u5931\u6548\u53ef\u53cd\u9988\uff01QQ\u7fa4:340569308"
  1275. }, {
  1276. title: "\u76d8\u53e4",
  1277. url: "https://www.pangujiexi.com/jiexi/?url="
  1278. }, {
  1279. title: "BL",
  1280. url: "https://vip.bljiex.com/?v="
  1281. }, {
  1282. title: "play",
  1283. url: "https://www.playm3u8.cn/jiexi.php?url="
  1284. }, {
  1285. title: "TV\u89e3\u6790[\u817e\u8baf (\u8292\u679c)]",
  1286. url: "https://jx.m3u8.tv/jiexi/?url="
  1287. }, {
  1288. title: "JY",
  1289. url: "https://jx.playerjy.com/?url="
  1290. }, {
  1291. title: "\u2478\u53f7\u89e3\u6790\u63a5\u53e3",
  1292. url: "https://www.8090g.cn/jiexi/?url="
  1293. }, {
  1294. title: "\u867e\u7c731",
  1295. url: "https://jx.xmflv.com/?url="
  1296. }, {
  1297. title: "\u867e\u7c732",
  1298. url: "https://jx.xmflv.cc/?url="
  1299. }, {
  1300. title: "m1907",
  1301. url: "https://im1907.top/?jx="
  1302. }, {
  1303. title: "8090",
  1304. url: "https://www.8090g.cn/?url="
  1305. }, {
  1306. title: "\u51b0\u8c46",
  1307. url: "https://bd.jx.cn/?url="
  1308. }, {
  1309. title: "\u7231\u8c46",
  1310. url: "https://jx.xymp4.cc/?url="
  1311. } ];
  1312. class MovieService extends PluginBase {
  1313. constructor() {
  1314. super(), this.rules = new Map([ [ SiteEnum.YouKu, /youku\.com/i ], [ SiteEnum.IQiYi, /iqiyi|iq\.com/i ], [ SiteEnum.LeShi, /\.le\.com/i ], [ SiteEnum.Tencent_V, /v\.qq/i ], [ SiteEnum.TuDou, /tudou\.com/i ], [ SiteEnum.MangGuo, /mgtv\.com/i ], [ SiteEnum.SoHu, /sohu\.com/i ], [ SiteEnum.Acfun, /acfun\.com/i ], [ SiteEnum.BiliBili, /bilibili\.com/i ], [ SiteEnum.M1905, /1905\.com/i ], [ SiteEnum.PPTV, /pptv\.com/i ], [ SiteEnum.YinYueTai, /yinyuetai\.com/ ], [ SiteEnum.HiTv, /tv\.wandhi\.com\/go\.html/i ], [ SiteEnum.HiTvCheck, /tv\.wandhi\.com\/check\.html/i ] ]),
  1315. this.jkPre = "\u81ea\u5b9a\u4e49\u63a5\u53e3\uff1a", this.menu = new Common.Menu,
  1316. this._unique = !1, this._appName = "MovieService";
  1317. }
  1318. loader() {
  1319. "undefined" == typeof $ && Core.appendJs("//lib.baomitu.com/jquery/1.12.4/jquery.min.js");
  1320. }
  1321. run() {
  1322. switch (this.site) {
  1323. case SiteEnum.HiTv:
  1324. Logger.debug("HiTv\u89e3\u6790\u9875\u9762\uff0c\u52a0\u8f7d\u81ea\u5b9a\u4e49\u63a5\u53e3"),
  1325. this.cusInterFace(), this.lastPlay();
  1326. break;
  1327.  
  1328. case SiteEnum.HiTvCheck:
  1329. this.jkCheck();
  1330. break;
  1331.  
  1332. default:
  1333. let that = this;
  1334. this.menu.Init([ {
  1335. title: "\u672c\u6b21\u5173\u95ed",
  1336. show: "\u672c\u6b21<br>\u5173\u95ed",
  1337. type: "search"
  1338. }, {
  1339. title: "\u89c6\u9891\u89e3\u6790",
  1340. show: "\u89c6\u9891<br>\u89e3\u6790",
  1341. type: "process"
  1342. }, {
  1343. title: "\u7edd\u4e16\u597d\u5238",
  1344. show: "\u7edd\u4e16<br>\u597d\u5238",
  1345. type: "tb"
  1346. }, {
  1347. title: "\u4eac\u4e1c\u597d\u5238",
  1348. show: "\u4eac\u4e1c<br>\u597d\u5238",
  1349. type: "jd"
  1350. } ], that._onClick), this.autoHide();
  1351. }
  1352. }
  1353. hashCode(str) {
  1354. var i, hash = 0;
  1355. if (0 === str.length) return hash;
  1356. for (i = 0; i < str.length; i++) hash = (hash << 5) - hash + str.charCodeAt(i),
  1357. hash |= 0;
  1358. return 2147483647 & hash;
  1359. }
  1360. jkCheck() {
  1361. let html = "";
  1362. jks.forEach((item, index) => {
  1363. let id = this.hashCode(item.title);
  1364. html += `<div class="lbl">\n <label for="name" id="${id}" class="valid-none" data-title="${item.title}" data-url="${item.url}">${item.title}<b style="color:red">(\u5f85\u68c0\u6d4b)</b></label>\n </div>\n <div class="ctrl">\n <input type="text" name="name" data-required="true" data-validation="text"\n data-msg="Invalid Name" placeholder="Ex: John Donga" value="${item.url}" disabled>\n </div>`;
  1365. }), $("#formbody").html(html), unsafeWindow.jks = jks, unsafeWindow.letcheckUrl = url => new Promise((resolve, reject) => {
  1366. try {
  1367. unsafeWindow.fetch(new Request(url), {
  1368. mode: "no-cors"
  1369. }).then(res => {
  1370. Logger.debug(res, url), resolve(!0);
  1371. }).catch(e => {
  1372. Logger.debug(e, url), reject(!1);
  1373. });
  1374. } catch (e) {
  1375. reject(!1);
  1376. }
  1377. });
  1378. }
  1379. cusInterFace() {
  1380. let urls = Config.get(ConfigEnum.Jiexi_Cus_Interface), h = "";
  1381. urls && (h = $("#jk").html(), urls.split("\n").forEach(e => {
  1382. let datas = e.split("||");
  1383. "https:" == unsafeWindow.location.protocol ? h += `<option value="${datas[0].replace("http:", "https:")}" selected="">${this.jkPre}${datas[1]}</option>` : h += `<option value="${datas[0]}" selected="">${this.jkPre}${datas[1]}</option>`;
  1384. })), jks.forEach(e => {
  1385. h += `<option value="${e.url}" selected="">${e.title}</option>`;
  1386. }), Logger.debug(h), $("#jk").html(h), Logger.debug(urls);
  1387. }
  1388. lastPlay() {
  1389. $("#bf").on("click", () => {
  1390. let op = $("#jk option:selected"), url = op.val(), name = op.text().replace(this.jkPre, "");
  1391. Config.set(ConfigEnum.Jiexi_Interface_Last_Play, name), Config.set(ConfigEnum.Jiexi_Interface_Last_Play_Url, url);
  1392. });
  1393. let last = Config.get(ConfigEnum.Jiexi_Interface_Last_Play_Url);
  1394. last && $("#jk").val(last), unsafeWindow.dihejk && $("#url").val() && unsafeWindow.dihejk();
  1395. }
  1396. _onClick() {
  1397. $("body").on("click", "[data-cat=process]", (function() {
  1398. Core.open("http://tv.wandhi.com/go.html?url=" + encodeURIComponent(window.location.href));
  1399. })), $("body").on("click", "[data-cat=search]", (function() {
  1400. Menu$2.close();
  1401. })), $("body").on("click", "[data-cat=tb]", (function() {
  1402. Core.open("http://shop.huizhek.com");
  1403. })), $("body").on("click", "[data-cat=jd]", (function() {
  1404. Core.open("http://shop.huizhek.com");
  1405. }));
  1406. }
  1407. autoHide() {
  1408. Logger.info("\u81ea\u52a8\u9690\u85cf"), this.site == SiteEnum.BiliBili && Core.background(() => {
  1409. var _a;
  1410. if ($(".bpx-player-container").length > 0) {
  1411. let modal = null === (_a = $(".bpx-player-container")) || void 0 === _a ? void 0 : _a.attr("data-screen");
  1412. "web" == modal || "full" == modal ? $(".aside-nav").hide() : $(".aside-nav").show();
  1413. }
  1414. }, 1);
  1415. }
  1416. }
  1417. class UrlHelper {
  1418. static Bind(CssSelector, method = "click", doc = "body") {
  1419. $(CssSelector).click((function() {
  1420. Core.openUrl($(this).data("key"));
  1421. }));
  1422. }
  1423. static urlEncode(url) {
  1424. return encodeURIComponent(url);
  1425. }
  1426. static urlDecode(url) {
  1427. return decodeURIComponent(url);
  1428. }
  1429. }
  1430. class MusicService extends PluginBase {
  1431. constructor() {
  1432. super(), this.rules = new Map([ [ SiteEnum.WangYi, /163(.*)song/i ], [ SiteEnum.Tencent_M, /y\.QQ(.*)song/i ], [ SiteEnum.KuGou, /kugou\.com\/song\/*/i ], [ SiteEnum.KuWo, /kuwo(.*)yinyue/i ], [ SiteEnum.XiaMi, /xiami/i ], [ SiteEnum.TaiHe, /taihe\.com/i ], [ SiteEnum.QingTing, /qingting\./i ], [ SiteEnum.LiZhi, /lizhi\./i ], [ SiteEnum.MiGu, /migu\./i ], [ SiteEnum.XiMaLaYa, /ximalaya\./i ] ]),
  1433. this.menu = new Common.Menu, this._appName = "MusicService", this._unique = !1;
  1434. }
  1435. loader() {}
  1436. run() {
  1437. this.menu.Init([ {
  1438. title: "\u7535\u5f71\u641c\u7d22",
  1439. show: "\u7535\u5f71<br>\u641c\u7d22",
  1440. type: "search"
  1441. }, {
  1442. title: "\u97f3\u4e50\u4e0b\u8f7d",
  1443. show: "\u97f3\u4e50<br>\u4e0b\u8f7d",
  1444. type: "process"
  1445. }, {
  1446. title: "\u7edd\u4e16\u597d\u5238",
  1447. show: "\u7edd\u4e16<br>\u597d\u5238",
  1448. type: "tb"
  1449. }, {
  1450. title: "\u4eac\u4e1c\u597d\u5238",
  1451. show: "\u4eac\u4e1c<br>\u597d\u5238",
  1452. type: "jd"
  1453. } ], this._OnClick, !1);
  1454. }
  1455. _OnClick() {
  1456. this.rules, $("body").on("click", "[data-cat=process]", (function() {
  1457. var _a, _b, html;
  1458. if (/ximalaya/i.test(Runtime.url)) {
  1459. for (let i = 0; i < unsafeWindow.document.scripts.length; i++) /window\.__INITIAL_STATE__ =/i.test(unsafeWindow.document.scripts[i].innerHTML) && (Logger.debug(unsafeWindow.document.scripts[i].innerHTML),
  1460. eval(unsafeWindow.document.scripts[i].innerHTML.replace("window.__INITIAL_STATE__", "unsafeWindow.__INITIAL_STATE__")));
  1461. __INITIAL_STATE__ && (null === (_b = null === (_a = __INITIAL_STATE__.store) || void 0 === _a ? void 0 : _a.SoundDetailPage) || void 0 === _b ? void 0 : _b.trackId) ? Core.open("http://music.wandhi.com/?id=" + __INITIAL_STATE__.store.SoundDetailPage.trackId + "&type=ximalaya") : (layer.closeAll(),
  1462. html = '<div style="padding:0px 50px 0px 50px;"><ul class="sound-list dOi2">', $.each(__INITIAL_STATE__.store.AlbumDetailTrackListV2.tracksInfo.tracks, (function(index, item) {
  1463. html += `<li class="d0i2"><a href="http://music.wandhi.com/?id=${item.trackId}&type=ximalaya" target="_blank">${item.title}</a></li>`;
  1464. })), html += "</ul></div>", layer.open({
  1465. type: 1,
  1466. area: [ "auto", "30%" ],
  1467. title: "\u4e3a\u4f60\u627e\u5230\u4e86\u8fd9\u4e9b\u66f2\u76ee\u89e3\u6790\u2026\u2026",
  1468. shade: .6,
  1469. maxmin: !1,
  1470. anim: 2,
  1471. content: html
  1472. }));
  1473. } else /kugou\.com\/song/i.test(Runtime.url) && $("#myAudio") ? Core.open("http://music.wandhi.com/?type=kugou&id=" + $("#myAudio").attr("data-hash")) : /taihe.com/i.test(Runtime.url) ? Core.open("http://music.wandhi.com/?url=" + UrlHelper.urlEncode(Runtime.url.replace("taihe", "baidu"))) : Core.open("http://music.wandhi.com/?url=" + UrlHelper.urlEncode(Runtime.url));
  1474. })), $("body").on("click", "[data-cat=search]", (function() {
  1475. Core.open("http://tv.wandhi.com/");
  1476. })), $("body").on("click", "[data-cat=tb]", (function() {
  1477. Core.open("https://shop.huizhek.com");
  1478. })), $("body").on("click", "[data-cat=jd]", (function() {
  1479. Core.open("https://shop.huizhek.com");
  1480. }));
  1481. }
  1482. }
  1483. css_248z$2 = "#content_views pre {\n -webkit-touch-callout: auto !important;\n -webkit-user-select: auto !important;\n -khtml-user-select: auto !important;\n -moz-user-select: auto !important;\n -ms-user-select: auto !important;\n user-select: auto !important;\n}\n\n#content_views pre code {\n -webkit-touch-callout: auto !important;\n -webkit-user-select: auto !important;\n -khtml-user-select: auto !important;\n -moz-user-select: auto !important;\n -ms-user-select: auto !important;\n user-select: auto !important;\n}\n\n.passport-login-container {\n display: none !important;\n}\n",
  1484. styleInject(css_248z$2);
  1485. class CsdnAdService extends PluginBase {
  1486. constructor() {
  1487. super(), this.rules = new Map([ [ SiteEnum.CSDN, /blog\.csdn\.net/i ] ]), this._appName = "csdn",
  1488. this._unique = !1;
  1489. }
  1490. loader() {}
  1491. run() {
  1492. Config.get(ConfigEnum.CSDN_OpAdClean, !0) && Core.background(this.removeAds, 3),
  1493. Config.get(ConfigEnum.CSDN_OpClipboardClean, !0) && this.clipboardClean(), Config.get(ConfigEnum.CSDN_OpCommentClean, !0) && this.commentClean(),
  1494. Config.get(ConfigEnum.CSDN_OpImgLink, !0) && this.commentFile(), Config.get(ConfigEnum.CSDN_OpArticleClean, !0) && this.articleClean();
  1495. }
  1496. clipboardClean() {
  1497. Logger.info("\u590d\u5236\u7c98\u8d34\u51c0\u5316"), Core.background(() => {
  1498. unsafeWindow.csdn.copyright.textData = "";
  1499. }), Core.autoLazyload(() => $(".hljs-button").length > 0, () => {
  1500. var _a;
  1501. let copyBtn = $(".hljs-button");
  1502. copyBtn.length > 0 && (copyBtn.removeClass("signin"), copyBtn.attr("data-title", "\u590d\u5236"),
  1503. copyBtn.attr("onclick", "hljs.copyCode(event);setTimeout(function(){$('.hljs-button').attr('data-title', '\u590d\u5236');},3500);")),
  1504. null === (_a = $("code")) || void 0 === _a || _a.attr("onclick", "mdcp.copyCode(event)"),
  1505. $("code").bind("copy", (function(e) {
  1506. var _a;
  1507. let text = null === (_a = unsafeWindow.getSelection()) || void 0 === _a ? void 0 : _a.toString();
  1508. text && (Core.copyText(text) ? sAlert.info("\u590d\u5236\u6210\u529f") : sAlert.error("\u590d\u5236\u5931\u8d25,\u8bf7\u5c1d\u8bd5\u4f7f\u7528\u6309\u94ae\u590d\u5236"));
  1509. }));
  1510. }, 3), unsafeWindow.jQuery("#content_views").unbind("copy");
  1511. }
  1512. removeAds() {
  1513. CsdnAdService.adSelectors.forEach(selector => {
  1514. $(selector).remove();
  1515. });
  1516. }
  1517. commentClean() {
  1518. Core.lazyload(() => {
  1519. Logger.info("\u8bc4\u8bba\u533a\u6e05\u7406"), $(".comment-list-box").css("overflow", "").css("max-height", ""),
  1520. $("#commentPage").removeClass("d-none"), $("#btnMoreComment").remove();
  1521. }, 3);
  1522. }
  1523. commentFile() {
  1524. Core.lazyload(() => {
  1525. Logger.info("\u6587\u4ef6\u94fe\u63a5\u533a\u5206"), $(".type_download").each((i, e) => {
  1526. $(e).prepend('<img src="https://csdnimg.cn/release/downloadcmsfe/public/img/source.ac4c7e83.png" data-v-d2529d5a="" style="padding-right: 10px;">');
  1527. });
  1528. }, 3);
  1529. }
  1530. articleClean() {
  1531. Core.lazyload(() => {
  1532. Logger.info("\u6587\u7ae0\u533a\u6e05\u7406"), $("#article_content").removeAttr("style"),
  1533. $(".hide-article-box").remove();
  1534. });
  1535. }
  1536. }
  1537. CsdnAdService.adSelectors = [ "#footerRightAds", ".side-question-box", "div[id^='dmp_ad']", "div[class^='ad_']", "div[id^='floor-ad_']", ".adsbygoogle", "#recommendAdBox", "#asideNewNps", ".box-shadow" ];
  1538. class Alert {
  1539. static open(titls, content, area = [ "400px", "300px" ], shade = 0, offset = "lb", maxmin = !0) {
  1540. return layer.open({
  1541. type: 1,
  1542. title: titls,
  1543. area: area,
  1544. shade: shade,
  1545. offset: offset,
  1546. maxmin: maxmin,
  1547. content: content
  1548. });
  1549. }
  1550. static info(msg) {
  1551. return layer.msg(msg, {
  1552. time: 2e3
  1553. });
  1554. }
  1555. static error(msg) {
  1556. return layer.msg(msg, {
  1557. icon: 5,
  1558. time: 2e3
  1559. });
  1560. }
  1561. static confim(title, msg, buttons, callback, auto_close = !1) {
  1562. let tid = layer.open({
  1563. type: 1,
  1564. title: title || !1,
  1565. closeBtn: 1,
  1566. shade: .8,
  1567. id: "LAY_layuipro",
  1568. resize: !1,
  1569. btn: buttons,
  1570. btnAlign: "c",
  1571. moveType: 1,
  1572. content: `<div style="padding: 20px; line-height: 22px; background-color: #393D49; color: #fff; font-weight: 300;">${msg}</div>`,
  1573. yes: function(index) {
  1574. callback(index), auto_close && Core.lazyload(() => {
  1575. layer.close(tid);
  1576. });
  1577. }
  1578. });
  1579. return tid;
  1580. }
  1581. static prompt(title, v, callback, size, type = 0) {
  1582. layer.prompt({
  1583. title: title,
  1584. value: v,
  1585. formType: type
  1586. }, (v, i, ele) => {
  1587. callback(v), layer.close(i);
  1588. });
  1589. }
  1590. static close(index) {
  1591. layer.close(index);
  1592. }
  1593. static closeAll() {
  1594. layer.closeAll();
  1595. }
  1596. static loading(style = 1, _time = 10, _shade = .3) {
  1597. return 1;
  1598. }
  1599. static loadingS(msg, time = -1) {
  1600. return Swal__default.default.fire({
  1601. title: msg,
  1602. didOpen: () => {
  1603. Swal__default.default.showLoading();
  1604. },
  1605. allowOutsideClick: !1,
  1606. allowEscapeKey: !1,
  1607. timer: -1 == time ? void 0 : 1e3 * time
  1608. });
  1609. }
  1610. }
  1611. Menu$1 = Common.Menu;
  1612. class WenKuService extends PluginBase {
  1613. constructor() {
  1614. super(), this.rules = new Map([ [ SiteEnum.WenKu, /wenku\.baidu\.com\/view/i ] ]),
  1615. this._unique = !1, this.menu = new Common.Menu, this._appName = "WenKu";
  1616. }
  1617. loader() {
  1618. "undefined" == typeof $ && Core.appendJs("//lib.baomitu.com/jquery/1.12.4/jquery.min.js"),
  1619. Core.appendCss("https://registry.npmmirror.com/@douyinfe/semi-ui/2.51.0/files/dist/css/semi.min.css");
  1620. }
  1621. run() {
  1622. this.menu.Init([ {
  1623. title: "\u672c\u6b21\u5173\u95ed",
  1624. show: "\u672c\u6b21<br>\u5173\u95ed",
  1625. type: "search"
  1626. }, {
  1627. title: "\u5bfc\u51fa\u6587\u6863",
  1628. show: "\u5bfc\u51fa<br>\u6587\u6863",
  1629. type: "process"
  1630. }, {
  1631. title: "\u89e3\u9501\u590d\u5236",
  1632. show: "\u89e3\u9501<br>\u590d\u5236",
  1633. type: "jd"
  1634. }, {
  1635. title: "\u7edd\u4e16\u597d\u5238",
  1636. show: "\u7edd\u4e16<br>\u597d\u5238",
  1637. type: "tb"
  1638. } ], this._onClick);
  1639. }
  1640. _onClick() {
  1641. return __awaiter(this, void 0, void 0, (function*() {
  1642. $("body").on("click", "[data-cat=process]", (function() {
  1643. var _a, _b, _c, _d, _e, _f;
  1644. return __awaiter(this, void 0, void 0, (function*() {
  1645. "word" == (null === (_c = null === (_b = null === (_a = unsafeWindow.pageData) || void 0 === _a ? void 0 : _a.viewBiz) || void 0 === _b ? void 0 : _b.docInfo) || void 0 === _c ? void 0 : _c.fileType) ? (null === (_f = null === (_e = null === (_d = unsafeWindow.pageData) || void 0 === _d ? void 0 : _d.mixVipAndUserInfo) || void 0 === _e ? void 0 : _e.userInfo) || void 0 === _f ? void 0 : _f.isLogin) ? (Alert.loadingS("\u89e3\u6790\u4e2d\u8bf7\u7a0d\u540e"),
  1646. yield Core.lazyload(() => {
  1647. WenKuService.loadFullDoc().then(() => {
  1648. Logger.debug("\u8f7d\u5165\u6587\u5e93\u5185\u5bb9\u5b8c\u6210"), window.scrollTo(0, 0),
  1649. WenKuService.exportDoc(), Swal__default.default.close();
  1650. });
  1651. }, .5)) : sAlert.error("\u8bf7\u5148\u767b\u5f55") : sAlert.error("\u4ec5\u652f\u6301word\u6587\u6863\u7684\u5bfc\u51fa");
  1652. }));
  1653. })), $("body").on("click", "[data-cat=search]", (function() {
  1654. Menu$1.close();
  1655. })), $("body").on("click", "[data-cat=tb]", (function() {
  1656. Core.open("http://shop.huizhek.com");
  1657. })), $("body").on("click", "[data-cat=jd]", (function() {
  1658. var _a, _b, _c;
  1659. null === (_a = unsafeWindow.document.querySelector(".header-wrapper")) || void 0 === _a || (_a.__vue__.$store.state.vipInfo.isVip = !0),
  1660. Logger.debug(null === (_b = unsafeWindow.document.querySelector(".header-wrapper")) || void 0 === _b ? void 0 : _b.__vue__.$store.state.vipInfo.isVip),
  1661. (null === (_c = unsafeWindow.document.querySelector(".header-wrapper")) || void 0 === _c ? void 0 : _c.__vue__.$store.state.vipInfo.isVip) && Toast.success("\u89e3\u9501\u6210\u529f,\u5feb\u53bb\u590d\u5236\u5427~");
  1662. }));
  1663. }));
  1664. }
  1665. static exportDoc() {
  1666. let doc = $(".reader-word-layer"), _doc = $(doc).clone();
  1667. _doc.each((i, e) => {
  1668. $(e).is(":hidden") && $(e).remove();
  1669. });
  1670. let docContent = `Mime-Version: 1.0\nContent-Base: ${Runtime.url}\nContent-Type: Multipart/related; boundary="NEXT.ITEM-BOUNDARY";type="text/html"\n\n--NEXT.ITEM-BOUNDARY\nContent-Type: text/html; charset="utf-8"\nContent-Location: ${Runtime.url}\n\n<!DOCTYPE html>\n<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=utf-8">\n<style>\n\n</style>\n</head>\n<body>\n${_doc.text().split("\n").map(t => `<p>${t}</p>`).join("")}\n</body>\n</html>\n--NEXT.ITEM-BOUNDARY--`;
  1671. saveAs(new Blob([ docContent ], {
  1672. type: "application/msword;charset=utf-8"
  1673. }), unsafeWindow.pageData.viewBiz.docInfo.title + ".doc");
  1674. }
  1675. static scrollToEnd() {
  1676. return Core.autoLazyload(() => {
  1677. var _a;
  1678. let docEle = unsafeWindow.document.documentElement, heightTotal = docEle.scrollHeight, scrollTop = null !== (_a = docEle.scrollTop) && void 0 !== _a ? _a : unsafeWindow.document.body.scrollTop, clientHeight = docEle.clientHeight;
  1679. return heightTotal - scrollTop <= 1.1 * clientHeight || (window.scroll(0, scrollTop + clientHeight / 4),
  1680. !1);
  1681. }, () => {
  1682. Logger.debug("\u6eda\u52a8\u7ed3\u675f");
  1683. }, .1);
  1684. }
  1685. static loadFullDoc() {
  1686. let funded = !1, that = this;
  1687. return Core.autoLazyload(() => {
  1688. var _a;
  1689. let btn = null !== (_a = unsafeWindow.document.querySelector(".goBtn")) && void 0 !== _a ? _a : unsafeWindow.document.querySelector(".read-all");
  1690. return funded = !0, null != btn || funded;
  1691. }, () => __awaiter(this, void 0, void 0, (function*() {
  1692. var _a;
  1693. let btn = null !== (_a = unsafeWindow.document.querySelector(".goBtn")) && void 0 !== _a ? _a : unsafeWindow.document.querySelector(".read-all");
  1694. btn && $(btn).click(), Logger.debug("\u8fdb\u5165\u6eda\u52a8"), yield that.scrollToEnd(),
  1695. Logger.debug("\u7ed3\u675f\u6eda\u52a8");
  1696. })), 2);
  1697. }
  1698. }
  1699. WenKuService.loaded = !1;
  1700. class LinkJumpService extends PluginBase {
  1701. constructor() {
  1702. super(), this.rules = new Map([ [ SiteEnum.CSDN, /link\.csdn\.net/i ], [ SiteEnum.ZhiHu, /link\.zhihu\.com/i ], [ SiteEnum.JianShu, /www\.jianshu\.com\/go-wild/i ], [ SiteEnum.Gitee, /gitee\.com\/link/i ], [ SiteEnum.JueJin, /juejin\.cn\/\?target/i ], [ SiteEnum.Weibo, /weibo\.cn\/sinaurl/i ], [ SiteEnum.TuXiaoChao, /support\.qq\.com\/products\/.*\/link-jump/i ], [ SiteEnum.OsCh, /oschina\.net\/action\/GoToLink/i ], [ SiteEnum.AiFaDian, /afdian\.net\/link\?target/i ], [ SiteEnum.Baidu, /jump(2?)\.bdimg\.com\/safecheck/i ], [ SiteEnum.DouBan, /www\.douban\.com\/link2\// ], [ SiteEnum.g17173, /link\.17173\.com\/\?target/i ], [ SiteEnum.TencentDoc, /docs\.qq\.com\/scenario\/link/i ], [ SiteEnum.TencentMail, /mail\.qq\.com\/cgi-bin\/readtemplate/i ], [ SiteEnum.TencentQQ, /c\.pc\.qq\.com\/(middlem|ios)\.html/i ], [ SiteEnum.SsPAi, /sspai\.com\/link/i ], [ SiteEnum.NodeSeek, /nodeseek\.com\/jump/i ], [ SiteEnum.KingSoftDoc, /[p|www]\.kdocs\.cn\/office\/link/i ], [ SiteEnum.TencentCloudBlog, /cloud\.tencent\.com\/developer\/tools\/blog-entry/i ], [ SiteEnum.Uisdc, /link\.uisdc\.com\/\?redirect/i ], [ SiteEnum.YuQue, /www\.yuque\.com\/r\/goto/i ], [ SiteEnum.CTO51, /blog\.51cto\.com\/transfer/i ], [ SiteEnum.WenJuanXing, /r\.wjx\.com\/redirect\.aspx/i ], [ SiteEnum.InfoQ, /www\.infoq\.cn\/link/i ], [ SiteEnum.WeChatWork, /open\.work\.weixin\.qq\.com\/wwopen\/uriconfirm/i ], [ SiteEnum.TencentDiskDoc, /weboffice\.qq\.com\/scenario\/link\.html/i ], [ SiteEnum.GitCode, /link\.gitcode\.com\/\?target/i ] ]),
  1703. this.key = "", this.selector = "", this._unique = !1, this._appName = "LinkJump",
  1704. this.semiui = !0;
  1705. }
  1706. loader() {
  1707. Core.appendCss("https://registry.npmmirror.com/@douyinfe/semi-ui/2.51.0/files/dist/css/semi.min.css");
  1708. }
  1709. run() {
  1710. let config = "AutoJump_" + this.site.toString();
  1711. switch (this.site) {
  1712. case SiteEnum.CSDN:
  1713. case SiteEnum.ZhiHu:
  1714. case SiteEnum.Gitee:
  1715. case SiteEnum.JueJin:
  1716. case SiteEnum.AiFaDian:
  1717. case SiteEnum.g17173:
  1718. case SiteEnum.SsPAi:
  1719. case SiteEnum.KingSoftDoc:
  1720. case SiteEnum.TencentCloudBlog:
  1721. case SiteEnum.InfoQ:
  1722. case SiteEnum.GitCode:
  1723. this.key = "target";
  1724. break;
  1725.  
  1726. case SiteEnum.JianShu:
  1727. case SiteEnum.DouBan:
  1728. case SiteEnum.OsCh:
  1729. case SiteEnum.TencentDoc:
  1730. case SiteEnum.YuQue:
  1731. case SiteEnum.WenJuanXing:
  1732. case SiteEnum.TencentDiskDoc:
  1733. this.key = "url";
  1734. break;
  1735.  
  1736. case SiteEnum.TencentQQ:
  1737. this.key = "pfurl,url";
  1738. break;
  1739.  
  1740. case SiteEnum.Weibo:
  1741. this.key = "u";
  1742. break;
  1743.  
  1744. case SiteEnum.TuXiaoChao:
  1745. this.key = "jump";
  1746. break;
  1747.  
  1748. case SiteEnum.Baidu:
  1749. this.selector = ".link";
  1750. break;
  1751.  
  1752. case SiteEnum.TencentMail:
  1753. this.key = "gourl";
  1754. break;
  1755.  
  1756. case SiteEnum.NodeSeek:
  1757. this.key = "to";
  1758. break;
  1759.  
  1760. case SiteEnum.Uisdc:
  1761. this.key = "redirect";
  1762. break;
  1763.  
  1764. case SiteEnum.CTO51:
  1765. this.selector = ".url span";
  1766. break;
  1767.  
  1768. case SiteEnum.WeChatWork:
  1769. this.key = "uri";
  1770. break;
  1771.  
  1772. default:
  1773. this.key = "";
  1774. }
  1775. if (Config.get(config, !0)) {
  1776. let url = "";
  1777. if ("" != this.key) {
  1778. let keys = this.key.split(",");
  1779. for (let item in keys) if (url = Core.getPar(keys[item]), null != url && "" != url) break;
  1780. } else "" != this.selector && (url = $(this.selector).text());
  1781. null != url && "" != url ? (url = decodeURIComponent(url), url.endsWith("/") && (url = url.substr(0, url.length - 1)),
  1782. Toast.success("\u94fe\u63a5\u5df2\u89e3\u6790,\u6b63\u5728\u8df3\u8f6c~"), this.jump(url)) : (Toast.warning("\u672a\u80fd\u89e3\u6790\u5230\u94fe\u63a5,\u8bf7\u624b\u52a8\u8df3\u8f6c"),
  1783. Logger.debug(`\u89e3\u6790\u94fe\u63a5:${url},key:${this.key}`));
  1784. } else Toast.warning("\u5df2\u5173\u95ed\u672c\u7f51\u7ad9\u7684\u8df3\u8f6c\u529f\u80fd");
  1785. }
  1786. jump(url) {
  1787. url && ((url = decodeURIComponent(url)).indexOf(":\\") < 1 && !url.startsWith("http://") && !url.startsWith("https://") && (url = "http://" + url),
  1788. Logger.debug(url), unsafeWindow.window.location.href = url);
  1789. }
  1790. }
  1791. class AutoExpandService extends PluginBase {
  1792. constructor() {
  1793. super(), this.rules = new Map([ [ SiteEnum.CSDN, /blog\.csdn\.net\/*/i ], [ SiteEnum.CSDN_Download, /download\.csdn\.net\/download/i ], [ SiteEnum.SiChuang, /ispacesoft\.com\/.*?\.html/i ] ]),
  1794. this.contentStyle = "{height: auto !important;max-height: none !important;}", this.expandRules = [ {
  1795. site: [ SiteEnum.CSDN ],
  1796. selector: [ ".guide-box", ".wap-shadowbox", ".readall_box", ".btn_open_app_prompt_div" ],
  1797. content: [ ".article_content" ],
  1798. clicker: [ ".hide-preCode-bt" ],
  1799. style: [],
  1800. script: () => {
  1801. $(".container-fluid").on("click", event => {
  1802. let url = $(event).attr("data-url");
  1803. url && (unsafeWindow.window.location.href = url, event.preventDefault());
  1804. });
  1805. }
  1806. }, {
  1807. site: [ SiteEnum.CSDN_Download ],
  1808. selector: [],
  1809. style: [],
  1810. content: [ ".detail.hidden.no-preview" ],
  1811. script: () => {},
  1812. clicker: [ "#download-detail .fl[role]" ]
  1813. }, {
  1814. site: [ SiteEnum.SiChuang ],
  1815. selector: [],
  1816. style: [],
  1817. clicker: [ ".entry-readmore-btn" ],
  1818. content: [],
  1819. script: () => {}
  1820. } ], this._appName = "autoExpand", this._unique = !1;
  1821. }
  1822. loader() {}
  1823. run() {
  1824. let that = this;
  1825. this.expandRules.forEach(e => {
  1826. e.site.indexOf(that.site) > -1 && (e.selector.length > 0 && e.selector.forEach(selector => {
  1827. $(selector).remove();
  1828. }), e.clicker.length > 0 && e.clicker.forEach(clicker => {
  1829. Core.lazyload(() => {
  1830. $(clicker).trigger("click");
  1831. }, 2), Logger.info("\u81ea\u52a8\u5c55\u5f00-\u70b9\u51fb:" + clicker);
  1832. }), e.style.length > 0 && e.style.forEach(style => {
  1833. Core.appendCssContent(style);
  1834. }), e.content.length > 0 && Core.appendCssContent(`${e.content.join(" ")}${that.contentStyle}`),
  1835. null != e.script && e.script.apply([]));
  1836. });
  1837. }
  1838. }
  1839. class BIliTools {
  1840. static av2Bv(avNo) {
  1841. let av = avNo.toString(), num = NaN;
  1842. if ("[object Number]" === Object.prototype.toString.call(av) ? num = avNo : "[object String]" === Object.prototype.toString.call(av) && (num = parseInt(av.replace(/[^0-9]/gu, ""))),
  1843. isNaN(num) || num <= 0) return "";
  1844. num = (num ^ this.xor) + this.add;
  1845. let result = [ ..."BV1 4 1 7 " ], i = 0;
  1846. for (;i < 6; ) result[this.s[i]] = this.table[Math.floor(num / Math.pow(58, i)) % 58],
  1847. i += 1;
  1848. return result.join("");
  1849. }
  1850. static bv2Av(bv) {
  1851. let str = "";
  1852. if (12 === bv.length) str = bv; else if (10 === bv.length) str = "BV" + bv; else {
  1853. if (9 !== bv.length) return -1;
  1854. str = "BV1" + bv;
  1855. }
  1856. if (!str.match(/[Bb][Vv][fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF]{10}/gu)) return -1;
  1857. let result = 0, i = 0;
  1858. for (;i < 6; ) result += this.table.indexOf(str[this.s[i]]) * Math.pow(58, i), i += 1;
  1859. return parseInt("av" + (result - this.add ^ this.xor));
  1860. }
  1861. }
  1862. BIliTools.table = [ ..."fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF" ],
  1863. BIliTools.s = [ 11, 10, 3, 8, 4, 6 ], BIliTools.xor = 177451812, BIliTools.add = 8728348608;
  1864. class BiliMobileService extends PluginBase {
  1865. constructor() {
  1866. super(...arguments), this.rules = new Map([ [ SiteEnum.BiliMobile, /m\.bilibili\.com\/video\//i ] ]),
  1867. this._appName = "Bili\u624b\u673a";
  1868. }
  1869. loader() {}
  1870. run() {
  1871. let cards = $(".launch-app-btn");
  1872. cards && $(cards).each((i, ele) => {
  1873. let av = $(ele).attr("data-aid");
  1874. av && $(ele).on("click", () => {
  1875. unsafeWindow.window.location.href = "https://m.bilibili.com/video/" + BIliTools.av2Bv(parseInt(av));
  1876. }), $(ele).removeClass("launch-app-btn");
  1877. });
  1878. }
  1879. }
  1880. class AliyunPanToken extends PluginBase {
  1881. constructor() {
  1882. super(), this.rules = new Map([ [ SiteEnum.ALY, /www\.aliyundrive\.com\/drive*/i ], [ SiteEnum.ALY_P, /www\.alipan\.com\/drive*/i ] ]),
  1883. this.html = '\n <li class=" ant-dropdown-menu-item-divider"></li>\n <li class="ant-dropdown-menu-item ant-dropdown-menu-item-only-child" role="menuitem">\n <div class="outer-menu--U5weH">\n <div class="item--2ReU2" id="onekeyvip-token">\n <span data-role="icon" data-render-as="svg" data-icon-type="PDSMoreCircle" class="item-icon--1ydoa icon--d-ejA "><svg viewBox="0 0 1024 1024"><use xlink:href="#PDSMoreCircle"></use></svg></span>\n \u83b7\u53d6Token\n </div>\n </div>\n </li>\n ',
  1884. this._unique = !1, this._appName = "aliyunpan-token";
  1885. }
  1886. loader() {
  1887. GM_registerMenuCommand("\u83b7\u53d6Token", this.getToken);
  1888. }
  1889. run() {
  1890. Core.autoLazyload(() => {
  1891. var _a, _b;
  1892. let finded = null !== (_b = null === (_a = $(".ant-dropdown-menu")) || void 0 === _a ? void 0 : _a.length) && void 0 !== _b ? _b : -1;
  1893. return Logger.debug("\u83dc\u5355\u67e5\u8be2\u60c5\u51b5:" + finded), finded > 0;
  1894. }, () => {
  1895. $(".ant-dropdown-menu").append(this.html), this.initEvent();
  1896. }, .5);
  1897. }
  1898. getToken() {
  1899. var _a;
  1900. $(".ant-dropdown").addClass("ant-dropdown-hidden");
  1901. let tokenStr = null !== (_a = unsafeWindow.localStorage.token) && void 0 !== _a ? _a : "";
  1902. if (tokenStr) try {
  1903. let tokenObj = JSON.parse(tokenStr);
  1904. sAlert.msg("token\u4fe1\u606f", `<textarea style="width: 100%">${tokenObj.refresh_token}</textarea>`, "auto");
  1905. } catch (e) {
  1906. sAlert.info("Token\u5e8f\u5217\u5316\u9519\u8bef,\u8bf7\u5411\u4f5c\u8005\u53cd\u9988," + e.toString());
  1907. } else sAlert.info("\u672a\u80fd\u83b7\u53d6\u5230Token\u4fe1\u606f,\u8bf7\u91cd\u65b0\u767b\u5f55\u540e\u518d\u8bd5");
  1908. }
  1909. initEvent() {
  1910. $("#onekeyvip-token").on("click", this.getToken);
  1911. }
  1912. }
  1913. css_248z$1 = '.mfb-component--tl,\n.mfb-component--cl,\n.mfb-component--tr,\n.mfb-component--bl,\n.mfb-component--br {\n box-sizing: border-box;\n margin: 25px;\n position: fixed;\n white-space: nowrap;\n z-index: 30;\n padding-left: 0;\n list-style: none;\n}\n.mfb-component--cl *,\n.mfb-component--tl *,\n.mfb-component--tr *,\n.mfb-component--bl *,\n.mfb-component--br *,\n.mfb-component--tl *:before,\n.mfb-component--cl *:before,\n.mfb-component--tr *:before,\n.mfb-component--bl *:before,\n.mfb-component--br *:before,\n.mfb-component--tl *:after,\n.mfb-component--cl *:after,\n.mfb-component--tr *:after,\n.mfb-component--bl *:after,\n.mfb-component--br *:after {\n box-sizing: inherit;\n}\n.mfb-component--tl {\n left: 0;\n top: 0;\n}\n.mfb-component--cl {\n left: 0;\n top: 50%;\n}\n.mfb-component--tr {\n right: 0;\n top: 0;\n}\n.mfb-component--bl {\n left: 0;\n bottom: 0;\n}\n.mfb-component--br {\n right: 0;\n bottom: 0;\n}\n.mfb-component__button--main,\n.mfb-component__button--child {\n background-color: #e40a5d;\n display: inline-block;\n border: none;\n border-radius: 50%;\n box-shadow: 0 0 4px rgba(0, 0, 0, 0.14), 0 4px 8px rgba(0, 0, 0, 0.28);\n cursor: pointer;\n outline: none;\n padding: 0;\n position: relative;\n -webkit-user-drag: none;\n color: #f1f1f1;\n text-align: center;\n line-height: 55px;\n font-size: 25px;\n}\n.mfb-component__list {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n.mfb-component__list > li {\n display: block;\n position: absolute;\n top: 0;\n right: 1px;\n padding: 10px 0;\n margin: -10px 0;\n}\n.mfb-component__icon,\n.mfb-component__main-icon--active,\n.mfb-component__main-icon--resting,\n.mfb-component__child-icon {\n position: absolute;\n font-size: 18px;\n text-align: center;\n line-height: 56px;\n width: 100%;\n}\n.mfb-component__wrap {\n padding: 25px;\n margin: -25px;\n}\n[data-mfb-toggle=hover]:hover .mfb-component__icon,\n[data-mfb-toggle=hover]:hover .mfb-component__main-icon--active,\n[data-mfb-toggle=hover]:hover .mfb-component__main-icon--resting,\n[data-mfb-toggle=hover]:hover .mfb-component__child-icon,\n[data-mfb-state=open] .mfb-component__icon,\n[data-mfb-state=open] .mfb-component__main-icon--active,\n[data-mfb-state=open] .mfb-component__main-icon--resting,\n[data-mfb-state=open] .mfb-component__child-icon {\n -webkit-transform: scale(1) rotate(0deg);\n transform: scale(1) rotate(0deg);\n}\n.mfb-component__button--main {\n height: 56px;\n width: 56px;\n z-index: 20;\n text-align: center;\n line-height: 55px;\n font-size: 25px;\n}\n.mfb-component__button--child {\n height: 56px;\n width: 56px;\n}\n.mfb-component__main-icon--active,\n.mfb-component__main-icon--resting {\n -webkit-transform: scale(1) rotate(360deg);\n transform: scale(1) rotate(360deg);\n -webkit-transition: -webkit-transform 150ms cubic-bezier(0.4, 0, 1, 1);\n transition: transform 150ms cubic-bezier(0.4, 0, 1, 1);\n}\n.mfb-component__child-icon,\n.mfb-component__child-icon {\n line-height: 56px;\n font-size: 18px;\n}\n.mfb-component__main-icon--active {\n opacity: 0;\n}\n[data-mfb-toggle=hover]:hover .mfb-component__main-icon,\n[data-mfb-state=open] .mfb-component__main-icon {\n -webkit-transform: scale(1) rotate(0deg);\n transform: scale(1) rotate(0deg);\n}\n[data-mfb-toggle=hover]:hover .mfb-component__main-icon--resting,\n[data-mfb-state=open] .mfb-component__main-icon--resting {\n opacity: 0;\n position: absolute !important;\n}\n[data-mfb-toggle=hover]:hover .mfb-component__main-icon--active,\n[data-mfb-state=open] .mfb-component__main-icon--active {\n opacity: 1;\n}\n.mfb-component--tl.mfb-slidein .mfb-component__list li,\n.mfb-component--tr.mfb-slidein .mfb-component__list li {\n opacity: 0;\n transition: all 0.5s;\n}\n.mfb-component--tl.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li,\n.mfb-component--tl.mfb-slidein[data-mfb-state=open] .mfb-component__list li,\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li,\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li {\n opacity: 1;\n}\n".mfb-component--tl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n".mfb-component--tl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(140px);\n transform: translateY(140px);\n}\n".mfb-component--tl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n".mfb-component--tl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(210px);\n transform: translateY(210px);\n}\n".mfb-component--tl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n".mfb-component--tl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(280px);\n transform: translateY(280px);\n}\n".mfb-component--tl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(5),\n".mfb-component--tl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(5),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(5),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(5) {\n -webkit-transform: translateY(350px);\n transform: translateY(350px);\n}\n".mfb-component--tl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(6),\n".mfb-component--tl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(6),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(6),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(6) {\n -webkit-transform: translateY(420px);\n transform: translateY(420px);\n}\n".mfb-component--tl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(7),\n".mfb-component--tl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(7),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(7),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(7) {\n -webkit-transform: translateY(490px);\n transform: translateY(490px);\n}\n".mfb-component--tl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(8),\n".mfb-component--tl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(8),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(8),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(8) {\n -webkit-transform: translateY(560px);\n transform: translateY(560px);\n}\n".mfb-component--tl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(9),\n".mfb-component--tl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(9),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(9),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(9) {\n -webkit-transform: translateY(630px);\n transform: translateY(630px);\n}\n".mfb-component--tl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(10),\n".mfb-component--tl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(10),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(10),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(10) {\n -webkit-transform: translateY(700px);\n transform: translateY(700px);\n}\n.mfb-component--cl.mfb-slidein .mfb-component__list li,\n.mfb-component--tr.mfb-slidein .mfb-component__list li {\n opacity: 0;\n transition: all 0.5s;\n}\n".mfb-component--cl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n".mfb-component--cl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(140px);\n transform: translateY(140px);\n}\n".mfb-component--cl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n".mfb-component--cl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(210px);\n transform: translateY(210px);\n}\n".mfb-component--cl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n".mfb-component--cl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(280px);\n transform: translateY(280px);\n}\n".mfb-component--cl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(5),\n".mfb-component--cl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(5),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(5),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(5) {\n -webkit-transform: translateY(350px);\n transform: translateY(350px);\n}\n".mfb-component--cl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(6),\n".mfb-component--cl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(6),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(6),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(6) {\n -webkit-transform: translateY(420px);\n transform: translateY(420px);\n}\n".mfb-component--cl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(7),\n".mfb-component--cl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(7),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(7),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(7) {\n -webkit-transform: translateY(490px);\n transform: translateY(490px);\n}\n".mfb-component--cl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(8),\n".mfb-component--cl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(8),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(8),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(8) {\n -webkit-transform: translateY(560px);\n transform: translateY(560px);\n}\n".mfb-component--cl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(9),\n".mfb-component--cl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(9),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(9),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(9) {\n -webkit-transform: translateY(630px);\n transform: translateY(630px);\n}\n".mfb-component--cl.mfb-slidein"[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(10),\n".mfb-component--cl.mfb-slidein"[data-mfb-state=open] .mfb-component__list li:nth-child(10),\n.mfb-component--tr.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(10),\n.mfb-component--tr.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(10) {\n -webkit-transform: translateY(700px);\n transform: translateY(700px);\n}\n.mfb-component--bl.mfb-slidein .mfb-component__list li,\n.mfb-component--br.mfb-slidein .mfb-component__list li {\n opacity: 0;\n transition: all 0.5s;\n}\n.mfb-component--bl.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li,\n.mfb-component--bl.mfb-slidein[data-mfb-state=open] .mfb-component__list li,\n.mfb-component--br.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li,\n.mfb-component--br.mfb-slidein[data-mfb-state=open] .mfb-component__list li {\n opacity: 1;\n}\n.mfb-component--bl.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--bl.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(-70px);\n transform: translateY(-70px);\n}\n.mfb-component--bl.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--bl.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(-140px);\n transform: translateY(-140px);\n}\n.mfb-component--bl.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--bl.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(-210px);\n transform: translateY(-210px);\n}\n.mfb-component--bl.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--bl.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-slidein[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-slidein[data-mfb-state=open] .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(-280px);\n transform: translateY(-280px);\n}\n.mfb-component--tl.mfb-slidein-spring .mfb-component__list li,\n.mfb-component--tr.mfb-slidein-spring .mfb-component__list li {\n opacity: 0;\n transition: all 0.5s;\n transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n}\n.mfb-component--tl.mfb-slidein-spring .mfb-component__list li:nth-child(1),\n.mfb-component--tr.mfb-slidein-spring .mfb-component__list li:nth-child(1) {\n transition-delay: 0.05s;\n}\n.mfb-component--tl.mfb-slidein-spring .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-slidein-spring .mfb-component__list li:nth-child(2) {\n transition-delay: 0.1s;\n}\n.mfb-component--tl.mfb-slidein-spring .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-slidein-spring .mfb-component__list li:nth-child(3) {\n transition-delay: 0.15s;\n}\n.mfb-component--tl.mfb-slidein-spring .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-slidein-spring .mfb-component__list li:nth-child(4) {\n transition-delay: 0.2s;\n}\n.mfb-component--tl.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li,\n.mfb-component--tl.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li,\n.mfb-component--tr.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li,\n.mfb-component--tr.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li {\n opacity: 1;\n}\n.mfb-component--tl.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--tl.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(1),\n.mfb-component--tr.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--tr.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(1) {\n transition-delay: 0.05s;\n -webkit-transform: translateY(70px);\n transform: translateY(70px);\n}\n.mfb-component--tl.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--tl.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(2) {\n transition-delay: 0.1s;\n -webkit-transform: translateY(140px);\n transform: translateY(140px);\n}\n.mfb-component--tl.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--tl.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(3) {\n transition-delay: 0.15s;\n -webkit-transform: translateY(210px);\n transform: translateY(210px);\n}\n.mfb-component--tl.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--tl.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(4) {\n transition-delay: 0.2s;\n -webkit-transform: translateY(280px);\n transform: translateY(280px);\n}\n.mfb-component--bl.mfb-slidein-spring .mfb-component__list li,\n.mfb-component--br.mfb-slidein-spring .mfb-component__list li {\n opacity: 0;\n transition: all 0.5s;\n transition-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);\n}\n.mfb-component--bl.mfb-slidein-spring .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-slidein-spring .mfb-component__list li:nth-child(1) {\n transition-delay: 0.05s;\n}\n.mfb-component--bl.mfb-slidein-spring .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-slidein-spring .mfb-component__list li:nth-child(2) {\n transition-delay: 0.1s;\n}\n.mfb-component--bl.mfb-slidein-spring .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-slidein-spring .mfb-component__list li:nth-child(3) {\n transition-delay: 0.15s;\n}\n.mfb-component--bl.mfb-slidein-spring .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-slidein-spring .mfb-component__list li:nth-child(4) {\n transition-delay: 0.2s;\n}\n.mfb-component--bl.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li,\n.mfb-component--bl.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li,\n.mfb-component--br.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li,\n.mfb-component--br.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li {\n opacity: 1;\n}\n.mfb-component--bl.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--bl.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(1) {\n transition-delay: 0.05s;\n -webkit-transform: translateY(-70px);\n transform: translateY(-70px);\n}\n.mfb-component--bl.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--bl.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(2) {\n transition-delay: 0.1s;\n -webkit-transform: translateY(-140px);\n transform: translateY(-140px);\n}\n.mfb-component--bl.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--bl.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(3) {\n transition-delay: 0.15s;\n -webkit-transform: translateY(-210px);\n transform: translateY(-210px);\n}\n.mfb-component--bl.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--bl.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-slidein-spring[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-slidein-spring[data-mfb-state=open] .mfb-component__list li:nth-child(4) {\n transition-delay: 0.2s;\n -webkit-transform: translateY(-280px);\n transform: translateY(-280px);\n}\n.mfb-component--tl.mfb-zoomin .mfb-component__list li,\n.mfb-component--tr.mfb-zoomin .mfb-component__list li {\n -webkit-transform: scale(0);\n transform: scale(0);\n}\n.mfb-component--tl.mfb-zoomin .mfb-component__list li:nth-child(1),\n.mfb-component--tr.mfb-zoomin .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(70px) scale(0);\n transform: translateY(70px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.15s;\n}\n.mfb-component--tl.mfb-zoomin .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-zoomin .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(140px) scale(0);\n transform: translateY(140px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.1s;\n}\n.mfb-component--tl.mfb-zoomin .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-zoomin .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(210px) scale(0);\n transform: translateY(210px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.05s;\n}\n.mfb-component--tl.mfb-zoomin .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-zoomin .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(280px) scale(0);\n transform: translateY(280px) scale(0);\n transition: all 0.5s;\n transition-delay: 0s;\n}\n.mfb-component--tl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--tl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(1),\n.mfb-component--tr.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--tr.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(70px) scale(1);\n transform: translateY(70px) scale(1);\n transition-delay: 0.05s;\n}\n.mfb-component--tl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--tl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(140px) scale(1);\n transform: translateY(140px) scale(1);\n transition-delay: 0.1s;\n}\n.mfb-component--tl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--tl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(210px) scale(1);\n transform: translateY(210px) scale(1);\n transition-delay: 0.15s;\n}\n.mfb-component--tl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--tl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(280px) scale(1);\n transform: translateY(280px) scale(1);\n transition-delay: 0.2s;\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li,\n.mfb-component--br.mfb-zoomin .mfb-component__list li {\n -webkit-transform: scale(0);\n transform: scale(0);\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(-70px) scale(0);\n transform: translateY(-70px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.1s;\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(-140px) scale(0);\n transform: translateY(-140px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.05s;\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(-210px) scale(0);\n transform: translateY(-210px) scale(0);\n transition: all 0.5s;\n transition-delay: 0s;\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(-280px) scale(0);\n transform: translateY(-280px) scale(0);\n transition: all 0.5s;\n transition-delay: -0.05s;\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li:nth-child(5),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(5) {\n -webkit-transform: translateY(-350px) scale(0);\n transform: translateY(-350px) scale(0);\n transition: all 0.5s;\n transition-delay: -0.1s;\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li:nth-child(6),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(6) {\n -webkit-transform: translateY(-420px) scale(0);\n transform: translateY(-420px) scale(0);\n transition: all 0.5s;\n transition-delay: -0.15s;\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li:nth-child(7),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(7) {\n -webkit-transform: translateY(-490px) scale(0);\n transform: translateY(-490px) scale(0);\n transition: all 0.5s;\n transition-delay: -0.2s;\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li:nth-child(8),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(8) {\n -webkit-transform: translateY(-560px) scale(0);\n transform: translateY(-560px) scale(0);\n transition: all 0.5s;\n transition-delay: -0.25s;\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li:nth-child(9),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(9) {\n -webkit-transform: translateY(-630px) scale(0);\n transform: translateY(-630px) scale(0);\n transition: all 0.5s;\n transition-delay: -0.3s;\n}\n.mfb-component--cl.mfb-zoomin .mfb-component__list li:nth-child(10),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(10) {\n -webkit-transform: translateY(-700px) scale(0);\n transform: translateY(-700px) scale(0);\n transition: all 0.5s;\n transition-delay: -0.35s;\n}\n.mfb-component--cl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--cl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(-70px) scale(1);\n transform: translateY(-70px) scale(1);\n transition-delay: 0.05s;\n}\n.mfb-component--cl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--cl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(-140px) scale(1);\n transform: translateY(-140px) scale(1);\n transition-delay: 0.1s;\n}\n.mfb-component--cl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--cl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(-210px) scale(1);\n transform: translateY(-210px) scale(1);\n transition-delay: 0.15s;\n}\n.mfb-component--cl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--cl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(-280px) scale(1);\n transform: translateY(-280px) scale(1);\n transition-delay: 0.2s;\n}\n.mfb-component--cl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(5),\n.mfb-component--cl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(5),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(5),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(5) {\n -webkit-transform: translateY(-350px) scale(1);\n transform: translateY(-350px) scale(1);\n transition-delay: 0.25s;\n}\n.mfb-component--cl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(6),\n.mfb-component--cl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(6),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(6),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(6) {\n -webkit-transform: translateY(-420px) scale(1);\n transform: translateY(-420px) scale(1);\n transition-delay: 0.3s;\n}\n.mfb-component--cl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(7),\n.mfb-component--cl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(7),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(7),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(7) {\n -webkit-transform: translateY(-490px) scale(1);\n transform: translateY(-490px) scale(1);\n transition-delay: 0.35s;\n}\n.mfb-component--cl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(8),\n.mfb-component--cl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(8),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(8),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(8) {\n -webkit-transform: translateY(-560px) scale(1);\n transform: translateY(-560px) scale(1);\n transition-delay: 0.4s;\n}\n.mfb-component--cl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(9),\n.mfb-component--cl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(9),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(9),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(9) {\n -webkit-transform: translateY(-630px) scale(1);\n transform: translateY(-630px) scale(1);\n transition-delay: 0.45s;\n}\n.mfb-component--cl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(10),\n.mfb-component--cl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(10),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(10),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(10) {\n -webkit-transform: translateY(-700px) scale(1);\n transform: translateY(-700px) scale(1);\n transition-delay: 0.5s;\n}\n.mfb-component--bl.mfb-zoomin .mfb-component__list li,\n.mfb-component--br.mfb-zoomin .mfb-component__list li {\n -webkit-transform: scale(0);\n transform: scale(0);\n}\n.mfb-component--bl.mfb-zoomin .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(-70px) scale(0);\n transform: translateY(-70px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.15s;\n}\n.mfb-component--bl.mfb-zoomin .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(-140px) scale(0);\n transform: translateY(-140px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.1s;\n}\n.mfb-component--bl.mfb-zoomin .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(-210px) scale(0);\n transform: translateY(-210px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.05s;\n}\n.mfb-component--bl.mfb-zoomin .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-zoomin .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(-280px) scale(0);\n transform: translateY(-280px) scale(0);\n transition: all 0.5s;\n transition-delay: 0s;\n}\n.mfb-component--bl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--bl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(-70px) scale(1);\n transform: translateY(-70px) scale(1);\n transition-delay: 0.05s;\n}\n.mfb-component--bl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--bl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(-140px) scale(1);\n transform: translateY(-140px) scale(1);\n transition-delay: 0.1s;\n}\n.mfb-component--bl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--bl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(-210px) scale(1);\n transform: translateY(-210px) scale(1);\n transition-delay: 0.15s;\n}\n.mfb-component--bl.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--bl.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-zoomin[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-zoomin[data-mfb-state=open] .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(-280px) scale(1);\n transform: translateY(-280px) scale(1);\n transition-delay: 0.2s;\n}\n.mfb-component--tl.mfb-fountain .mfb-component__list li,\n.mfb-component--tr.mfb-fountain .mfb-component__list li {\n -webkit-transform: scale(0);\n transform: scale(0);\n}\n.mfb-component--tl.mfb-fountain .mfb-component__list li:nth-child(1),\n.mfb-component--tr.mfb-fountain .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(-70px) scale(0);\n transform: translateY(-70px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.15s;\n}\n.mfb-component--tl.mfb-fountain .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-fountain .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(-140px) scale(0);\n transform: translateY(-140px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.1s;\n}\n.mfb-component--tl.mfb-fountain .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-fountain .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(-210px) scale(0);\n transform: translateY(-210px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.05s;\n}\n.mfb-component--tl.mfb-fountain .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-fountain .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(-280px) scale(0);\n transform: translateY(-280px) scale(0);\n transition: all 0.5s;\n transition-delay: 0s;\n}\n.mfb-component--tl.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--tl.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(1),\n.mfb-component--tr.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--tr.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(70px) scale(1);\n transform: translateY(70px) scale(1);\n transition-delay: 0.05s;\n}\n.mfb-component--tl.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--tl.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--tr.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(140px) scale(1);\n transform: translateY(140px) scale(1);\n transition-delay: 0.1s;\n}\n.mfb-component--tl.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--tl.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--tr.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(210px) scale(1);\n transform: translateY(210px) scale(1);\n transition-delay: 0.15s;\n}\n.mfb-component--tl.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--tl.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--tr.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(280px) scale(1);\n transform: translateY(280px) scale(1);\n transition-delay: 0.2s;\n}\n.mfb-component--bl.mfb-fountain .mfb-component__list li,\n.mfb-component--br.mfb-fountain .mfb-component__list li {\n -webkit-transform: scale(0);\n transform: scale(0);\n}\n.mfb-component--bl.mfb-fountain .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-fountain .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(70px) scale(0);\n transform: translateY(70px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.15s;\n}\n.mfb-component--bl.mfb-fountain .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-fountain .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(140px) scale(0);\n transform: translateY(140px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.1s;\n}\n.mfb-component--bl.mfb-fountain .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-fountain .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(210px) scale(0);\n transform: translateY(210px) scale(0);\n transition: all 0.5s;\n transition-delay: 0.05s;\n}\n.mfb-component--bl.mfb-fountain .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-fountain .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(280px) scale(0);\n transform: translateY(280px) scale(0);\n transition: all 0.5s;\n transition-delay: 0s;\n}\n.mfb-component--bl.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--bl.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(1),\n.mfb-component--br.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(1) {\n -webkit-transform: translateY(-70px) scale(1);\n transform: translateY(-70px) scale(1);\n transition-delay: 0.05s;\n}\n.mfb-component--bl.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--bl.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(2),\n.mfb-component--br.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(2) {\n -webkit-transform: translateY(-140px) scale(1);\n transform: translateY(-140px) scale(1);\n transition-delay: 0.1s;\n}\n.mfb-component--bl.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--bl.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(3),\n.mfb-component--br.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(3) {\n -webkit-transform: translateY(-210px) scale(1);\n transform: translateY(-210px) scale(1);\n transition-delay: 0.15s;\n}\n.mfb-component--bl.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--bl.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-fountain[data-mfb-toggle=hover]:hover .mfb-component__list li:nth-child(4),\n.mfb-component--br.mfb-fountain[data-mfb-state=open] .mfb-component__list li:nth-child(4) {\n -webkit-transform: translateY(-280px) scale(1);\n transform: translateY(-280px) scale(1);\n transition-delay: 0.2s;\n}\n[data-mfb-label]:after {\n content: attr(data-mfb-label);\n opacity: 0;\n background: rgba(0, 0, 0, 0.4);\n padding: 4px 10px;\n border-radius: 3px;\n color: rgba(255, 255, 255, 0.8);\n font-size: 14px;\n font-weight: 400;\n pointer-events: none;\n line-height: normal;\n position: absolute;\n top: 50%;\n margin-top: -11px;\n transition: all 0.5s;\n}\n[data-mfb-toggle=hover] [data-mfb-label]:hover:after,\n[data-mfb-state=open] [data-mfb-label]:after {\n content: attr(data-mfb-label);\n opacity: 1;\n transition: all 0.3s;\n}\n.mfb-component--br [data-mfb-label]:after,\n.mfb-component--tr [data-mfb-label]:after {\n content: attr(data-mfb-label);\n right: 70px;\n}\n.mfb-component--br .mfb-component__list [data-mfb-label]:after,\n.mfb-component--tr .mfb-component__list [data-mfb-label]:after {\n content: attr(data-mfb-label);\n right: 70px;\n}\n.mfb-component--tl [data-mfb-label]:after,\n.mfb-component--cl [data-mfb-label]:after,\n.mfb-component--bl [data-mfb-label]:after {\n content: attr(data-mfb-label);\n left: 70px;\n}\n.mfb-component--tl .mfb-component__list [data-mfb-label]:after,\n.mfb-component--bl .mfb-component__list [data-mfb-label]:after {\n content: attr(data-mfb-label);\n left: 70px;\n}\n.mfb-component__button--child i,\n.mfb-component__button--main i {\n line-height: inherit;\n}\n.animated {\n -webkit-animation-duration: 1s;\n -moz-animation-duration: 1s;\n animation-duration: 1s;\n -webkit-animation-fill-mode: both;\n -moz-animation-fill-mode: both;\n animation-fill-mode: both;\n}\n@-webkit-keyframes bounceInUp {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 800px, 0);\n transform: translate3d(0, 800px, 0);\n }\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n 75% {\n -webkit-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n 90% {\n -webkit-transform: translate3d(0, -5px, 0);\n transform: translate3d(0, -5px, 0);\n }\n to {\n -webkit-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n@-moz-keyframes bounceInUp {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -moz-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n -moz-transform: translate3d(0, 800px, 0);\n transform: translate3d(0, 800px, 0);\n }\n 60% {\n opacity: 1;\n -moz-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n 75% {\n -moz-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n 90% {\n -moz-transform: translate3d(0, -5px, 0);\n transform: translate3d(0, -5px, 0);\n }\n to {\n -moz-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n@keyframes bounceInUp {\n from,\n 60%,\n 75%,\n 90%,\n to {\n -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n -moz-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\n }\n from {\n opacity: 0;\n -webkit-transform: translate3d(0, 800px, 0);\n -moz-transform: translate3d(0, 800px, 0);\n transform: translate3d(0, 800px, 0);\n }\n 60% {\n opacity: 1;\n -webkit-transform: translate3d(0, -20px, 0);\n -moz-transform: translate3d(0, -20px, 0);\n transform: translate3d(0, -20px, 0);\n }\n 75% {\n -webkit-transform: translate3d(0, 10px, 0);\n -moz-transform: translate3d(0, 10px, 0);\n transform: translate3d(0, 10px, 0);\n }\n 90% {\n -webkit-transform: translate3d(0, -5px, 0);\n -moz-transform: translate3d(0, -5px, 0);\n transform: translate3d(0, -5px, 0);\n }\n to {\n -webkit-transform: translate3d(0, 0, 0);\n -moz-transform: translate3d(0, 0, 0);\n transform: translate3d(0, 0, 0);\n }\n}\n.bounceInUp {\n -webkit-animation-name: bounceInUp;\n -moz-animation-name: bounceInUp;\n animation-name: bounceInUp;\n -webkit-animation-delay: 1s;\n -moz-animation-delay: 1s;\n animation-delay: 1s;\n}\n.onekeyvip {\n font-size: 25px !important;\n}\n',
  1914. styleInject(css_248z$1), css_248z = '@font-face {\n font-family: "onekeyvip"; /* Project id 3421073 */\n src:\n url(\'data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAokAAsAAAAAEegAAAnXAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACEEAqVMJEnATYCJAMoCxYABCAFhHMHgQgbBw+jooZyUhhkf4Ftw54EEtaIjWEBoJwygw+dDU3DFpDw4dDqAAAwS8FA1LcASNANAEA++F710qRKlvCJs3sQ/tw9wOgBmD/X3lIgTolAISy85GcpO9lsAV0rVKfCo1AoDNDdORD25DVAwJfZqTqrJ9nTzK4Dr+OFPckctMJBSu68dg4LI7i6HwhkwhEcTJaW8/9vrdW7w7xRbfBGiB7jis3+M5tbNKo21WTtHiFCKGpzDdFKkyoWiuVILoSYsSjPTKAq1Mb4Xc8DAoAjQZ/gkrGZeRTfTZEOyhYKYz4B4vakG6MKilQcYBUJBJpZabovA5kEGZBGS+cATPQ/nrxBUpGABJnCCKTuR3X0bPr9nhpWAL0Hlx+uG7++BEAGQAHELMxFplVrE9AQx/jAqaYMbSA4mIkhgLk2NXXTySx8PeD3e6s1FyIF9+8JIJ1MyYDUiTUKZctNZWjQoeKXp8AAG4QMqNUBEzaCBJj88YvIAQUw9QoQAAJygAFmYQ7IwOv+Nmi+cQAIdDwPAT6oMIDz+7hACIToKID1QzDV9AkFs/UalkIWjPHY5CCn+ISQwNaM7PTCltTEhAi1RknQeH9BzGhonjwSqr8jYgVDLX1pnMjStk3/yyhOLm+oqVSW41UxyxgSXX+qX8oTCUwm7T3JjRQKNJ+fXU3SrOyh4E72IvZj++m7V1NB7r2kjwYV9HOqYlNOfrV0bXtgqLIeJmNqAXg7ANGJCLhFyNh7EBFjuyFS2bVegspNGmCh0euO2+KCAhmmiiB3Wwx7FVDESiy/qSOwRT7WZt/GbuNnc/Qk/pq2FooyKDbNPt0h7Q7tfq12raadvCzu5om81a3tdAUy35CeVUWWCmQWBar8JufsakKlSa1QvtAYm9WKLJ/OkdELaMXm9Wzq1ri1lNuUQmrRVpl+idEpWn4fu8ukRY5zmWVOdcjYI/m07HpSvS1cSagUFgIjLY9aZFpnV8Wp6X5f6TlQo/wmPpRN6hJDS95DwW22LTMVmRR4wDWTyz1Xc5txklrUO1mqWMrh1JBVk62K7hoZvXkrLCFVd9Hqy+klAhknBxFEXI+Fq9nZ+RARcJFp2qqSkguMrA2cFIH4DMIOIcLEChsLguMNxTyjSlVeYyHTL6DTLZtofIqUL3bEhMuatmq0u+LlN8mGeQWhkqfJRRsYEDGLnMPp1scsXEnIpHBUBEEpZJTKe2q5e2yLgPH9zas09DePZ5GK0Btw5d/G/6iQqt6ObjwY6i/mbbYjI3JQBk64ztQ0GJ7k3fFTYGRVzKh53Fo5veKixF9hZbrdbnRchWEFn2GjYn6XvxL1HfRN7OpigcxlekmFVtomJ000YAtVhRLNNGm7Ei1fIAtRYRWYHDWNog4k4Ob6BI5UmhJVv/rDWM7q54whoIFVkungaftqayhOqYbAws8iJWNgda6hyOsT1j6CNrQ05CiCwmvFFXYUhoQj6KI2BmMcTZ+gDzGUmBdRhdthb0pJdSE2cH7rG/N2wbzLV8Wo5v/CXe8kGTjJz0K4OTUQcWHTQERyYjh0PQJK7ASh46CaYV5hkEswsHO0074haciUGNga2QLj7DCIup9pmXJpoPJQis9Zxn76KbqYrm1uBPtwv0w/t1a0qOGGblIz0teQuoKalvR08n8ymw30Wgwqu2aQPqD0Iykj9yD7ju1PdI51copzTtjvT/DakugZVRXMDGXGhPpTfcjF1vTm+x7FFL/Q/S4JjnFxTgnOY3dODZkv0rap6ApK88j6fel+B5uEt669jcLFvlvCzj5YeuHWJR1hUJmpo3XCrLD1H4o/yXMHWBF3dg56r9izch6ElOOq7fj20Ch62dw5UMdTx4AxzXQsP/Hb494VV1PF0XV1S0VnJt40Rzpvl4Q9i1a01dDIy8TXqNuGS6tWyD/dwKw2tbDUTvVQnSh49vg7ZHr1Udw3AU2DWHArIyrz8/4fcnbtWD11SpV91D22IH8v4p0DdGbzHCLidZvXJ9+CyNn3L886XTFy4tRPdstoDML7iuu2aEPQ6qX5M+0P5f2tby2x+2iDxkoD+6j7zjzw5mlkaWsf6ID6ouyo7S6Z5gbvMuS9Rul+n1sOKVVxeqSWI5cH08a46GQCT8yJEJAQcNXHy8eze6AI9dT11Fl55VWBWn9I1JpvXQsOXmtg8/GMzs9jtkRQUwq1nJruXFjexIOByzCqcUL9iVGnj3rPnCaOhbY3/AeUkxWPRa39Pjho2K0A/L0+KT3ao2nzvvIPHD/jQxNgVX9lkvGJlNEhfmJDhd/+A/5VoNWvyv8HqvRfB+6O7j24N8AvLfhESOCp/MCTJ0KDQHMD+tpzZvZ/82H9JN7sONMzNtbXa5XURzPhZQOb0KwVNn/pYLFu0sqHGYh1+WH01/1YdktrBBg0YfnLvuwpHVhRdbWXczjFixNsjt17te+O735PjXip3B/HiPU/n2At+hAfs2aL8J3kGZWdyWOYaP8nfa83ZJ9yvPfQY3wANRN/qay3c1ib7J0YGCekrfoPvI/hU12zWKhbWjh0JLywn5t9tjHALT5ZJ5S1kc118oY2CP4gwzEZPOpf77J6ik9lC6tk65cJVk/wpXRxZRRAFU0mvIv4UlasE1ECVq7kX6xB8my/VnWZh9QV9n8S7OIoNqcMODbhBb6yVyeiJ6K/iCt9aN5WOyIBNFHPoDLt0CFAaDEsvDjmrjTmQDYRB+szR7JRalylt6VaOFeHinqbd5ut93/W8n4/q9yw8FnMhf+bZjNdcRVjSZHFSgKkuA8A3aCjHmtB5HSgLhhNrAadQw0/6SFjtDLpHN1KU5oMpbfoEIBxbZI1jQ9RUABtlfS0C/xvKvgCs7weLvy3ZfY93zTxT+33OF79z9usxvDccKAxuXxjnhFWmzVcyPqXsY8P4OSAbZHRh4usO2BozM1pAMtb7uQ3b3JuzLlYTwkykqDCB1HoCNazkBgkQyAVKdBRgDiiTTYWcCaFIILppWHOgQic3CIJdjiIKRXyghlC/iAZbv4pCmKKQBzlZdEJhMWHBSgSdKzuY6Zxh1g6eQSYsL/D3FmgvqWItBxstQjCY9zBjXUN+fpxcED0s4O3Q5ukJJgIbuOx4RqBZXHsYmMDNFkXkNLtqq8n1A51GrfRMAEopJtZh6n2czMazkGCJAGm/bP27WBcswDlsyhEVR85vCjXCB5GLw1rVKehiX6cy48uFtTUs4Nq+iRIBMikdTZsbIkEWGYNh7n0WgagkeoEOlS5utTzo5GmULdVk33DpX/3PoxjciIRShiRiUJUohGdcCKgtGH7zKGRnt1i9rEjmtMaLE55mKow3Q87CLCAH045pxaEe9yn1icmOr6tgqj1GHVqiW9ZMRk7Qg==\') format(\'woff2\'),\n url(\'//at.alicdn.com/t/c/font_3421073_6n4yizwtdbu.woff?t=1695111033179\') format(\'woff\'),\n url(\'//at.alicdn.com/t/c/font_3421073_6n4yizwtdbu.ttf?t=1695111033179\') format(\'truetype\'),\n url(\'//at.alicdn.com/t/c/font_3421073_6n4yizwtdbu.svg?t=1695111033179#onekeyvip\') format(\'svg\');\n}\n\n.onekeyvip {\n font-family: "onekeyvip" !important;\n font-size: 16px;\n font-style: normal;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.onekeyvip-biying:before {\n content: "\\e609";\n}\n\n.onekeyvip-bilibili:before {\n content: "\\e600";\n}\n\n.onekeyvip-360logo:before {\n content: "\\e602";\n}\n\n.onekeyvip-baidu:before {\n content: "\\e612";\n}\n\n.onekeyvip-zhihu:before {\n content: "\\e641";\n}\n\n.onekeyvip-google:before {\n content: "\\e603";\n}\n\n.onekeyvip-sougou:before {\n content: "\\faef";\n}\n\n.onekeyvip-number-sign-full:before {\n content: "\\ea7b";\n}\n\n.onekeyvip-number-sign:before {\n content: "\\ea7c";\n}\n',
  1915. styleInject(css_248z);
  1916. class MfbMenu {
  1917. constructor(pos = "bl", method = "hover") {
  1918. this.method = "hover", this.method = method, this.pos = pos;
  1919. }
  1920. getHtml(models) {
  1921. let t = "";
  1922. return models.forEach((function(v) {
  1923. t += ` \n <li>\n <div data-mfb-label="${v.title}" class="mfb-component__button--child" id="mfb-cus-${v.title}">\n <i class="${v.icon.indexOf("onekeyvip") > -1 ? "onekeyvip " : "fa "}${v.icon}" aria-hidden="true"></i>\n </div>\n </li>`;
  1924. })), `\n <ul id="mfb-menu" class="mfb-component--${this.pos} mfb-zoomin bounceInUp animated" data-mfb-toggle="${this.method}">\n <li class="mfb-component__wrap">\n <div class="mfb-component__button--main">\n <i class="fa fa-vimeo" aria-hidden="true"></i>\n </div>\n <ul class="mfb-component__list">\n <li>\n <div data-mfb-label="\u672c\u6b21\u5173\u95ed" class="mfb-component__button--child" id="mfb-close">\n <i class="fa fa-eye" aria-hidden="true"></i>\n </div>\n </li>\n ${t}\n </ul>\n </li>\n </ul>`;
  1925. }
  1926. loader() {
  1927. Core.appendCss("//lib.baomitu.com/font-awesome/4.6.0/css/font-awesome.min.css");
  1928. }
  1929. render() {}
  1930. Init(models) {
  1931. MfbMenu.selfId = "#mfb-menu", Core.inIframe() || (this.loader(), Core.bodyAppend(this.getHtml(models)),
  1932. this.mouseMove(), this.bindEvent(models));
  1933. }
  1934. bindEvent(models) {
  1935. "hover" != $(MfbMenu.selfId).data("mfb-toggle") && $(MfbMenu.selfId).on("click", () => {
  1936. let targetState = "closed" == $(MfbMenu.selfId).attr("data-mfb-state") ? "open" : "closed";
  1937. $(MfbMenu.selfId).attr("data-mfb-state", targetState);
  1938. }), $("#mfb-close").on("click", () => {
  1939. Logger.info("\u5173\u95edmfb\u83dc\u5355"), $(MfbMenu.selfId).hide();
  1940. }), models.forEach(e => {
  1941. $("#mfb-cus-" + e.title).on("click", () => {
  1942. Logger.info(`\u83dc\u5355${e.title}\u88ab\u70b9\u51fb`), e.callback();
  1943. });
  1944. });
  1945. }
  1946. mouseMove() {
  1947. let menu = unsafeWindow.document.querySelector(MfbMenu.selfId), iWidth = unsafeWindow.document.documentElement.clientWidth, iHeight = unsafeWindow.document.documentElement.clientHeight, moveX = 0, moveY = 0, moveTop = 0, moveLeft = 0, moveable = !1, docMouseMoveEvent = () => {}, docMouseUpEvent = () => {};
  1948. function getEvent() {
  1949. return window.event || arguments.callee.caller.arguments[0];
  1950. }
  1951. menu.onmousedown = function() {
  1952. var evt = getEvent();
  1953. moveable = !0, moveX = evt.clientX, moveY = evt.clientY, moveTop = parseInt($(MfbMenu.selfId).css("top")),
  1954. moveLeft = parseInt($(MfbMenu.selfId).css("left"));
  1955. let buttonChile = $(".mfb-component__button--child");
  1956. unsafeWindow.document.onmousemove = function() {
  1957. if (moveable) {
  1958. let evt = getEvent(), x = moveLeft + evt.clientX - moveX, y = moveTop + evt.clientY - moveY, width = $(MfbMenu.selfId).css("width");
  1959. x - parseInt(width) / 2 < iWidth / 2 ? (buttonChile.removeClass("right"), buttonChile.addClass("left")) : (buttonChile.removeClass("left"),
  1960. buttonChile.addClass("right")), x > 0 && x + parseInt(width) < iWidth && (menu.style.left = x + "px"),
  1961. y > 0 && y + parseInt($(MfbMenu.selfId).css("height")) < iHeight && (menu.style.top = y + "px");
  1962. }
  1963. }, unsafeWindow.document.onmouseup = function() {
  1964. moveable && (unsafeWindow.document.onmousemove = docMouseMoveEvent, unsafeWindow.document.onmouseup = docMouseUpEvent,
  1965. moveable = !1, moveX = 0, moveY = 0, moveTop = 0, moveLeft = 0);
  1966. };
  1967. };
  1968. }
  1969. }
  1970. class MfbModel {
  1971. constructor(title, icon, callback) {
  1972. this.title = title, this.icon = icon, this.callback = callback;
  1973. }
  1974. }
  1975. class YoutubeService extends PluginBase {
  1976. constructor() {
  1977. super(...arguments), this.rules = new Map([ [ SiteEnum.YouTuBe, /(www|m)\.youtube\.com\/watch\?v=(.*?)/i ] ]),
  1978. this._unique = !1, this._appName = "YouTuBe";
  1979. }
  1980. loader() {
  1981. this.mfbMenu = new MfbMenu;
  1982. }
  1983. run() {
  1984. let menus = [ new MfbModel("\u4e0b\u8f7d", "fa-download", () => {
  1985. Core.open("http://ytv.wandhi.com/?url=" + encodeURIComponent(Runtime.url));
  1986. }) ];
  1987. this.mfbMenu.Init(menus);
  1988. }
  1989. }
  1990. class SettingService extends PluginBase {
  1991. constructor() {
  1992. super(...arguments), this.rules = new Map([ [ SiteEnum.Settings, /settings\.wandhi\.com\/index\/index\/page/i ], [ SiteEnum.Settings_AutoJump, /settings\.wandhi\.com\/tools\/autojump\/page/i ], [ SiteEnum.Settings_AutoJump_Opt, /settings\.wandhi\.com\/tools\/autojump-op\/page/i ], [ SiteEnum.Settings_CSDN, /settings\.wandhi\.com\/tools\/csdn\/page/i ], [ SiteEnum.Settings_CSDN_Opt, /settings\.wandhi\.com\/tools\/csdn-op\/page/i ], [ SiteEnum.Settings_Search, /settings\.wandhi\.com\/tools\/search-helper\/page/i ], [ SiteEnum.Settings_Search_Opt, /settings\.wandhi\.com\/tools\/search-helper-op\/page/i ], [ SiteEnum.Settings_Bili_Pc_Opt, /settings\.wandhi\.com\/tools\/bilibili-pc-op\/page/i ], [ SiteEnum.Settings_Jiexi_Opt, /settings\.wandhi\.com\/tools\/jiexi\/page/i ], [ SiteEnum.Settings_WangPan_Opt, /settings\.wandhi\.com\/tools\/wangpan\/page/i ] ]),
  1993. this._unique = !1, this._appName = "\u63a7\u5236\u9762\u677f", this.semiui = !0;
  1994. }
  1995. loader() {
  1996. this.removeAlert();
  1997. }
  1998. run() {
  1999. switch (this.site) {
  2000. case SiteEnum.Settings:
  2001. this.initVer();
  2002. break;
  2003.  
  2004. case SiteEnum.Settings_AutoJump_Opt:
  2005. this.autoJumpOpt();
  2006. break;
  2007.  
  2008. case SiteEnum.Settings_CSDN_Opt:
  2009. this.csdnOpt();
  2010. break;
  2011.  
  2012. case SiteEnum.Settings_Search_Opt:
  2013. this.searchHelperOpt();
  2014. break;
  2015.  
  2016. case SiteEnum.Settings_Bili_Pc_Opt:
  2017. this.biliPcOpt();
  2018. break;
  2019.  
  2020. case SiteEnum.Settings_Jiexi_Opt:
  2021. this.JiexiOpt();
  2022. break;
  2023.  
  2024. case SiteEnum.Settings_WangPan_Opt:
  2025. this.WangPanOpt();
  2026. }
  2027. }
  2028. WangPanOpt() {
  2029. let keys = new Map([ [ ConfigEnum.WangPan_Aria_Host, v => !!/^(http|https):\/\/\w+/.test(v) || (Toast.warning("Aria2\u5730\u5740\u683c\u5f0f\u9519\u8bef"),
  2030. !1) ], [ ConfigEnum.WangPan_Aria_Port, v => !!/^\d+$/.test(v) || (Toast.warning("Aria2\u7aef\u53e3\u683c\u5f0f\u9519\u8bef"),
  2031. !1) ], [ ConfigEnum.WangPan_Aria_Token, v => !0 ], [ ConfigEnum.WangPan_Aria_Path, v => !0 ], [ ConfigEnum.WangPan_Aria_Dir, v => !0 ] ]);
  2032. this.InputInit(keys, "text");
  2033. }
  2034. JiexiOpt() {
  2035. let textKeys = new Map([ [ ConfigEnum.Jiexi_Cus_Interface, v => {
  2036. try {
  2037. v.split("\n").forEach((e, i) => {
  2038. if (2 != e.split("||").length) throw new Error;
  2039. });
  2040. } catch (e) {
  2041. return Toast.error("\u81ea\u5b9a\u4e49\u63a5\u53e3\u683c\u5f0f\u9519\u8bef"), !1;
  2042. }
  2043. return !0;
  2044. } ] ]);
  2045. this.TextAreaInit(textKeys);
  2046. let radioKeys = new Map([ [ ConfigEnum.Jiexi_Cus_Postion, v => !0 ] ]);
  2047. this.RadioInit(radioKeys);
  2048. }
  2049. biliPcOpt() {
  2050. let keys = [ ConfigEnum.BiliPc_Cover, ConfigEnum.BiliPc_Video_Download, ConfigEnum.BiliPc_Triple_Click ];
  2051. this.checkBoxInit(keys);
  2052. }
  2053. searchHelperOpt() {
  2054. let keys = [ ConfigEnum.Search_Helper_Switch ];
  2055. this.checkBoxInit(keys);
  2056. }
  2057. autoJumpOpt() {
  2058. let checkboxes = $("input[type=checkbox]");
  2059. checkboxes.removeProp("disabled"), [ ConfigEnum.AutoJump_ZhiHu, ConfigEnum.AutoJump_CSDN, ConfigEnum.AutoJump_JianShu, ConfigEnum.AutoJump_Gitee, ConfigEnum.AutoJump_JueJin, ConfigEnum.AutoJump_Weibo, ConfigEnum.AutoJump_TuXiaoChao, ConfigEnum.AutoJump_OsCh, ConfigEnum.AutoJump_AiFaDian, ConfigEnum.AutoJump_Baidu, ConfigEnum.AutoJump_DouBan, ConfigEnum.AutoJump_g17173, ConfigEnum.AutoJump_TencentDoc ].forEach((e, i) => {
  2060. $("#" + e.toString()).prop("checked", Config.get(e.toString(), !0));
  2061. }), checkboxes.on("change", e => {
  2062. let el = e.target;
  2063. Logger.debug(`\u914d\u7f6e[${e.target.id}]\u53d1\u751f\u53d8\u66f4,\u6700\u7ec8\u503c:[${$(e.target).prop("checked")}]`),
  2064. Config.set(el.id, $(el).prop("checked")), Toast.success("\u4fdd\u5b58\u6210\u529f");
  2065. });
  2066. }
  2067. csdnOpt() {
  2068. let keys = [ ConfigEnum.CSDN_OpAdClean, ConfigEnum.CSDN_OpImgLink, ConfigEnum.CSDN_OpCommentClean, ConfigEnum.CSDN_OpArticleClean, ConfigEnum.CSDN_OpClipboardClean ];
  2069. this.checkBoxInit(keys);
  2070. }
  2071. checkBoxInit(keys) {
  2072. let _keys = new Map(keys.map(e => [ e, v => !0 ]));
  2073. this.InputInit(_keys, "checkbox");
  2074. }
  2075. InputInit(keys, type = "checkbox") {
  2076. let ele = $(`input[type=${type}]`);
  2077. ele.removeProp("disabled"), keys.forEach((f, e) => {
  2078. if ("text" == type) {
  2079. let v = Config.get(e.toString(), "");
  2080. Logger.debug(`\u914d\u7f6e[${e.toString()}]\u521d\u59cb\u5316,\u503c:[${v}]`), $("#" + e.toString()).val(v);
  2081. } else "checkbox" == type && $("#" + e.toString()).prop("checked", Config.get(e.toString(), !0));
  2082. }), ele.on("change", e => {
  2083. let el = e.target;
  2084. "text" == type ? (Logger.debug(`\u914d\u7f6e[${e.target.id}]\u53d1\u751f\u53d8\u66f4,\u6700\u7ec8\u503c:[${$(e.target).val()}]`),
  2085. keys.get(el.id).apply(el, [ $(el).val() ]) && (Config.set(el.id, $(el).val()), Toast.success("\u4fdd\u5b58\u6210\u529f"))) : "checkbox" == type && (Logger.debug(`\u914d\u7f6e[${e.target.id}]\u53d1\u751f\u53d8\u66f4,\u6700\u7ec8\u503c:[${$(e.target).prop("checked")}]`),
  2086. Config.set(el.id, $(el).prop("checked")), Toast.success("\u4fdd\u5b58\u6210\u529f"));
  2087. });
  2088. }
  2089. TextAreaInit(keys) {
  2090. $("textarea").removeProp("disabled"), keys.forEach((f, e) => {
  2091. $("#" + e.toString()).val(Config.get(e.toString(), "")), $("#" + e.toString()).on("change", el => {
  2092. Logger.debug(`\u914d\u7f6e[${el.target.id}]\u53d1\u751f\u53d8\u66f4,\u6700\u7ec8\u503c:[${$(el.target).val()}]`),
  2093. f.apply(el, [ $(el.target).val() ]) && (Config.set(el.target.id, $(el.target).val()),
  2094. Toast.success("\u4fdd\u5b58\u6210\u529f"));
  2095. });
  2096. });
  2097. }
  2098. RadioInit(keys) {
  2099. $("input[type=radio]").removeProp("disabled"), keys.forEach((f, e) => {
  2100. Config.get(e.toString()) && $(`input[name="${e.toString()}"][value="${Config.get(e.toString())}"]`).prop("checked", !0),
  2101. $(`input[name="${e.toString()}"]`).on("change", event => {
  2102. let target = $(event.target), value = target.val();
  2103. Logger.debug(`\u914d\u7f6e[${target.attr("id")}]\u53d1\u751f\u53d8\u66f4,\u6700\u7ec8\u503c:[${value}]`),
  2104. f.apply(target, [ target.prop("checked") ]) && (Config.set(e.toString(), value),
  2105. Toast.success("\u4fdd\u5b58\u6210\u529f"));
  2106. });
  2107. });
  2108. }
  2109. initVer() {
  2110. $("#currentVer").text(Config.env.script.version);
  2111. }
  2112. removeAlert() {
  2113. $(".alert-danger").remove();
  2114. }
  2115. injection() {
  2116. unsafeWindow.window.scriptInfo = Config.env, unsafeWindow.window.gm_Set = Config.set,
  2117. unsafeWindow.window.gm_Get = Config.get;
  2118. }
  2119. }
  2120. class ControlMenuService extends PluginBase {
  2121. constructor() {
  2122. super(...arguments), this.rules = new Map([ [ SiteEnum.All, /.*/i ] ]), this._appName = "\u63a7\u5236\u83dc\u5355",
  2123. this._unique = !1;
  2124. }
  2125. loader() {}
  2126. run() {
  2127. GM_registerMenuCommand("\u63a7\u5236\u4e2d\u5fc3", () => {
  2128. Core.open("https://settings.wandhi.com");
  2129. });
  2130. }
  2131. }
  2132. class SearchService extends PluginBase {
  2133. constructor() {
  2134. super(...arguments), this.rules = new Map([ [ SiteEnum.Baidu, /www\.baidu\.com\/(baidu|s)\?/i ], [ SiteEnum.Google, /www\.google\.com\/search\?/i ], [ SiteEnum.SoGou, /www\.sogou\.com\/web/i ], [ SiteEnum.SoGou, /www\.so\.com\/s\?/i ], [ SiteEnum.BingCn, /cn\.bing\.com\/search/i ], [ SiteEnum.Bing, /www\.bing\.com\/search/i ] ]),
  2135. this._appName = "\u4fbf\u6377\u641c\u7d22", this._unique = !1, this.siteConfig = new Map([ [ SiteEnum.Baidu, "#kw" ], [ SiteEnum.Google, "input[name=q]" ], [ SiteEnum.SoGou, "#upquery" ], [ SiteEnum.BingCn, "#sb_form_q" ], [ SiteEnum.Bing, "#sb_form_q" ] ]);
  2136. }
  2137. loader() {
  2138. SearchService.currentSite = this.site, this.siteConfig.has(this.site) && (SearchService.keySelector = this.siteConfig.get(this.site));
  2139. }
  2140. run() {
  2141. if (Config.get(ConfigEnum.Search_Helper_Switch, !0)) {
  2142. let menus = [ new MfbModel("\u767e\u5ea6", "onekeyvip-baidu", () => {
  2143. Core.open("https://www.baidu.com/s?wd=" + $(SearchService.keySelector).val());
  2144. }), new MfbModel("\u641c\u72d7", "onekeyvip-sougou", () => {
  2145. Core.open(`https://www.sogou.com/web?query=${$(SearchService.keySelector).val()}&ie=utf8`);
  2146. }), new MfbModel("\u8c37\u6b4c", "onekeyvip-google", () => {
  2147. Core.open("https://www.google.com/search?q=" + $(SearchService.keySelector).val());
  2148. }), new MfbModel("360", "onekeyvip-360logo", () => {
  2149. Core.open("https://www.so.com/s?q=" + $(SearchService.keySelector).val());
  2150. }), new MfbModel("Bing", "onekeyvip-biying", () => {
  2151. Core.open("https://cn.bing.com/search?q=" + $(SearchService.keySelector).val());
  2152. }) ];
  2153. new MfbMenu(Config.get(ConfigEnum.Search_OptMenuPos, Config.get(ConfigEnum.Search_Helper_Postion, "cl")), Config.get(ConfigEnum.Search_OptMenuMethod, "hover")).Init(menus);
  2154. }
  2155. }
  2156. }
  2157. SearchService.keySelector = "#none";
  2158. class QuarkFileResponse {}
  2159. class Quark {
  2160. static init() {
  2161. this.sign();
  2162. }
  2163. static notification(msg) {
  2164. semiUi.Notification.success({
  2165. title: "\u7b7e\u5230\u901a\u77e5",
  2166. content: msg,
  2167. duration: 3,
  2168. theme: "light",
  2169. position: "bottomRight"
  2170. });
  2171. }
  2172. static sign() {
  2173. var _a;
  2174. return __awaiter(this, void 0, void 0, (function*() {
  2175. let growth_info = yield Quark.getCurrentInfo();
  2176. if (growth_info) if (null === (_a = growth_info.data.cap_sign) || void 0 === _a ? void 0 : _a.sign_daily) {
  2177. let message = `\ud83d\udcc5 \u6267\u884c\u7b7e\u5230: \u4eca\u65e5\u5df2\u7b7e\u5230+${growth_info.data.cap_sign.sign_daily_reward / 1024 / 1024}MB\uff0c\u8fde\u7b7e\u8fdb\u5ea6(${growth_info.data.cap_sign.sign_progress}/${growth_info.data.cap_sign.sign_target})\u2705`;
  2178. this.notification(message);
  2179. } else {
  2180. let sign_return = yield this.getSignInfo();
  2181. if (null == sign_return ? void 0 : sign_return.data) {
  2182. let message = `\ud83d\udcc5 \u6267\u884c\u7b7e\u5230: \u4eca\u65e5\u7b7e\u5230+${sign_return.data.sign_daily_reward / 1024 / 1024}MB\uff0c\u8fde\u7b7e\u8fdb\u5ea6(${growth_info.cap_sign.sign_progress + 1}/${growth_info.cap_sign.sign_target})\u2705`;
  2183. this.notification(message);
  2184. }
  2185. }
  2186. Config.set(Quark.signKey, "true", 86400);
  2187. }));
  2188. }
  2189. static getSignInfo() {
  2190. return __awaiter(this, void 0, void 0, (function*() {
  2191. let p = new Map;
  2192. return p.set("sign_cyclic", "true"), Http.post(Quark.signUrl + "?pr=ucpro&fr=pc&uc_param_str", p);
  2193. }));
  2194. }
  2195. static getCurrentInfo() {
  2196. return __awaiter(this, void 0, void 0, (function*() {
  2197. return Http.get(Quark.infoUrl + "?pr=ucpro&fr=pc&uc_param_str", new Map, new Map([ [ "Accept", "application/json" ] ]));
  2198. }));
  2199. }
  2200. }
  2201. Quark.infoUrl = "https://drive-m.quark.cn/1/clouddrive/capacity/growth/info", Quark.signUrl = "https://drive-m.quark.cn/1/clouddrive/capacity/growth/sign",
  2202. Quark.accUrl = "", Quark.saveUrl = "", Quark.signKey = "QuarkSignKey" + (new Date).toLocaleDateString().replace(/-/g, "");
  2203. class NetDiskDirectService extends PluginBase {
  2204. constructor() {
  2205. super(), this.rules = new Map([ [ SiteEnum.KuaKeHome, /pan\.quark\.cn\/list/ ], [ SiteEnum.KuaKeShare, /pan\.quark\.cn\/s/ ], [ SiteEnum.BaiduPanMain, /pan\.baidu\.com\/disk\/main/i ] ]),
  2206. this._appName = "NetDiskDirect", this.semiui = !0;
  2207. }
  2208. loader() {}
  2209. run() {
  2210. NetDiskDirectService._site = this.site, this.site == SiteEnum.KuaKeHome ? -1 === Core.url.indexOf("myshare") ? (NetDiskDirectService.btnSelecotr = ".btn-operate",
  2211. NetDiskDirectService.btn = NetDiskDirectService.quarkBtn, NetDiskDirectService.getSelecor = NetDiskDirectService.getQuarkSelectedFile,
  2212. NetDiskDirectService.quarkListener(), Core.appendCssContent(".btn-operate {justify-content: flex-start !important;}")) : (NetDiskDirectService.btnSelecotr = ".tabs-container",
  2213. NetDiskDirectService.btn = '<div class="ovk-main" style="margin-right: 10px;">\n <button type="button" class="ant-btn btn-file okv-btn-direct">\n <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMyMjIiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNOSAxMmwyIDIgMi0yeiIvPjxwYXRoIGQ9Ik0xNCA4aDEuNTUzYy44NSAwIDEuMTYuMDkzIDEuNDcuMjY3LjMxMS4xNzQuNTU2LjQzLjcyMi43NTYuMTY2LjMyNi4yNTUuNjUuMjU1IDEuNTR2NC44NzNjMCAuODkyLS4wODkgMS4yMTUtLjI1NSAxLjU0LS4xNjYuMzI3LS40MS41ODMtLjcyMi43NTctLjMxLjE3NC0uNjIuMjY3LTEuNDcuMjY3SDYuNDQ3Yy0uODUgMC0xLjE2LS4wOTMtMS40Ny0uMjY3YTEuNzc4IDEuNzc4IDAgMDEtLjcyMi0uNzU2Yy0uMTY2LS4zMjYtLjI1NS0uNjUtLjI1NS0xLjU0di00Ljg3M2MwLS44OTIuMDg5LTEuMjE1LjI1NS0xLjU0LjE2Ni0uMzI3LjQxLS41ODMuNzIyLS43NTcuMzEtLjE3NC42Mi0uMjY3IDEuNDctLjI2N0gxMSIvPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTExIDN2MTAiLz48L2c+PC9zdmc+" class="btn-icon" alt="" style="width: 20px;height: 20px">\n <span>\u5bfc\u51fa\u5206\u4eab\u94fe\u63a5</span>\n </button>\n</div>',
  2214. NetDiskDirectService.getSelecor = NetDiskDirectService.getQuarkShareSelectedFile,
  2215. NetDiskDirectService.quarkListener()) : this.site == SiteEnum.BaiduPanMain ? (NetDiskDirectService.btnSelecotr = ".wp-s-agile-tool-bar__header",
  2216. NetDiskDirectService.btn = '<div class="ovk-main" style="margin-right: 10px;">\n <button type="button" class="u-button nd-file-list-toolbar-action-item u-button--primary u-button--small is-round is-has-icon okv-btn-direct" style="background: #09AAFF;border-color: #09AAFF;font-size: 14px;padding: 7px 16px;border: none;\n}">\n <i class="u-icon u-icon-download"></i>\n <span>\u83b7\u53d6\u76f4\u94fe</span>\n </button>\n</div>',
  2217. NetDiskDirectService.initButton(), NetDiskDirectService.baiduEvent(), NetDiskDirectService.commonEvent()) : this.site == SiteEnum.KuaKeShare && (NetDiskDirectService.btnSelecotr = ".file-info-share-buttom",
  2218. NetDiskDirectService.btn = NetDiskDirectService.quarkBtn, NetDiskDirectService.initButton(),
  2219. $(document).on("click", ".okv-btn-direct", e => {
  2220. Toast.warning("\u8bf7\u5148\u4fdd\u5b58\u5230\u81ea\u5df1\u7f51\u76d8\uff0c\u7136\u540e\u4ece\u201c\u6211\u7684\u7f51\u76d8\u201d\u754c\u9762\u83b7\u53d6\u76f4\u94fe");
  2221. }));
  2222. }
  2223. static quarkListener() {
  2224. window.addEventListener("hashchange", e => __awaiter(this, void 0, void 0, (function*() {
  2225. "https://pan.quark.cn/list#/" === e.oldURL && "https://pan.quark.cn/list#/list/all" === e.newURL || (yield Core.sleep(.15),
  2226. $(".quark-button").length > 0 || NetDiskDirectService.initButton());
  2227. }))), NetDiskDirectService.initButton(), NetDiskDirectService.quarkEvent(), NetDiskDirectService.commonEvent(),
  2228. Quark.init(), Logger.info("\u5938\u514b\u521d\u59cb\u5316\u5b8c\u6bd5");
  2229. }
  2230. static baiduSelectedList() {
  2231. try {
  2232. return require("system-core:context/context.js").instanceForSystem.list.getSelected();
  2233. } catch (e) {
  2234. return unsafeWindow.document.querySelector(".wp-s-core-pan").__vue__.selectedList;
  2235. }
  2236. }
  2237. static getLogid() {
  2238. return window.btoa(Core.getCookie("BAIDUID"));
  2239. }
  2240. static getToken() {
  2241. var _a;
  2242. return __awaiter(this, void 0, void 0, (function*() {
  2243. let k = "baidu_access_Token", token = Config.get(k) && Config.get(k).length > 0 && Config.get(k);
  2244. if (token) return token;
  2245. let res = yield Route.baiduAccessToken();
  2246. return -1 === res.indexOf("access_token") && (yield Route.baiduAccessTokenAuth(),
  2247. res = yield Route.baiduAccessToken(), -1 === res.indexOf("access_token")) ? (Toast.error("\u63d0\u793a\uff1a\u83b7\u53d6token\u5931\u8d25\uff01"),
  2248. !1) : (token = null === (_a = res.match(/access_token=([^&]+)/)) || void 0 === _a ? void 0 : _a[1],
  2249. token && Config.set(k, token, 21600), token);
  2250. }));
  2251. }
  2252. static sendLinkToRPC(filename, link, ua, cookie) {
  2253. return __awaiter(this, void 0, void 0, (function*() {
  2254. let url = `${Config.get(ConfigEnum.WangPan_Aria_Host, "http://localhost")}:${Config.get(ConfigEnum.WangPan_Aria_Port, 6800)}${Config.get(ConfigEnum.WangPan_Aria_Path, "/jsonrpc")}`, rpcData = {
  2255. id: (new Date).getTime(),
  2256. jsonrpc: "2.0",
  2257. method: "aria2.addUri",
  2258. params: [ "token:" + Config.get(ConfigEnum.WangPan_Aria_Token, ""), [ link ], {
  2259. dir: Config.get(ConfigEnum.WangPan_Aria_Dir, "D:\\"),
  2260. out: filename,
  2261. header: [ "User-Agent: " + ua, "Cookie: " + cookie ]
  2262. } ]
  2263. };
  2264. try {
  2265. return !!(yield Http.ajaxNew(url, "POST", rpcData, new Map([ [ "User-Agent", ua ] ])));
  2266. } catch (e) {
  2267. return Logger.error(e), !1;
  2268. }
  2269. }));
  2270. }
  2271. static baiduEvent() {
  2272. $(document).on("click", ".okv-btn-direct", e => {
  2273. let selectList = NetDiskDirectService.baiduSelectedList();
  2274. if (0 === selectList.length) return void Toast.error("\u63d0\u793a\uff1a\u8bf7\u5148\u52fe\u9009\u8981\u4e0b\u8f7d\u7684\u6587\u4ef6\uff01");
  2275. let fidsStr = `[${selectList.map(item => item.fs_id).join(",")}]`;
  2276. 2 !== fidsStr.length ? this.getToken().then(token => {
  2277. Route.baiduDriect(fidsStr, token).then(res => __awaiter(this, void 0, void 0, (function*() {
  2278. if (Logger.debug(res), 0 === res.errno) {
  2279. let ck = `BDUSS=${yield Core.getGmCookie("BDUSS")};`;
  2280. sAlert.html("\u76f4\u94fe\u4fe1\u606f", NetDiskDirectService.generateDom(res.list.map(e => {
  2281. let obj = new QuarkFileResponse;
  2282. return obj.fid = e.fs_id.toString(), obj.file_name = e.filename, obj.download_url = token ? `${e.dlink}&access_token=${token}` : e.dlink,
  2283. obj.size = e.size, obj.ua = "pan.baidu.com", obj.cookie = ck, obj;
  2284. })), !0, "\u6211\u597d\u4e86", "#3085d6", "auto");
  2285. } else 112 === res.errno ? Toast.error("\u63d0\u793a\uff1a\u9875\u9762\u8fc7\u671f\uff0c\u8bf7\u5237\u65b0\u91cd\u8bd5\uff01") : Toast.error("\u63d0\u793a\uff1a\u83b7\u53d6\u4e0b\u8f7d\u94fe\u63a5\u5931\u8d25\uff01\u8bf7\u5237\u65b0\u7f51\u9875\u540e\u91cd\u8bd5\uff01");
  2286. })));
  2287. }) : Toast.error("\u63d0\u793a\uff1a\u8bf7\u6253\u5f00\u6587\u4ef6\u5939\u540e\u52fe\u9009\u6587\u4ef6\uff01");
  2288. });
  2289. }
  2290. static quarkEvent() {
  2291. $(document).on("click", ".okv-btn-direct", e => {
  2292. let selectList = NetDiskDirectService.getQuarkSelectedFile();
  2293. if (Logger.debug("\u5938\u514b-\u9009\u62e9\u6587\u4ef6" + selectList), 0 === selectList.length) return void Toast.error("\u8bf7\u5148\u52fe\u9009\u8981\u4e0b\u8f7d\u7684\u6587\u4ef6");
  2294. if (selectList.filter(e => !e.file).length == selectList.length) return void Toast.error("\u6682\u4e0d\u652f\u6301\u6587\u4ef6\u5939\u4e0b\u8f7d");
  2295. let fids = selectList.filter(e => e.file).map(e => e.fid);
  2296. NetDiskDirectService._site == SiteEnum.KuaKeHome ? Route.quarkDriect(fids).then(res => {
  2297. if (Logger.debug(res), 31001 == res.code) return void Toast.error("\u8bf7\u5148\u767b\u5f55\u7f51\u76d8");
  2298. if (0 != res.code) return void Toast.error(`\u94fe\u63a5\u83b7\u53d6\u5931\u8d25,\u8bf7\u7a0d\u540e\u518d\u8bd5(${res.code})`);
  2299. let data = res.data.map(e => (e.cookie = unsafeWindow.document.cookie, e));
  2300. sAlert.html("\u76f4\u94fe\u4fe1\u606f", NetDiskDirectService.generateDom(data), !0, "\u6211\u597d\u4e86", "#3085d6", "auto");
  2301. }) : sAlert.error("\u8bf7\u5148\u5c06\u6587\u4ef6\u4fdd\u5b58\u5230\u81ea\u5df1\u7684\u7f51\u76d8");
  2302. });
  2303. }
  2304. static commonEvent() {
  2305. $(document).on("click", ".quark-down-item", e => {
  2306. Core.open(e.target.dataset.url, !0);
  2307. }), $(document).on("click", ".quark-copy-item", e => {
  2308. GM_setClipboard(e.target.dataset.url), e.target.innerText = "\u590d\u5236\u6210\u529f";
  2309. }), $(document).on("click", ".quark-send-item", e => __awaiter(this, void 0, void 0, (function*() {
  2310. let url = e.target.dataset.url, filename = e.target.dataset.filename, ua = e.target.dataset.ua, ck = e.target.dataset.ck;
  2311. "BDUSS=;" == ck && Toast.warning("cookie\u83b7\u53d6\u5f02\u5e38,\u4e0b\u8f7d\u53ef\u80fd\u4f1a\u5931\u8d25,\u53ef\u5c1d\u8bd5\u4f7f\u7528\u811a\u672c\u732b\u907f\u514d\u8be5\u95ee\u9898");
  2312. let res = yield NetDiskDirectService.sendLinkToRPC(filename, url, ua, ck);
  2313. e.target.innerText = res ? "\u53d1\u9001\u6210\u529f" : "\u53d1\u9001\u5931\u8d25(\u8bf7\u68c0\u67e5\u914d\u7f6e)";
  2314. })));
  2315. }
  2316. static generateDom(list) {
  2317. let rows = "";
  2318. return list.forEach(e => {
  2319. rows += `<tr>\n <td class="bili-table-cell">${e.file_name}</td>\n <td class="bili-table-cell">${Core.sizeFormat(e.size)}</td>\n <td class="bili-table-cell">\n <button class="okv-btn okv-btn-primary okv-btn-success quark-send-item" data-url="${e.download_url}" data-filename="${e.file_name}" data-ua="${e.ua}" data-ck="${e.cookie}">\u53d1\u9001Aria</button>\n <button class="okv-btn okv-btn-primary quark-copy-item" data-url="${e.download_url}">\u590d\u5236\u94fe\u63a5</button>\n <button class="okv-btn okv-btn-primary quark-down-item" data-url="${e.download_url}">\u4e0b\u8f7d</button>\n </td>\n </tr>`;
  2320. }), `<div style="height: 30rem">\n <div style="padding-bottom: 25px;">\u5982\u679c\u51fa\u73b0403\u8bf7\u5c1d\u8bd5<a style="color: red" target="_blank" href="https://settings.wandhi.com/tools/wangpan/page.html">\u68c0\u67e5\u914d\u7f6e</a>\u6216\u5347\u7ea7<b>\u6700\u65b0\u7248\u672c</b>\n <p>\u76f4\u94fe<b style="color: red">\u5e76\u4e0d\u80fd</b> \u4ee3\u66ff\u7f51\u76d8VIP\u529f\u80fd\uff0c\u4e0d\u4f1a\u4f7f\u7528\u8bf7\u5148\u67e5\u770b<a href="https://wiki.wandhi.com" style="color: blue" target="_blank">Wiki</a></p>\n <p>\u76f4\u94fe\u529f\u80fd\u642d\u914dVIP\u4f1a\u5458\u624d\u80fd\u83b7\u53d6\u5230\u52a0\u901f\u94fe\u63a5<b>(<a href="${NetDiskDirectService.bdVip1}" target="_blank" style="color: red">\u83b7\u53d6\u4e34\u65f6VIP\u2460</a>\uff0c<a href="${NetDiskDirectService.bdVip2}" target="_blank" style="color: red">\u83b7\u53d6\u4e34\u65f6VIP\u2461</a>)</b></p>\n <p><b style="color: red">\u5927\u6587\u4ef6</b>\u8bf7\u4f18\u5148\u4f7f\u7528Aria\u4e4b\u7c7b\u7684\u4e0b\u8f7d\u5de5\u5177,\u76f4\u63a5\u70b9\u51fb\u4e0b\u8f7d\u5927\u6982\u7387\u4f1a\u6ca1\u6743\u9650</p>\n <p><b style="color: red">\u767e\u5ea6UA\uff1a</b>pan.baidu.com</p>\n </div>\n <table class="bili-table bili-table-small">\n <thead class="bili-table-head">\n <tr> \n <th class="bili-table-cell">\u6807\u9898</th>\n <th class="bili-table-cell">\u5927\u5c0f</th>\n <th class="bili-table-cell">\u64cd\u4f5c</th>\n </tr>\n </thead>\n <tbody class="at-table-tbody"> \n ${rows}\n </tbody> \n </table>\n </div>`;
  2321. }
  2322. static initButton() {
  2323. Core.autoLazyload(() => $(NetDiskDirectService.btnSelecotr).length > 0, () => {
  2324. Core.prepend(NetDiskDirectService.btnSelecotr, NetDiskDirectService.btn);
  2325. }, .5);
  2326. }
  2327. static getQuarkSelectedFile() {
  2328. let selectedList = [];
  2329. try {
  2330. let reactDom = document.getElementsByClassName("file-list")[0], props = Core.getReact(reactDom).props;
  2331. if (props) {
  2332. let fileList = props.list || [], selectedKeys = props.selectedRowKeys || [];
  2333. fileList.forEach(val => {
  2334. selectedKeys.includes(val.fid) && selectedList.push(val);
  2335. });
  2336. }
  2337. return selectedList;
  2338. } catch (e) {
  2339. return selectedList;
  2340. }
  2341. }
  2342. static getQuarkShareSelectedFile() {
  2343. let selectedList = [];
  2344. try {
  2345. let reactDom = document.getElementsByClassName("file-list")[0], props = Core.getReact(reactDom).props;
  2346. if (props) {
  2347. let fileList = props.list || [], selectedKeys = props.selectedRowKeys || [];
  2348. fileList.forEach(val => {
  2349. selectedKeys.includes(val.share_id) && selectedList.push(val);
  2350. });
  2351. }
  2352. return selectedList;
  2353. } catch (e) {
  2354. return selectedList;
  2355. }
  2356. }
  2357. }
  2358. NetDiskDirectService.quarkBtn = '<div class="ovk-main" style="margin-right: 10px;">\n <button type="button" class="ant-btn btn-file okv-btn-direct">\n <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjIiIGhlaWdodD0iMjIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2U9IiMyMjIiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBkPSJNOSAxMmwyIDIgMi0yeiIvPjxwYXRoIGQ9Ik0xNCA4aDEuNTUzYy44NSAwIDEuMTYuMDkzIDEuNDcuMjY3LjMxMS4xNzQuNTU2LjQzLjcyMi43NTYuMTY2LjMyNi4yNTUuNjUuMjU1IDEuNTR2NC44NzNjMCAuODkyLS4wODkgMS4yMTUtLjI1NSAxLjU0LS4xNjYuMzI3LS40MS41ODMtLjcyMi43NTctLjMxLjE3NC0uNjIuMjY3LTEuNDcuMjY3SDYuNDQ3Yy0uODUgMC0xLjE2LS4wOTMtMS40Ny0uMjY3YTEuNzc4IDEuNzc4IDAgMDEtLjcyMi0uNzU2Yy0uMTY2LS4zMjYtLjI1NS0uNjUtLjI1NS0xLjU0di00Ljg3M2MwLS44OTIuMDg5LTEuMjE1LjI1NS0xLjU0LjE2Ni0uMzI3LjQxLS41ODMuNzIyLS43NTcuMzEtLjE3NC42Mi0uMjY3IDEuNDctLjI2N0gxMSIvPjxwYXRoIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgZD0iTTExIDN2MTAiLz48L2c+PC9zdmc+" class="btn-icon" alt="" style="width: 20px;height: 20px">\n <span>\u83b7\u53d6\u76f4\u94fe</span>\n </button>\n</div>',
  2359. NetDiskDirectService.btnSelecotr = "", NetDiskDirectService.btn = "", NetDiskDirectService.bdVip2 = "https://wiki.wandhi.com/pan/#%F0%9F%9B%92%E5%90%88%E7%A7%9F%E5%90%A7",
  2360. NetDiskDirectService.bdVip1 = "http://cc.hrfx.gq";
  2361. class AdClearService extends PluginBase {
  2362. constructor() {
  2363. super(...arguments), this.rules = new Map([ [ SiteEnum.Baidu, /baidu.com\/s\?wd/i ], [ SiteEnum.YouTuBe, /youtube.com\/watch/i ] ]),
  2364. this._unique = !1, this._appName = "\u5e7f\u544a\u6e05\u7406";
  2365. }
  2366. loader() {}
  2367. run() {
  2368. this.YoutubeMobile();
  2369. }
  2370. YoutubeMobile() {
  2371. let cssText = [ "ytm-item-section-renderer:has(a[href*='googleads'])", "#masthead-ad", "ytd-rich-item-renderer.style-scope.ytd-rich-grid-row #content:has(.ytd-display-ad-renderer)", "ytd-rich-section-renderer #dismissible", ".video-ads.ytp-ad-module", "tp-yt-paper-dialog:has(yt-mealbar-promo-renderer)", "#related #player-ads", "#related ytd-ad-slot-renderer", "ytd-ad-slot-renderer", "yt-mealbar-promo-renderer" ].join(",") + "{display:none!important;}";
  2372. Core.appendCssContent(cssText), Logger.info("YoutubeMobile AdClearService loaded");
  2373. }
  2374. }
  2375. Menu = Common.Menu;
  2376. class XhsService extends PluginBase {
  2377. constructor() {
  2378. super(...arguments), this.rules = new Map([ [ SiteEnum.Xhs, /www\.xiaohongshu\.com\/explore/ ] ]),
  2379. this._appName = "xhs", this._unique = !1, this.semiui = !0;
  2380. }
  2381. loader() {}
  2382. run() {
  2383. Logger.debug("xhs service");
  2384. this.menu.Init([ {
  2385. title: "\u672c\u6b21\u5173\u95ed",
  2386. show: "\u672c\u6b21<br>\u5173\u95ed",
  2387. type: "search"
  2388. }, {
  2389. title: "\u6c34\u5370\u89e3\u6790",
  2390. show: "\u6c34\u5370<br>\u89e3\u6790",
  2391. type: "process"
  2392. }, {
  2393. title: "\u7edd\u4e16\u597d\u5238",
  2394. show: "\u7edd\u4e16<br>\u597d\u5238",
  2395. type: "tb"
  2396. }, {
  2397. title: "\u4eac\u4e1c\u597d\u5238",
  2398. show: "\u4eac\u4e1c<br>\u597d\u5238",
  2399. type: "jd"
  2400. } ], this._onClick);
  2401. }
  2402. _onClick() {
  2403. $("body").on("click", "[data-cat=process]", (function() {
  2404. XhsService.xhsPorcess();
  2405. })), $("body").on("click", "[data-cat=search]", (function() {
  2406. Menu.close();
  2407. })), $("body").on("click", "[data-cat=tb]", (function() {
  2408. Core.open("http://shop.huizhek.com");
  2409. })), $("body").on("click", "[data-cat=jd]", (function() {
  2410. Core.open("http://shop.huizhek.com");
  2411. }));
  2412. }
  2413. static xhsPorcess() {
  2414. var _a, _b, _c, _d;
  2415. let url = Core.url;
  2416. if (!/https:\/\/www\.xiaohongshu\.com\/explore\/[a-zA-Z0-9_\-]{5,22}/i.test(url)) return void Toast.warning("\u8bf7\u5148\u9009\u62e9\u4e00\u7bc7\u5185\u5bb9");
  2417. if (!Core.getCookie("gid")) return void Toast.warning("\u8bf7\u5148\u767b\u5f55\u5c0f\u7ea2\u4e66");
  2418. let info = unsafeWindow.window.__INITIAL_STATE__, noteId = null === (_a = null == info ? void 0 : info.note) || void 0 === _a ? void 0 : _a.firstNoteId.value;
  2419. if (noteId) {
  2420. let note = null === (_c = null === (_b = null == info ? void 0 : info.note) || void 0 === _b ? void 0 : _b.noteDetailMap[noteId]) || void 0 === _c ? void 0 : _c.note;
  2421. if (!note) return void Toast.error("\u5185\u5bb9\u4fe1\u606f\u83b7\u53d6\u5931\u8d25");
  2422. if (Logger.debug(note), "video" == (null == note ? void 0 : note.type)) Toast.warning("\u6682\u4e0d\u652f\u6301\u89c6\u9891\u89e3\u6790"); else if ("normal" == (null == note ? void 0 : note.type)) {
  2423. let selectNum = $(".fraction").text();
  2424. Logger.debug(selectNum);
  2425. let n = selectNum.match(/\d+/), num = 0;
  2426. null == n || n.length < 1 || (num = Number.parseInt(n[0]));
  2427. let code = null === (_d = null == note ? void 0 : note.imageList[num > 0 ? num - 1 : num]) || void 0 === _d ? void 0 : _d.infoList[1].url;
  2428. Core.open(`https://jx.wandhi.com?u=${window.btoa(code)}&t=xhsimg`);
  2429. } else Toast.error(`\u9519\u8bef\u7684\u6570\u636e\u7c7b\u578b,\u8bf7\u5411\u4f5c\u8005\u53cd\u9988(${null == note ? void 0 : note.type})`);
  2430. }
  2431. }
  2432. }
  2433. class SettingUI extends React__default.default.Component {
  2434. constructor(p) {
  2435. super(p), this.configKeys = [ "search_helper_switch", "search_helper_postion" ],
  2436. this.handOk = e => {
  2437. let obj = this.fromApi.getValues();
  2438. for (let key in obj) Config.set(key, obj[key]);
  2439. this.setState({
  2440. visible: !1
  2441. }), Toast.success("\u4fdd\u5b58\u6210\u529f");
  2442. }, this.handCancel = e => {
  2443. this.setState({
  2444. visible: !1
  2445. });
  2446. }, this.state = {
  2447. visible: !0,
  2448. search_helper_switch: Config.get(ConfigEnum.Search_Helper_Switch, !0),
  2449. search_helper_postion: Config.get(ConfigEnum.Search_Helper_Postion, "cl")
  2450. }, this.handCancel = this.handCancel.bind(this);
  2451. }
  2452. render() {
  2453. return React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(semiUi.Modal, {
  2454. title: "\u63d2\u4ef6\u8bbe\u7f6e",
  2455. visible: this.state.visible,
  2456. onOk: this.handOk,
  2457. onCancel: this.handCancel
  2458. }, React__default.default.createElement(semiUi.Tabs, {
  2459. tabPosition: "left",
  2460. type: "line"
  2461. }, React__default.default.createElement(semiUi.TabPane, {
  2462. tab: React__default.default.createElement("span", null, "\u641c\u7d22\u52a9\u624b"),
  2463. itemKey: "1"
  2464. }, React__default.default.createElement("div", {
  2465. className: "grid"
  2466. }, React__default.default.createElement(semiUi.Form, {
  2467. style: {
  2468. padding: "0 24px"
  2469. },
  2470. initValues: this.state,
  2471. getFormApi: api => this.fromApi = api,
  2472. render: ({formState: formState, formApi: formApi, values: values}) => React__default.default.createElement(React__default.default.Fragment, null, React__default.default.createElement(semiUi.Form.Switch, {
  2473. field: "search_helper_switch",
  2474. label: "\u641c\u7d22\u52a9\u624b"
  2475. }), React__default.default.createElement(semiUi.Form.Select, {
  2476. field: "search_helper_postion",
  2477. label: "\u83dc\u5355\u4f4d\u7f6e",
  2478. style: {
  2479. width: "100%"
  2480. }
  2481. }, React__default.default.createElement(semiUi.Form.Select.Option, {
  2482. value: "tl"
  2483. }, "\u5de6\u4e0a"), React__default.default.createElement(semiUi.Form.Select.Option, {
  2484. value: "cl"
  2485. }, "\u5de6\u4e2d"), React__default.default.createElement(semiUi.Form.Select.Option, {
  2486. value: "bl"
  2487. }, "\u5de6\u4e0b"))),
  2488. layout: "vertical",
  2489. onValueChange: values => {}
  2490. }))))));
  2491. }
  2492. }
  2493. class SettingUIService extends PluginBase {
  2494. constructor() {
  2495. super(...arguments), this.rules = new Map([ [ SiteEnum.All, /.*?/i ] ]), this._unique = !1,
  2496. this.semiui = !0, this._appName = "SettingUI";
  2497. }
  2498. loader() {}
  2499. run() {
  2500. GM_registerMenuCommand("\u63d2\u4ef6\u8bbe\u7f6e", () => Core.Render(React__default.default.createElement(SettingUI, {
  2501. key: (new Date).getTime()
  2502. }), this._appName));
  2503. }
  2504. }
  2505. class OneKeyVipGfInjection {
  2506. constructor() {
  2507. this.plugins = new Array, this.plugins = [ Container.Require(AdClearService), Container.Require(ControlMenuService), Container.Require(SettingUIService), Container.Require(SettingService), Container.Require(AutoExpandService), Container.Require(AliyunPanToken), Container.Require(BiliImgService), Container.Require(BiliMobileService), Container.Require(MovieService), Container.Require(MusicService), Container.Require(CsdnAdService), Container.Require(WenKuService), Container.Require(LinkJumpService), Container.Require(YoutubeService), Container.Require(XhsService), Container.Require(SearchService), Container.Require(NetDiskDirectService) ],
  2508. Logger.info("container loaded");
  2509. }
  2510. Init() {
  2511. this.plugins.every(element => element.linkTest() ? (new Promise(resolve => {
  2512. resolve(1);
  2513. }).then(element.Process), Logger.debug(`element [${element.appName()}];unique:[${element.unique()}]`),
  2514. !element.unique()) : (Logger.debug(`element [${element.appName()}];not pass`), !0));
  2515. }
  2516. }
  2517. Logger.level = LogLevel.info, Container.Require(OneKeyVipGfInjection).Init();
  2518. }));

QingJ © 2025

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