适用于网易云音乐扁平风格样式表的辅助用户脚本

为网易云音乐扁平风格样式表提供更佳的用户体验。

Εγκατάσταση αυτού του κώδικαΒοήθεια
Κώδικας προτεινόμενος από τον δημιιουργό

Μπορεί, επίσης, να σας αρέσει ο κώδικας 网易云音乐扁平风格.

Εγκατάσταση ως στυλ χρήστη
  1. // ==UserScript==
  2. // @name:en Userscript Helper for Flat-Style Netease Music Userstyle 适用于网易云音乐扁平风格样式表的辅助用户脚本
  3. // @description:en Provides a better experience for Flat-Style Netease Music Userstyle. 为网易云音乐扁平风格样式表提供更佳的用户体验。
  4. // @name:zh 适用于网易云音乐扁平风格样式表的辅助用户脚本
  5. // @description:zh 为网易云音乐扁平风格样式表提供更佳的用户体验。
  6. // @name 适用于网易云音乐扁平风格样式表的辅助用户脚本
  7. // @description 为网易云音乐扁平风格样式表提供更佳的用户体验。
  8. // @namespace wTonyChen.flatnmusich
  9. // @version 0.2.18-0.9.20
  10. // @author wTonyChen
  11. // @copyright 2022 wTonyChen (https://github.com/wTonyChen)
  12. // @compatible chrome 101+
  13. // @compatible edge 101+
  14. // @compatible opera 87+
  15. // @compatible firefox 100+ 有限支持
  16. // @license GPL-3.0-or-later
  17. // @homepage https://wtonychen.github.io/flatnmusic/
  18. // @supportURL https://github.com/wTonyChen/flatnmusic/issues
  19. // @match http*://music.163.com/*
  20. // @run-at document-end
  21. // @grant none
  22. // ==/UserScript==
  23.  
  24. !(function () {
  25. "use strict";
  26. let e = "0.2.18-0.9.20",
  27. t = "wk-fnm-hi-cfg",
  28. l = document.querySelector("." + t);
  29. l ||
  30. ((l = document.createElement("div")),
  31. (l.className = t),
  32. document.body.appendChild(l));
  33. let s,
  34. a = getComputedStyle(l),
  35. i = {
  36. 86: "1f603",
  37. 85: "1f60a",
  38. 359: "263a",
  39. 95: "1f60d",
  40. 363: "1f618",
  41. 96: "1f631",
  42. 356: "1f62d",
  43. 362: "1f619",
  44. 352: "1f633",
  45. 87: "1f61e",
  46. 343: "1f601",
  47. 348: "1f61d",
  48. 353: "1f612",
  49. 361: "1f621",
  50. 341: "1f60f",
  51. 97: "1f613",
  52. 346: "1f616",
  53. 354: "1f630",
  54. 350: "1f628",
  55. 351: "1f637",
  56. 357: "1f602",
  57. 355: "1f635",
  58. 115: "1f47f",
  59. 360: "1f604",
  60. 94: "1f61c",
  61. 342: "1f614",
  62. 358: "1f622",
  63. 33: "2764",
  64. 34: "1f494",
  65. 303: "1f498",
  66. 309: "2b50",
  67. 314: "1f4a2",
  68. 89: "1f4a9",
  69. 13: "1f44d",
  70. 372: "1f44e",
  71. 14: "1f64f",
  72. 379: "1f46b",
  73. 380: "1f46f",
  74. 374: "1f645",
  75. 262: "1f481",
  76. 106: "1f48f",
  77. 376: "1f491",
  78. 367: "1f444",
  79. 81: "1f436",
  80. 78: "1f431",
  81. 100: "1f437",
  82. 459: "1f430",
  83. 450: "1f424",
  84. 461: "1f414",
  85. 116: "1f47b",
  86. 411: "1f385",
  87. 101: "1f47d",
  88. 52: "1f48e",
  89. 107: "1f381",
  90. 0: "1f466",
  91. 1: "1f467",
  92. 337: "1f382",
  93. 186: "1f51e",
  94. 312: "2b55",
  95. 313: "274c",
  96. },
  97. n = "/style/web2/emt/emoji_",
  98. x = (e) => {
  99. let t = a.getPropertyValue("--" + e);
  100. if (t)
  101. try {
  102. t &&
  103. t.indexOf("/") > -1 &&
  104. (t = decodeURIComponent(t.replace(/\//g, "%")));
  105. } catch (e) {}
  106. return (
  107. ((0 === t.indexOf('"') && t.lastIndexOf('"') === t.length - 1) ||
  108. (0 === t.indexOf("'") && t.lastIndexOf("'") === t.length - 1)) &&
  109. (t = t.substr(1, t.length - 2)),
  110. t
  111. );
  112. },
  113. r = (e) => {
  114. let t;
  115. return window.localStorage && (t = localStorage.getItem(e)), t;
  116. },
  117. c = (e, t) => {
  118. window.localStorage && localStorage.setItem(e, t);
  119. },
  120. o = x("wkhi-a"),
  121. d = x("wkhi-b");
  122. if (!d) return void l.parentElement.removeChild(l);
  123. document.documentElement.setAttribute("wk-style-assist", "true");
  124. let p = r("wkoptin") || !1,
  125. f = function () {
  126. let e = arguments[0];
  127. for (let t = 1; t < arguments.length; t++) {
  128. let l = RegExp("\\{" + t + "\\}", "g");
  129. e = e.replace(l, arguments[t]);
  130. }
  131. return e;
  132. };
  133. ((e) => {
  134. let t,
  135. l = 0,
  136. s = !1,
  137. a = document.querySelector("#g-topbar"),
  138. i = document.querySelector("#g_iframe"),
  139. n = 0,
  140. x = 0,
  141. c = !0;
  142. if (!a || !Object.is(window.self, window.top)) return;
  143. let o = 1.6 * a.getBoundingClientRect().height,
  144. d = (e) => {
  145. t && t.cancel(),
  146. (x = 0),
  147. (n = 0),
  148. (l = 0),
  149. (c = !1),
  150. (t = a.animate([{ transform: "translateY(0)" }], {
  151. duration: 200,
  152. fill: "backwards",
  153. easing: "cubic-bezier(.16,1,.29,.99)",
  154. })),
  155. (t.onfinish = (e) => {
  156. (c = !0), (a.style.transform = "translateY(0)");
  157. });
  158. };
  159. i.addEventListener("load", (e) => {
  160. i.contentWindow.addEventListener("beforeunload", d),
  161. i.contentDocument.addEventListener("scroll", (e) => {
  162. c || t.cancel(),
  163. (l = i.contentWindow.scrollY),
  164. s ||
  165. (window.requestAnimationFrame((e) => {
  166. ((e) => {
  167. if (r("wksdscrolling")) {
  168. let t = e - n;
  169. (x = Math.max(Math.min(x + t, o), 0)),
  170. (a.style.top = "0 !important"),
  171. (a.style.transform = `translateY(-${x}px)`);
  172. } else (a.style.top = ""), (a.style.transform = ""), (x = 0);
  173. n = e;
  174. })(l),
  175. (s = !1);
  176. }),
  177. (s = !0));
  178. });
  179. });
  180. })();
  181. let m = "",
  182. b = (e) => {
  183. let t = document.querySelector("a.u-btni-fav-dis,a.u-btni-fav-dis2");
  184. if (t) {
  185. let e = t.parentElement.querySelector("[data-res-id]");
  186. e &&
  187. ((t.href = "/playlist?id=" + e.dataset.resId),
  188. (t.innerHTML =
  189. "<i title='&#x8df3;&#x8f6c;&#x5230;&#x6b4c;&#x5355;'>&#x524d;&#x5f80;&#x6b4c;&#x5355;</i>"),
  190. t.classList.remove("u-btni-fav-dis", "u-btni-fav-dis2"));
  191. }
  192. };
  193. r("wkstoplistjump") &&
  194. 0 === location.pathname.indexOf("/discover/toplist") &&
  195. b(),
  196. r("wksmylistjump") &&
  197. 0 === location.pathname.indexOf("/my") &&
  198. setInterval((e) => b(), 1e3);
  199. let u = (e) => {
  200. let t = "" + e,
  201. l = 0;
  202. for (let e = 0; e < t.length; e++) l += t[e].charCodeAt();
  203. return l;
  204. },
  205. w = (e) => {
  206. if (!Object.is(window.self, window.top)) return;
  207. let t = document.querySelectorAll(
  208. ".m-playbar .listlyric>p:not(.wk-upgraded)"
  209. );
  210. for (let e = 0; e < t.length; e++)
  211. (t[e].innerText = t[e].innerText.split("\n")[0]),
  212. (t[e].innerHTML = t[e].innerHTML.replace(/\&nbsp;/g, " ")),
  213. t[e].classList.add("wk-upgraded");
  214. };
  215. r("wklrctrans") && document.body.classList.add("wk-playlist-applied"),
  216. (DocumentFragment.prototype.appendChildHost =
  217. DocumentFragment.prototype.appendChild),
  218. (DocumentFragment.prototype.appendChild = function () {
  219. if (
  220. r("wksplayinguiani") &&
  221. arguments[0].classList.contains("m-layer") &&
  222. arguments[0].parentElement
  223. ) {
  224. let e = arguments[0].cloneNode(!0);
  225. arguments[0].dataset &&
  226. arguments[0].dataset.wkAdvisedSize &&
  227. ((e.style.minHeight = arguments[0].dataset.wkAdvisedSize + "px"),
  228. (arguments[0].dataset.wkAdvisedSize = "")),
  229. arguments[0].parentElement.insertBefore(e, arguments[0]),
  230. e.addEventListener("animationend", (t) => {
  231. e.remove();
  232. }),
  233. e.classList.add("hidden");
  234. }
  235. let e = "",
  236. t = r("wkspipfont"),
  237. l = r("wkspipfont2"),
  238. s = r("wkspipfsize"),
  239. a = r("wkspipfweight"),
  240. i = r("wkspipletterspacing"),
  241. n = r("wkspipwordspacing"),
  242. x = r("wkspiplinespacing"),
  243. c = r("wkspiplineheight"),
  244. o = r("wkspipcustomstyle");
  245. if ("STYLE" == arguments[0].tagName) {
  246. r("wklrctrans") && (e += ".container>.line>.compare{display:none}");
  247. let d = [];
  248. t && d.push(`"${t.replace(/"/g, '\\"')}"`),
  249. l && d.push(`"${l.replace(/"/g, '\\"')}"`),
  250. d.length > 0 &&
  251. (e += `.container{font-family:${d.join(",")} !important}`),
  252. a &&
  253. !isNaN(+a) &&
  254. (e += `.container,.container *{font-weight:${+a} !important}`),
  255. s &&
  256. !isNaN(+s) &&
  257. (e += `.container>.line>.compare,.container>.line>.origin{font-size:${+s}px !important}`),
  258. i &&
  259. !isNaN(+i) &&
  260. (e += `.container,.container *{letter-spacing:${+i}px !important}`),
  261. n &&
  262. !isNaN(+n) &&
  263. (e += `.container,.container *{word-spacing:${+n}px !important}`),
  264. x &&
  265. !isNaN(+x) &&
  266. (e += `.container>.line{padding:${+x}px 0 !important}`),
  267. c &&
  268. !isNaN(+c) &&
  269. (e += `.container>.line{line-height:${+c}px !important}`),
  270. e &&
  271. (this.appendChildHost.call(
  272. this,
  273. document.createElement("style")
  274. ).innerHTML = e),
  275. o &&
  276. (this.appendChildHost.call(
  277. this,
  278. document.createElement("style")
  279. ).innerHTML = o);
  280. }
  281. if (!r("wksplayinguiani") || "g_playlist" != arguments[0].id)
  282. return this.appendChildHost.call(this, ...arguments);
  283. arguments[0].classList.add("hidden"),
  284. document.body.classList.remove("wk-playlist-showing");
  285. }),
  286. (Element.prototype.appendChildHost = Element.prototype.appendChild),
  287. (Element.prototype.appendChild = function () {
  288. return (
  289. r("wksplayinguiani") &&
  290. "g_playlist" == arguments[0].id &&
  291. (arguments[0].classList.remove("hidden"),
  292. document.body.classList.add("wk-playlist-showing")),
  293. r("wksplayinguiani") &&
  294. arguments[0].classList &&
  295. arguments[0].classList.contains("m-layer") &&
  296. arguments[0].dataset &&
  297. setTimeout((e) => {
  298. arguments[0].dataset.wkAdvisedSize = arguments[0].clientHeight;
  299. }, 50),
  300. r("wklrctrans") && "g_playlist" == arguments[0].id && setTimeout(w, 50),
  301. this.appendChildHost.call(this, ...arguments)
  302. );
  303. }),
  304. ((e) => {
  305. if (r("wklistdisd") && !e) return;
  306. let t = x("wkhi-c"),
  307. l = x("wkhi-d");
  308. if (!t || !l) return;
  309. (t = t.split("|")), (l = l.split("|"));
  310. let s = e ? 31536e5 : 1,
  311. a = (t, l) => {
  312. let a =
  313. `${t};path=${l};max-age=${s}` +
  314. (e ? "" : `;expires=${new Date(70).toGMTString()}`);
  315. document.cookie = a;
  316. };
  317. for (let e = 0; e < t.length; e++)
  318. for (let s = 0; s < l.length; s++) a(t[e], l[s]);
  319. c("wklistdisd", e ? 0 : 1);
  320. })(!!r("wksfullpl")),
  321. r("wkslowcontrast") &&
  322. Object.is(window.self, window.top) &&
  323. (document.documentElement.style.filter = "contrast(.8)"),
  324. r("wkslowbrightness") &&
  325. Object.is(window.self, window.top) &&
  326. (document.documentElement.style.filter =
  327. document.documentElement.style.filter + " brightness(.5)");
  328. let g = {
  329. kw7: (e) => {
  330. !isNaN(+e) &&
  331. +e > 99999 &&
  332. +e < 1e6 &&
  333. alert(
  334. ((e) => {
  335. let t = "" + e,
  336. l = 0,
  337. s = t.length;
  338. for (let e = 0; e < s; e++) {
  339. let a = (
  340. t[e].codePointAt() * (s - e) * (e + 1) +
  341. 1 +
  342. e
  343. ).toString(26);
  344. l += a
  345. .substr(a.length - 1, 1)
  346. .toUpperCase()
  347. .codePointAt();
  348. }
  349. let a = ((9301 * l + 49297) % 233280) / 233280;
  350. return Math.round(1e5 + 899999 * a);
  351. })(e)
  352. );
  353. },
  354. },
  355. y = (e) => {
  356. if (
  357. (r("wklrctrans") && w(),
  358. r("wkshiresimages") &&
  359. ((e) => {
  360. let t = document.querySelectorAll("img[data-src]");
  361. for (let e = 0; e < t; e++)
  362. t[e].dataset.src &&
  363. "" == t[e].src &&
  364. (t[e].src = t[e].dataset.src);
  365. let l = document.querySelectorAll('img[src*="param="]');
  366. for (let e = 0; e < l.length; e++) {
  367. let t = l[e].src.split("?")[0];
  368. if (l[e].src != t) {
  369. let s = new Image(),
  370. a = (i) => {
  371. l[e] &&
  372. (l[e].src.split("?")[0] == t &&
  373. ((l[e].src = t), l[e].classList.add("wk-hires-loaded")),
  374. s.removeEventListener("load", a, !1));
  375. };
  376. s.addEventListener("load", a, !1),
  377. l[e].classList.remove("wk-hires-loaded"),
  378. (s.src = t);
  379. }
  380. }
  381. })(),
  382. r("wksemojisym") &&
  383. ((e) => {
  384. let t = document.querySelectorAll(`img[src*="${n}"]`);
  385. for (let e = 0; e < t.length; e++) {
  386. let l = t[e].src.split(n)[1];
  387. l &&
  388. ((l = l.split(".")[0]),
  389. !isNaN(+l) &&
  390. i[+l] &&
  391. (t[e].src =
  392. "data:image/svg+xml;charset=utf-8," +
  393. encodeURIComponent(
  394. [
  395. "<svg",
  396. 'xmlns="http://www.w3.org/2000/svg"',
  397. 'width="21"',
  398. 'height="21"><text',
  399. 'x="10.5"',
  400. 'y="12.4"',
  401. "style=\"text-anchor:middle;dominant-baseline:middle;font-size:14px;font-family:'Apple",
  402. "Color",
  403. "Emoji','Noto",
  404. "Color",
  405. "Emoji','Segoe",
  406. "UI",
  407. `Emoji'">&#x${i[+l]};</text></svg>`,
  408. ].join(" ")
  409. )));
  410. }
  411. })(),
  412. r("wksadptbg") &&
  413. Object.is(window.self, window.top) &&
  414. ((e) => {
  415. let t = document.querySelector(".m-playbar .head img"),
  416. l = document.querySelector(".m-playbar");
  417. if (t && l && t.src && t.src != m) {
  418. l.classList.add("wksplybrbg");
  419. let e = t.src;
  420. e.indexOf("?") < 0 && (e += "?param=34y34"),
  421. (l.style.cssText = `--a_plybarimgsrc:url(${e})`),
  422. (m = t.src);
  423. }
  424. })(),
  425. r("wksimprovedlook"))
  426. ) {
  427. if ("user" == location.pathname.substring(1).split("/")[0]) {
  428. let e = document.querySelector(".m-proifo dt img"),
  429. t = document.querySelector(".g-bd");
  430. e &&
  431. e.src &&
  432. t &&
  433. (document.documentElement.classList.add("has-upb"),
  434. (t.style.cssText = `--upb:url("${e.src}")`));
  435. let l = document.querySelector(".m-proifo .name .tit"),
  436. s = document.querySelector(".m-proifo .name #j-name-wrap");
  437. l &&
  438. s &&
  439. ((s.dataset.wkUsernameFull = s.title = l.innerText),
  440. s.classList.add("wk-full-username"));
  441. }
  442. let e = document.querySelector(".g-wrap>.m-info .cover img"),
  443. t = document.querySelector(".g-wrap>.m-info");
  444. e &&
  445. t &&
  446. (document.documentElement.classList.add("has-mib"),
  447. (t.style.cssText = `--mib:url("${e.src}")`));
  448. }
  449. let t =
  450. location.hash &&
  451. ("video" == location.hash.substring(2).split("?")[0].split("/")[0] ||
  452. "mv" == location.hash.substring(2).split("?")[0].split("/")[0]),
  453. l = "/" == location.pathname,
  454. a =
  455. "video" == location.pathname.substring(1).split("/")[0] ||
  456. "mv" == location.pathname.substring(1).split("/")[0];
  457. if (
  458. r("wksmusicsessionmeta") &&
  459. "mediaSession" in navigator &&
  460. (a || (l && !t))
  461. ) {
  462. let t = document.querySelector(
  463. a ? ".n-mv .title h2" : ".m-playbar .words .name"
  464. ),
  465. l = document.querySelector(
  466. a ? ".n-mv .title .name" : ".m-playbar .words .by"
  467. ),
  468. i = document.querySelector(
  469. a ? ".m-ctvideo .poster .pic" : ".m-playbar .head img"
  470. ),
  471. n = [],
  472. x =
  473. (document.querySelector(a ? null : ".m-playbar .btns .prv"),
  474. document.querySelector(
  475. a
  476. ? ".m-ctvideo.z-play .controls .wrap .play"
  477. : ".m-playbar .btns .ply"
  478. ),
  479. document.querySelector(a ? null : ".m-playbar .btns .nxt"),
  480. document.querySelector(a ? ".m-ctvideo" : ".m-playbar .btns .ply"));
  481. (x = x
  482. ? x.classList.contains(a ? "z-play" : "pas")
  483. ? "playing"
  484. : x.classList.contains(a ? "z-pause" : "ply")
  485. ? "paused"
  486. : "none"
  487. : "none"),
  488. i &&
  489. i.src &&
  490. (n = [
  491. {
  492. src: i.src.split("?")[0] + "?param=96y96",
  493. sizes: "96x96",
  494. type: "image/jpeg",
  495. },
  496. {
  497. src: i.src.split("?")[0] + "?param=128y128",
  498. sizes: "128x128",
  499. type: "image/jpeg",
  500. },
  501. {
  502. src: i.src.split("?")[0] + "?param=192y192",
  503. sizes: "192x192",
  504. type: "image/jpeg",
  505. },
  506. {
  507. src: i.src.split("?")[0] + "?param=256y256",
  508. sizes: "256x256",
  509. type: "image/jpeg",
  510. },
  511. {
  512. src: i.src.split("?")[0] + "?param=384y384",
  513. sizes: "384x384",
  514. type: "image/jpeg",
  515. },
  516. {
  517. src: i.src.split("?")[0] + "?param=512y512",
  518. sizes: "512x512",
  519. type: "image/jpeg",
  520. },
  521. { src: i.src.split("?")[0], sizes: "any", type: "image/jpeg" },
  522. ]);
  523. try {
  524. let e = {
  525. title: t ? t.innerText : document.title,
  526. artist: l ? l.innerText : "",
  527. album: l ? l.innerText : "",
  528. artwork: n,
  529. };
  530. !((e, t) => {
  531. if ("object" == typeof e)
  532. try {
  533. e = JSON.stringify(e);
  534. } catch (e) {}
  535. if ("object" == typeof t)
  536. try {
  537. t = JSON.stringify(t);
  538. } catch (e) {}
  539. return e == t;
  540. })(e, s) &&
  541. a &&
  542. ((s = e), (navigator.mediaSession.metadata = new MediaMetadata(s)));
  543. } catch (e) {}
  544. }
  545. };
  546. y(),
  547. window.setInterval(y, 500),
  548. d &&
  549. (function () {
  550. if ("/user/update" == location.pathname) {
  551. let t = (t) => {
  552. let l = document.querySelector("#baseBox");
  553. if (l) {
  554. ((e = 0, t = 0) => {
  555. let l = ("" + e).split("."),
  556. s = ("" + t).split(".");
  557. for (let e = 0; e < Math.max(l.length, s.length); e++) {
  558. let t = u(l[e] ? s[e] : 0),
  559. a = u(s[e] ? s[e] : 0);
  560. if (t > a) return !1;
  561. if (t < a) return !0;
  562. }
  563. })(e.split("-")[1], o);
  564. let t = `<div class="item"><h3><span class="f-fs1">&#x8f85;&#x52a9;&#x811a;&#x672c;&#x8bbe;&#x7f6e;</span><span class="sub s-fc3">&#x8f85;&#x52a9;&#x811a;&#x672c;&#x7248;&#x672c;&#xff1a;${e}</span><span class="sub s-fc3">&#x6837;&#x5f0f;&#x8868;&#x7248;&#x672c;&#xff1a;${o}</span></h3><ul class="n-plist n-plist-1" data-prompt-prefix="&#x8bf7;&#x8f93;&#x5165;">{1}</ul></div>`,
  565. s =
  566. '<li><label><input type="checkbox" class="f-rdi" {2}>{1}</label></li>',
  567. a =
  568. '<li class="wk-settings-button-line"><a class="u-btn2 u-btn2-2 u-btn2-w2" href="javascript:;" {2}><i>{3}</i></a>&nbsp;&nbsp;<label>{1}</label></li>',
  569. i = [
  570. {
  571. label:
  572. "&#x6837;&#x5f0f;&#x8868;&#x589e;&#x5f3a;&#x5916;&#x89c2;",
  573. lsm: "wksimprovedlook",
  574. },
  575. {
  576. label:
  577. "&#x663e;&#x793a;&#x6b4c;&#x5355;&#x5185;&#x5168;&#x90e8;&#x97f3;&#x4e50;",
  578. lsm: "wksfullpl",
  579. },
  580. {
  581. label: "&#x663e;&#x793a;&#x9ad8;&#x6e05;&#x56fe;&#x7247;",
  582. lsm: "wkshiresimages",
  583. },
  584. {
  585. label:
  586. "&#x89c6;&#x9891;&#x9875;&#x9762;&#x5a92;&#x4f53;&#x4fe1;&#x606f;&#x663e;&#x793a;&#x652f;&#x6301;",
  587. lsm: "wksmusicsessionmeta",
  588. test: "'mediaSession' in navigator",
  589. },
  590. {
  591. label:
  592. "&#x9876;&#x680f;&#x52a8;&#x6001;&#x56fa;&#x5b9a; (&#x5ffd;&#x7565;&#x9876;&#x680f;&#x6eda;&#x52a8;&#x72b6;&#x6001;&#x8bbe;&#x7f6e;)",
  593. lsm: "wksdscrolling",
  594. },
  595. {
  596. label:
  597. "&#x8868;&#x60c5;&#x56fe;&#x7247;&#x4ee5;&#x7cfb;&#x7edf; Emoji &#x8868;&#x60c5;&#x663e;&#x793a;",
  598. lsm: "wksemojisym",
  599. },
  600. {
  601. label:
  602. "&#x6b63;&#x5728;&#x64ad;&#x653e;&#x6b4c;&#x5355;&#x754c;&#x9762;&#x548c;&#x7a97;&#x53e3;&#x7684;&#x589e;&#x5f3a;&#x52a8;&#x753b; (&#x5237;&#x65b0;&#x9875;&#x9762;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  603. lsm: "wksplayinguiani",
  604. },
  605. {
  606. label:
  607. "&#x6392;&#x884c;&#x699c;&#x9875;&#x9762;&#x7684;&#x6536;&#x85cf;&#x6309;&#x94ae;&#x8df3;&#x8f6c;&#x5230;&#x5bf9;&#x5e94;&#x6b4c;&#x5355;",
  608. lsm: "wkstoplistjump",
  609. },
  610. {
  611. label:
  612. "&#x6211;&#x7684;&#x97f3;&#x4e50;&#x4e2d;&#x6b4c;&#x5355;&#x7684;&#x6536;&#x85cf;&#x6309;&#x94ae;&#x8df3;&#x8f6c;&#x5230;&#x5bf9;&#x5e94;&#x6b4c;&#x5355;",
  613. lsm: "wksmylistjump",
  614. },
  615. {
  616. label:
  617. "&#x9690;&#x85cf;&#x6b63;&#x5728;&#x64ad;&#x653e;&#x754c;&#x9762;&#x548c;&#x753b;&#x4e2d;&#x753b;&#x6b4c;&#x8bcd;&#x7ffb;&#x8bd1;",
  618. lsm: "wklrctrans",
  619. },
  620. {
  621. label:
  622. "&#x964d;&#x4f4e;&#x9875;&#x9762;&#x4eae;&#x5ea6; (&#x5237;&#x65b0;&#x9875;&#x9762;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  623. lsm: "wkslowbrightness",
  624. },
  625. {
  626. label:
  627. "&#x964d;&#x4f4e;&#x9875;&#x9762;&#x5bf9;&#x6bd4;&#x5ea6; (&#x5237;&#x65b0;&#x9875;&#x9762;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  628. lsm: "wkslowcontrast",
  629. },
  630. {
  631. label:
  632. "&#x64ad;&#x653e;&#x5e95;&#x680f;&#x548c;&#x6b4c;&#x8bcd;&#x52a8;&#x6001;&#x80cc;&#x666f; (Beta)",
  633. lsm: "wksadptbg",
  634. },
  635. {
  636. label:
  637. "&#x753b;&#x4e2d;&#x753b;&#x663e;&#x793a;&#x9996;&#x9009;&#x5b57;&#x4f53;&#x540d;&#x79f0; (&#x6362;&#x6b4c;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  638. lsm: "wkspipfont",
  639. t: "t",
  640. },
  641. {
  642. label:
  643. "&#x753b;&#x4e2d;&#x753b;&#x663e;&#x793a;&#x5907;&#x9009;&#x5b57;&#x4f53;&#x540d;&#x79f0; (&#x6362;&#x6b4c;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  644. lsm: "wkspipfont2",
  645. t: "t",
  646. },
  647. {
  648. label:
  649. "&#x753b;&#x4e2d;&#x753b;&#x663e;&#x793a;&#x5b57;&#x4f53;&#x7c97;&#x7ec6; (&#x8303;&#x56f4; 100-900, &#x6362;&#x6b4c;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  650. lsm: "wkspipfweight",
  651. t: "n",
  652. },
  653. {
  654. label:
  655. "&#x753b;&#x4e2d;&#x753b;&#x6b4c;&#x8bcd;&#x5b57;&#x4f53;&#x5927;&#x5c0f; (&#x50cf;&#x7d20;&#xff0c;&#x6362;&#x6b4c;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  656. lsm: "wkspipfsize",
  657. t: "n",
  658. },
  659. {
  660. label:
  661. "&#x753b;&#x4e2d;&#x753b;&#x6b4c;&#x8bcd;&#x884c;&#x95f4;&#x8ddd; (&#x50cf;&#x7d20;&#xff0c;&#x6362;&#x6b4c;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  662. lsm: "wkspiplinespacing",
  663. t: "n",
  664. },
  665. {
  666. label:
  667. "&#x753b;&#x4e2d;&#x753b;&#x6b4c;&#x8bcd;&#x884c;&#x9ad8; (&#x50cf;&#x7d20;&#xff0c;&#x6362;&#x6b4c;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  668. lsm: "wkspiplineheight",
  669. t: "n",
  670. },
  671. {
  672. label:
  673. "&#x753b;&#x4e2d;&#x753b;&#x663e;&#x793a;&#x5b57;&#x95f4;&#x8ddd; (&#x50cf;&#x7d20;&#xff0c;&#x6362;&#x6b4c;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  674. lsm: "wkspipletterspacing",
  675. t: "n",
  676. },
  677. {
  678. label:
  679. "&#x753b;&#x4e2d;&#x753b;&#x663e;&#x793a;&#x8bcd;&#x95f4;&#x8ddd; (&#x50cf;&#x7d20;&#xff0c;&#x6362;&#x6b4c;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  680. lsm: "wkspipwordspacing",
  681. t: "n",
  682. },
  683. {
  684. label:
  685. "&#x81ea;&#x5b9a;&#x4e49;&#x753b;&#x4e2d;&#x753b;&#x6837;&#x5f0f; (&#x6362;&#x6b4c;&#x5e94;&#x7528;&#x66f4;&#x6539;)",
  686. lsm: "wkspipcustomstyle",
  687. t: "t",
  688. },
  689. ],
  690. n = "";
  691. for (let e = 0; e < i.length; e++) {
  692. if (i[e].roi && !p) continue;
  693. let t = !0;
  694. if (i[e].test) {
  695. t = !1;
  696. try {
  697. t = !!window.eval(i[e].test);
  698. } catch (e) {}
  699. }
  700. if (!t) continue;
  701. let l = r(i[e].lsm);
  702. "n" == i[e].t || "t" == i[e].t || "p" == i[e].t
  703. ? (n += f(
  704. a,
  705. i[e].label,
  706. `data-wk-lsm="${i[e].lsm}" data-wk-t="${i[e].t}" data-wk-l="${i[e].label}"`,
  707. "p" == i[e].t ? "&#x5f00;&#x59cb;" : "&#x4fee;&#x6539;"
  708. ))
  709. : (n += f(
  710. s,
  711. i[e].label,
  712. `${l ? "checked " : ""}data-wk-lsm="${i[e].lsm}"`
  713. ));
  714. }
  715. n = f(t, n);
  716. let x = document.createElement("div");
  717. (x.className = "n-priv f-cb flatnmusic-settings"),
  718. (x.style.display = "none"),
  719. (x.innerHTML = n),
  720. x.addEventListener("change", (e) => {
  721. let t = e.target.closest("[data-wk-lsm]");
  722. if (!t || !t.dataset) return;
  723. let l = t.dataset.wkLsm;
  724. t &&
  725. l &&
  726. ("checkbox" == t.type
  727. ? c(l, t.checked ? "1" : "")
  728. : c(l, t.value));
  729. }),
  730. l.appendChild(x),
  731. x.addEventListener("click", (e) => {
  732. let t = e.target.closest("[data-wk-t]");
  733. if (!t || !t.dataset) return;
  734. let l = t.dataset.wkLsm,
  735. s = t.dataset.wkT,
  736. a = t.dataset.wkL,
  737. i = r(l),
  738. n = t.closest("[data-prompt-prefix]");
  739. if (((n = n ? n.dataset.promptPrefix : ""), t && l)) {
  740. let e = n + a;
  741. "p" == s && (e = n);
  742. let t = window.prompt(e, i || ""),
  743. x = ((e) => {
  744. let t = 0,
  745. l = "" + e,
  746. s = l.length;
  747. for (let e = 0; e < s; e++) t += l[e].codePointAt();
  748. return t.toString(36) + s;
  749. })(l);
  750. if ("n" == s && isNaN(+t) && "" != t)
  751. return void alert(
  752. ((e) => {
  753. let t = "&#x65e0;&#x6548;&#x7684;&#x503c;",
  754. l = t.match(/\&#x[a-fA-F0-9]+;/g);
  755. if (l)
  756. for (let e = 0; e < l.length; e++) {
  757. let s = l[e].substring(3, l[e].length - 1);
  758. try {
  759. s = JSON.parse(`"\\u${s.padStart(4, 0)}"`);
  760. } catch (e) {}
  761. t = t.replace(l[e], s);
  762. }
  763. return t;
  764. })()
  765. );
  766. null != t && "p" != s
  767. ? c(l, t || "")
  768. : "p" == s &&
  769. g[x] &&
  770. "function" == typeof g[x] &&
  771. g[x](t);
  772. }
  773. });
  774. }
  775. };
  776. window.addEventListener("load", t);
  777. }
  778. })();
  779. })();