diff --git a/frontend/dist/assets/app.css b/frontend/dist/assets/app.css new file mode 100644 index 0000000..0274495 --- /dev/null +++ b/frontend/dist/assets/app.css @@ -0,0 +1 @@ +:root{--color-primary: #1677ff;--color-primary-hover: #4096ff;--color-primary-active: #0958d9;--color-primary-bg: rgba(22, 119, 255, .1);--color-success: #52c41a;--color-warning: #faad14;--color-error: #ff4d4f;--color-text: rgba(0, 0, 0, .88);--color-text-secondary: rgba(0, 0, 0, .45);--color-text-tertiary: rgba(0, 0, 0, .25);--color-border: #d9d9d9;--color-border-split: rgba(5, 5, 5, .06);--color-bg-layout: #f0f2f5;--color-bg-container: #ffffff;--color-bg-elevated: #ffffff;--color-bg-subtle: #f5f6f8;--color-bg-hover: rgba(0, 0, 0, .03);--color-fill: rgba(0, 0, 0, .04);--ease-out: cubic-bezier(.22, 1, .36, 1);--color-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 2px 8px rgba(15, 23, 42, .04);--color-shadow-heavy: 0 2px 4px rgba(15, 23, 42, .03), 0 12px 32px -8px rgba(15, 23, 42, .12), 0 32px 64px -24px rgba(15, 23, 42, .1);--player-bg: linear-gradient(135deg, #2a2a35, #1c1c26);--player-text: #ffffff;--vip-green: #52c41a;--color-bg-header: rgba(255, 255, 255, .82)}html.dark{--color-primary: #1668dc;--color-primary-hover: #3c89e8;--color-primary-active: #1554ad;--color-primary-bg: rgba(22, 104, 220, .2);--color-text: rgba(255, 255, 255, .85);--color-text-secondary: rgba(255, 255, 255, .45);--color-text-tertiary: rgba(255, 255, 255, .25);--color-border: #424242;--color-border-split: rgba(253, 253, 253, .12);--color-bg-layout: #000000;--color-bg-container: #141414;--color-bg-elevated: #1f1f1f;--color-bg-subtle: #1c1c20;--color-bg-hover: rgba(255, 255, 255, .08);--color-fill: rgba(255, 255, 255, .12);--ease-out: cubic-bezier(.22, 1, .36, 1);--color-shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .3);--color-shadow-heavy: 0 2px 4px rgba(0, 0, 0, .4), 0 12px 32px -8px rgba(0, 0, 0, .55), 0 32px 64px -24px rgba(0, 0, 0, .45);--color-bg-header: rgba(20, 20, 20, .82)}*{box-sizing:border-box}body{background-color:var(--color-bg-layout);color:var(--color-text);margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.5715;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}a{color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover)}.app-header{background:var(--color-bg-container);background:var(--color-bg-header);backdrop-filter:blur(14px) saturate(1.6);-webkit-backdrop-filter:blur(14px) saturate(1.6);box-shadow:var(--color-shadow);position:sticky;top:0;z-index:100}.app-header-inner{max-width:1250px;margin:0 auto;padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.brand-logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#f5576c,#ec4141);color:#fff;font-size:20px;display:flex;align-items:center;justify-content:center;flex:none;box-shadow:0 2px 6px #ec414159}.brand-title{font-size:17px;font-weight:600;color:var(--color-text)}.brand-sub{font-size:12px;color:var(--color-text-secondary)}.header-actions{display:flex;align-items:center;gap:10px}.icon-btn{border:1px solid var(--color-border);background:var(--color-bg-container);color:var(--color-text);border-radius:8px;height:34px;padding:0 12px;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s}.icon-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.main-container{width:100%;max-width:1250px;margin:0 auto;padding:24px;flex:1}.card{background:var(--color-bg-container);border-radius:12px;box-shadow:var(--color-shadow);padding:24px;margin-bottom:24px}.card-title{font-size:16px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}.card-title .count{font-size:13px;font-weight:400;color:var(--color-text-secondary)}.tabs{display:flex;border-bottom:1px solid var(--color-border-split);margin-bottom:20px;overflow-x:auto}.tab{padding:12px 0;margin-right:32px;font-size:15px;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;position:relative;transition:color .2s}.tab:hover{color:var(--color-primary)}.tab.active{color:var(--color-primary);font-weight:500}.tab:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--color-primary);border-radius:2px;transform:scaleX(0);opacity:0;transition:transform .28s cubic-bezier(.4,0,.2,1),opacity .2s}.tab.active:after{transform:scaleX(1);opacity:1}.panel{display:none}.panel.active{display:block}.global-quality-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:16px;border-bottom:1px solid var(--color-border-split)}.gq-label{font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:6px;color:var(--color-text)}.gq-hint{font-size:12px;color:var(--color-text-tertiary)}.input-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.input-row>.input{flex:1;min-width:220px}.input,.select{height:36px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-container);color:var(--color-text);padding:4px 11px;font-size:14px;outline:none;transition:border-color .2s,box-shadow .2s}.input:focus,.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-bg)}.input::placeholder{color:var(--color-text-tertiary)}.select{cursor:pointer}.btn{height:36px;padding:4px 16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-container);color:var(--color-text);font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;transition:all .2s;-webkit-user-select:none;user-select:none}.btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:#fff}.btn-primary:active{background:var(--color-primary-active)}.btn-success{background:var(--color-success);border-color:var(--color-success);color:#fff}.btn-success:hover{background:#73d13d;border-color:#73d13d;color:#fff}.btn-danger{background:var(--color-error);border-color:var(--color-error);color:#fff}.btn-danger:hover{background:#ff7875;border-color:#ff7875;color:#fff}.btn-sm{height:30px;padding:0 12px;font-size:13px;border-radius:6px}.btn-link{border:none;background:transparent;color:var(--color-primary);height:auto;padding:2px 6px}.btn-link:hover{color:var(--color-primary-hover)}.btn .spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hint{font-size:13px;color:var(--color-text-secondary);margin-top:10px}.history-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:16px}.history-label{font-size:13px;color:var(--color-text-secondary)}.tag{display:inline-flex;align-items:center;gap:4px;background:var(--color-fill);border:1px solid var(--color-border);border-radius:6px;padding:1px 8px;font-size:12px;color:var(--color-text);cursor:pointer;transition:all .2s;max-width:260px}.tag:hover{border-color:var(--color-primary);color:var(--color-primary)}.tag .tag-close{color:var(--color-text-tertiary);font-size:11px}.tag .tag-close:hover{color:var(--color-error)}.tag-empty{font-size:12px;color:var(--color-text-tertiary)}.song-list{display:flex;flex-direction:column}.song-row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;transition:background .2s}.song-row:hover{background:var(--color-bg-hover)}.song-cover{width:48px;height:48px;border-radius:8px;object-fit:cover;background:var(--color-fill);flex:none}.song-info{flex:1;min-width:0}.song-name{font-weight:500;display:flex;align-items:center;gap:6px;min-width:0;flex-wrap:wrap}.song-name .n{flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-name .tag,.song-name .badge{flex:0 1 auto;min-width:0;max-width:100%;white-space:normal}.song-meta{font-size:13px;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-actions{display:flex;gap:8px;flex:none}.divider{height:1px;background:var(--color-border-split);margin:8px 0}.song-detail{display:flex;gap:24px;flex-wrap:wrap}.song-detail-cover{width:200px;height:200px;border-radius:16px;object-fit:cover;box-shadow:var(--color-shadow-heavy);background:var(--color-fill);flex:none}.song-detail-info{flex:1;min-width:260px}.detail-name{font-size:22px;font-weight:600;margin:4px 0 8px;word-break:break-all}.detail-meta{margin:4px 0;color:var(--color-text-secondary);font-size:14px}.detail-meta b{color:var(--color-text);font-weight:500;margin-right:8px}.detail-actions{margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}.detail-badges{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.badge{display:inline-flex;align-items:center;font-size:12px;padding:2px 10px;border-radius:999px;border:1px solid var(--color-primary);color:var(--color-primary);background:var(--color-primary-bg)}.badge-green{border-color:var(--color-success);color:var(--color-success);background:#52c41a1a}.player{margin-top:24px;border-radius:12px;background:var(--player-bg);color:var(--player-text);padding:16px 20px;box-shadow:var(--color-shadow-heavy)}.player-top{display:flex;align-items:center;gap:14px}.player-cover{width:56px;height:56px;border-radius:10px;object-fit:cover;background:#ffffff26;flex:none}.player-track{flex:1;min-width:0}.player-name{font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-artist{font-size:13px;color:#ffffff8c;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-controls{display:flex;align-items:center;gap:10px;flex:none}.player-ctrl{width:42px;height:42px;border-radius:50%;background:#ffffff26;border:none;color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .1s;flex:none}.player-ctrl:hover{background:#ffffff47}.player-ctrl:active{transform:scale(.95)}.player-ctrl-sm{width:30px;height:30px;border-radius:8px;font-size:13px;background:transparent}.player-ctrl-sm:hover{background:#fff3}.player-bottom{display:flex;align-items:center;gap:12px;margin-top:14px}.player-time{font-size:12px;color:#fff9;font-variant-numeric:tabular-nums;flex:none}.progress{flex:1;height:4px;border-radius:2px;background:#fff3;cursor:pointer;position:relative}.progress-fill{height:100%;border-radius:2px;background:var(--color-primary);width:0;position:relative}.progress-fill:after{content:"";position:absolute;right:-5px;top:50%;width:10px;height:10px;border-radius:50%;background:#fff;transform:translateY(-50%);box-shadow:0 1px 3px #0006;opacity:0;transition:opacity .2s}.progress:hover .progress-fill:after{opacity:1}.volume-wrap{display:flex;align-items:center;gap:8px;flex:0 0 140px}.volume-btn{background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:15px;padding:2px}.volume-slider{flex:1;height:4px;border-radius:2px;background:#fff3;cursor:pointer;position:relative}.volume-fill{height:100%;border-radius:2px;background:#ffffffb3;width:100%}.lyric-panel{margin-top:20px;background:var(--color-bg-container);border-radius:12px;box-shadow:var(--color-shadow);padding:16px 20px}.lyric-panel-title{font-size:14px;font-weight:600;margin-bottom:12px}.lyric-calib{display:inline-flex;align-items:center;gap:6px;position:relative}.btn-mini{height:24px;padding:0 8px;font-size:12px;border-radius:6px}.lyric-offset-label{font-size:12px;color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;min-width:70px}.lyric-fs-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:50;display:inline-flex;align-items:center;gap:8px;background:var(--color-bg-container);border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--color-shadow-heavy);padding:8px 10px;animation:rowIn .18s var(--ease-out)}.lyric-fs-val{font-size:12px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;min-width:38px;text-align:center}.lyric-fs-btn{height:30px;min-width:34px;padding:0 10px;font-size:13px;border-radius:8px}.lyric-fs-btn:disabled{opacity:.45;cursor:not-allowed}#lyric-fontsize[aria-expanded=true]{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-bg)}.lyric-box{max-height:280px;max-height:min(calc(280px * var(--lyric-fs, 1)),420px);overflow-y:auto;scrollbar-width:thin;padding:4px 16px 4px 0;position:relative}.lyric-box::-webkit-scrollbar{width:6px}.lyric-box::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}.lyric-line{padding:6px 10px;border-radius:6px;color:var(--color-text-secondary);font-size:calc(14px * var(--lyric-fs, 1));line-height:1.6;cursor:pointer;transform-origin:left center;transition:color .25s,background .2s,transform .25s}.lyric-line:hover{background:var(--color-bg-hover)}.lyric-line+.lyric-line{margin-top:3px}.lyric-line.active{color:var(--color-primary);font-weight:600;transform:scale(1.02)}.lyric-line.ktv.active.kw-line .kw{color:var(--color-text-secondary)}.lyric-line.ktv.active.kw-line .kw.on{color:var(--color-primary)}.lyric-line.ktv.active.kw-line .kw.cur{background-image:linear-gradient(to right,var(--color-primary) 0%,var(--color-primary) var(--pw, 0%),var(--color-text-secondary) var(--pw, 0%),var(--color-text-secondary) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.lyric-line .ktr{color:var(--color-text-tertiary);font-weight:400;font-size:.9em;transition:color .25s var(--ease-out),-webkit-text-fill-color .25s var(--ease-out)}.lyric-line.active .ktr{color:var(--color-primary)}.lyric-empty{color:var(--color-text-tertiary);font-size:13px;padding:10px}.comment-panel{margin-top:20px;background:var(--color-bg-container);border-radius:12px;box-shadow:var(--color-shadow);padding:16px 20px}.comment-panel-title{font-size:14px;font-weight:600;margin-bottom:12px}.comment-list{display:flex;flex-direction:column}.comment-item{display:flex;gap:12px;padding:12px 8px;border-bottom:1px solid var(--color-border-split)}.comment-item:last-child{border-bottom:none}.comment-avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;background:var(--color-fill);flex:none}.comment-body{flex:1;min-width:0}.comment-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.comment-nickname{font-weight:500;font-size:13px}.vip-badge{font-size:11px;padding:0 6px;border-radius:4px;font-weight:500;line-height:18px;display:inline-flex}.vip-vip{background:linear-gradient(90deg,#f7ba2a,#ea5455);color:#fff}.vip-svip{background:linear-gradient(90deg,#c8161d,#8f0f14);color:#fff}.vip-pkg{background:#52c41a26;color:var(--vip-green);border:1px solid rgba(82,196,26,.4)}.comment-meta{font-size:12px;color:var(--color-text-tertiary)}.comment-content{font-size:14px;margin-top:4px;word-break:break-word}.comment-reply{margin-top:6px;font-size:13px;background:var(--color-fill);border-radius:6px;padding:6px 10px;color:var(--color-text-secondary)}.comment-actions{margin-top:6px;display:flex;align-items:center;gap:14px;font-size:12px;color:var(--color-text-tertiary)}.comment-like{display:inline-flex;align-items:center;gap:4px}.comment-more{text-align:center;margin-top:12px}.comment-empty{color:var(--color-text-tertiary);font-size:13px;padding:16px 0;text-align:center}.collection-header{display:flex;gap:20px;flex-wrap:wrap}.collection-cover{width:160px;height:160px;border-radius:16px;object-fit:cover;box-shadow:var(--color-shadow-heavy);background:var(--color-fill);flex:none}.collection-cover-round{border-radius:50%}.collection-info{flex:1;min-width:240px}.collection-name{font-size:20px;font-weight:600;margin:4px 0 8px}.collection-meta{color:var(--color-text-secondary);font-size:13px;margin:3px 0}.collection-desc{margin-top:8px;font-size:13px;color:var(--color-text-secondary);max-height:60px;overflow-y:auto;background:var(--color-fill);border-radius:8px;padding:8px 12px}.collection-actions{margin-top:12px}.toplist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.toplist-card{cursor:pointer;border-radius:12px;padding:12px;transition:all .2s;border:1px solid transparent}.toplist-card:hover{background:var(--color-bg-hover);transform:translateY(-2px)}.toplist-card .tl-cover{width:100%;aspect-ratio:1;border-radius:12px;object-fit:cover;background:var(--color-fill);box-shadow:var(--color-shadow)}.toplist-card .tl-name{font-size:14px;font-weight:500;margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toplist-card .tl-meta{font-size:12px;color:var(--color-text-tertiary);margin-top:2px}.podcast-cate-bar{display:flex;gap:8px;overflow-x:auto;flex:1;padding:4px 2px;scrollbar-width:thin}.podcast-cate-item{flex:none;font-size:12px;padding:4px 12px;border-radius:999px;border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:pointer;transition:all .2s;-webkit-user-select:none;user-select:none;white-space:nowrap}.podcast-cate-item:hover{border-color:var(--color-primary);color:var(--color-primary)}.podcast-cate-item.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.podcast-desc{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.podcast-ep-index{width:30px;text-align:center;color:var(--color-text-tertiary);font-size:13px;flex:none}.about-hero{display:flex;align-items:center;gap:16px;padding:8px 0 4px;flex-wrap:wrap}.about-logo{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,var(--color-primary),#722ed1);color:#fff;font-size:30px;display:flex;align-items:center;justify-content:center;box-shadow:var(--color-shadow-heavy);flex:none}.about-title{font-size:22px;font-weight:600}.about-sub{color:var(--color-text-secondary);font-size:13px;margin-top:4px}.about-text{color:var(--color-text-secondary);font-size:14px;line-height:1.9;margin:6px 0 0}.about-text b{color:var(--color-text)}.about-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:10px}.about-card{border:1px solid var(--color-border-split);background:var(--color-bg-layout);border-radius:12px;padding:14px 16px;transition:all .2s}.about-card:hover{transform:translateY(-2px);box-shadow:var(--color-shadow)}.about-card-title{font-weight:600;font-size:14px;margin-bottom:6px;display:flex;align-items:center;gap:6px}.about-card-desc{font-size:12.5px;color:var(--color-text-secondary);line-height:1.7}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:200;opacity:0;transition:opacity .25s;pointer-events:none}.drawer-mask.show{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;bottom:0;width:340px;max-width:90vw;background:var(--color-bg-container);box-shadow:-6px 0 16px -8px #0003;z-index:201;transform:translate(100%);transition:transform .25s;display:flex;flex-direction:column}.drawer.show{transform:translate(0)}.drawer-header{padding:16px 20px;border-bottom:1px solid var(--color-border-split);display:flex;align-items:center;justify-content:space-between}.drawer-title{font-size:16px;font-weight:600}.drawer-close{border:none;background:none;font-size:18px;color:var(--color-text-secondary);cursor:pointer;line-height:1}.drawer-body{flex:1;overflow-y:auto;padding:8px 20px 20px}.settings-section{margin-top:20px}.settings-section-title{font-size:13px;color:var(--color-text-secondary);margin-bottom:12px;font-weight:500}.settings-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.settings-section-head .settings-section-title{margin-bottom:0}.check-grid{display:flex;flex-wrap:wrap;gap:8px 16px}.check-item{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;color:var(--color-text)}.check-item input{accent-color:var(--color-primary);cursor:pointer}.stat-grid{display:flex;gap:12px;flex-wrap:wrap}.stat-card{flex:1;min-width:90px;background:var(--color-fill);border-radius:10px;padding:12px;text-align:center}.stat-card .stat-num{font-size:20px;font-weight:600;color:var(--color-primary)}.stat-card .stat-label{font-size:12px;color:var(--color-text-secondary);margin-top:2px}.stat-list-item{display:flex;align-items:center;gap:12px;padding:8px 6px;border-bottom:1px solid var(--color-border-split);font-size:13px}.stat-list-item:last-child{border-bottom:none}.stat-rank{width:26px;text-align:center;color:var(--color-text-tertiary);font-weight:600;flex:none}.stat-endpoint{flex:1;min-width:0}.stat-endpoint .ep-name{font-weight:500}.stat-endpoint .ep-path{font-size:12px;color:var(--color-text-tertiary);font-family:monospace}.stat-count{flex:none;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.stat-refresh-info{font-size:12px;color:var(--color-text-tertiary);text-align:center;margin-top:10px}.setting-item{display:flex;align-items:center;justify-content:space-between;padding:10px 0;gap:12px}.setting-label{font-size:14px}.setting-desc{font-size:12px;color:var(--color-text-tertiary);margin-top:2px}.switch{width:40px;height:22px;border-radius:999px;background:var(--color-border);position:relative;cursor:pointer;transition:background .2s;flex:none}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .2s;box-shadow:0 1px 3px #0000004d}.switch.on{background:var(--color-primary)}.switch.on:after{left:20px}.color-palette{display:flex;gap:10px;flex-wrap:wrap}.color-dot{width:28px;height:28px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .15s;position:relative}.color-dot:hover{transform:scale(1.1)}.color-dot.active{border-color:var(--color-text);box-shadow:0 0 0 2px var(--color-bg-container)}.color-dot.active:after{content:"✓";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;font-weight:700}.mode-seg{display:flex;background:var(--color-fill);border-radius:8px;padding:3px;gap:3px}.mode-seg .seg-item{flex:1;text-align:center;font-size:13px;padding:5px 0;border-radius:6px;cursor:pointer;color:var(--color-text-secondary);transition:all .15s}.mode-seg .seg-item.active{background:var(--color-bg-container);color:var(--color-primary);font-weight:500;box-shadow:var(--color-shadow)}.drawer-footer{padding:14px 20px;border-top:1px solid var(--color-border-split);display:flex;gap:10px}.drawer-footer .btn{flex:1}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:300;display:none;align-items:center;justify-content:center;padding:20px}.modal-mask.show{display:flex}.modal{background:var(--color-bg-container);border-radius:12px;box-shadow:var(--color-shadow-heavy);width:640px;max-width:100%;max-height:80vh;display:flex;flex-direction:column}.modal-header{padding:16px 20px;border-bottom:1px solid var(--color-border-split);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:16px;font-weight:600}.modal-body{flex:1;overflow-y:auto;padding:12px 20px 20px}.version-item{padding:12px 0;border-bottom:1px solid var(--color-border-split)}.version-item:last-child{border-bottom:none}.version-head{display:flex;align-items:center;gap:10px}.version-num{font-weight:600;font-size:14px;color:var(--color-primary)}.version-date{font-size:12px;color:var(--color-text-tertiary)}.version-items{margin:8px 0 0;padding-left:20px;font-size:13px;color:var(--color-text-secondary)}.version-items li{margin:3px 0}.auth-area{display:flex;align-items:center;gap:8px}.user-avatar{width:34px;height:34px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;border:2px solid var(--color-primary-bg);transition:transform .15s}.user-avatar:hover{transform:scale(1.08)}.user-avatar.admin{background:var(--color-warning);border-color:#faad1433}.auth-form{display:flex;flex-direction:column;gap:12px;padding:6px 2px}.auth-form .input{width:100%}.auth-form-row{display:flex;gap:10px}.auth-form-row .input{flex:1}.auth-switch{text-align:center;font-size:13px;color:var(--color-text-secondary)}.auth-switch a{color:var(--color-primary);cursor:pointer;text-decoration:none}.auth-trial-box{border:1px dashed var(--color-border);border-radius:10px;padding:12px;text-align:center;font-size:13px;color:var(--color-text-secondary)}html{scroll-behavior:smooth}::selection{background:var(--color-primary-bg)}img{-webkit-user-drag:none;-webkit-user-select:none;user-select:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}html{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:4px}.input:focus-visible,.select:focus-visible{outline:none}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-bg)}.tab:focus-visible{outline:none}.btn:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 3px 10px #00000014}.btn-primary:not(:disabled):hover{box-shadow:0 4px 14px var(--color-primary-bg)}.btn:not(:disabled):active{transform:translateY(0) scale(.97);box-shadow:none}.icon-btn:hover{background:var(--color-bg-hover)}.panel.active{animation:panelIn .22s ease}@keyframes panelIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.song-cover{transition:transform .2s}.song-row:hover .song-cover{transform:scale(1.04)}.progress{transition:height .15s}.progress:hover{height:6px}.modal-mask,.drawer-mask{backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.modal-mask.show .modal{animation:modalIn .22s cubic-bezier(.4,0,.2,1)}@keyframes modalIn{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.input:hover,.select:hover{border-color:var(--color-primary-hover)}textarea.input{height:auto;min-height:52px;padding:8px 11px;resize:vertical;line-height:1.6}.comment-item{border-radius:8px;transition:background .15s}.comment-item:hover{background:var(--color-bg-hover)}.song-detail-cover,.collection-cover{transition:transform .3s,box-shadow .3s}.song-detail-cover:hover,.collection-cover:hover{transform:scale(1.02)}html.theme-fading,html.theme-fading body,html.theme-fading *{transition:background-color .3s ease,color .3s ease,border-color .3s ease,box-shadow .3s ease!important}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}button,input,select,textarea{font-family:inherit}.site-table td{transition:background .15s}.uc-card{transition:transform .2s,box-shadow .2s}.uc-card:hover{transform:translateY(-2px);box-shadow:var(--color-shadow)}.stat-card{transition:transform .2s}.stat-card:hover{transform:translateY(-2px)}.drawer-close{transition:color .15s,transform .15s}.drawer-close:hover{color:var(--color-text);transform:scale(1.12)}.btn-link:hover{text-decoration:underline;text-underline-offset:2px}.lyric-line.ktv.active.kw-line .kw.on{text-shadow:0 0 14px var(--color-primary-bg)}.uc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.uc-card{border:1px solid var(--color-border-split);border-radius:12px;padding:16px;background:var(--color-bg-subtle)}.uc-card-title{font-size:12px;color:var(--color-text-tertiary);margin-bottom:6px}.uc-card-value{font-size:17px;font-weight:600;word-break:break-all}.uc-section{margin-top:16px}.admin-layout{display:flex;gap:16px;align-items:flex-start}.admin-side{flex:none;width:150px;display:flex;flex-direction:column;gap:4px;border:1px solid var(--color-border-split);border-radius:12px;padding:8px;background:var(--color-bg-subtle);position:sticky;top:80px}.admin-side-item{padding:9px 12px;border-radius:8px;font-size:13px;cursor:pointer;color:var(--color-text-secondary);transition:all .15s;white-space:nowrap}.admin-side-item:hover{background:var(--color-fill);color:var(--color-text)}.admin-side-item.active{background:var(--color-primary-bg);color:var(--color-primary);font-weight:600}.admin-side-sep{height:1px;background:var(--color-border-split);margin:6px 4px}.admin-main{flex:1;min-width:0}.admin-view{display:none}.admin-view.active{display:block}.admin-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.admin-toolbar .input,.admin-toolbar .select{width:auto}.site-table{width:100%;border-collapse:collapse;font-size:13px}.site-table th,.site-table td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--color-border-split);word-break:break-all}.site-table th{color:var(--color-text-tertiary);font-weight:500;font-size:12px;white-space:nowrap}.site-table tr:hover td{background:var(--color-fill)}.tag-pill{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;border:1px solid var(--color-border);color:var(--color-text-secondary)}.tag-pill.ok{border-color:var(--color-success);color:var(--color-success)}.log-list{max-height:420px;overflow-y:auto}.code-box{background:var(--color-fill);border-radius:8px;padding:10px 12px;font-family:monospace;font-size:13px;word-break:break-all;max-height:180px;overflow-y:auto;line-height:1.6}.announce-body{white-space:pre-wrap;line-height:1.7;font-size:14px;color:var(--color-text)}@media (max-width: 720px){.admin-layout{flex-direction:column}.admin-side{width:100%;flex-direction:row;flex-wrap:wrap;position:static}.admin-side-sep,.app-header-inner .brand-sub,.icon-btn span{display:none}.brand-title{white-space:nowrap;font-size:16px}#auth-duration-pill{display:none}.icon-btn{padding:0 10px}.app-header-inner{padding:0 16px}}.toast-wrap{position:fixed;top:20px;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:10px;align-items:center;pointer-events:none}.toast{padding:9px 16px;border-radius:8px;background:var(--color-bg-elevated);color:var(--color-text);box-shadow:var(--color-shadow-heavy);font-size:14px;display:flex;align-items:center;gap:8px;opacity:0;transform:translateY(-8px);transition:all .25s;pointer-events:auto;max-width:90vw}.toast.show{opacity:1;transform:translateY(0)}.toast-success{border-left:3px solid var(--color-success)}.toast-error{border-left:3px solid var(--color-error)}.toast-warning{border-left:3px solid var(--color-warning)}.toast-info{border-left:3px solid var(--color-primary)}.empty-state{text-align:center;color:var(--color-text-tertiary);padding:48px 0;font-size:14px}.empty-state .empty-icon{font-size:42px;margin-bottom:8px;opacity:.4}.page-loading{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-bg-layout);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:999}.page-loading .ring{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.page-loading span{color:var(--color-text-secondary);font-size:14px}.footer{text-align:center;padding:20px;color:var(--color-text-secondary);font-size:13px}[hidden]{display:none!important}.auth-form.forgot-mode>*:not(#forgot-view){display:none}.auth-form.admin2fa-mode>*:not(#admin2fa-view){display:none}@media (max-width: 768px){.main-container,.card{padding:16px}.song-detail-cover{width:100%;height:auto;aspect-ratio:1}.volume-wrap,.header-actions .brand-sub{display:none}.toplist-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}.queue-float{position:fixed;right:18px;bottom:18px;z-index:9999;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:98px;padding:10px 14px;border-radius:14px;background:var(--color-bg-elevated);color:var(--color-text);box-shadow:var(--color-shadow-heavy);border:1px solid var(--color-border-split);font-size:12px;cursor:default;-webkit-user-select:none;user-select:none;opacity:.92;transition:opacity .3s}.queue-float:hover{opacity:1}.queue-float-head{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--color-text-secondary)}.queue-float-dot{width:8px;height:8px;border-radius:50%;background:var(--color-success)}.queue-float.busy .queue-float-dot{background:var(--color-error);animation:queue-pulse 1.2s infinite}@keyframes queue-pulse{0%,to{box-shadow:0 0 #ff4d4f80}50%{box-shadow:0 0 0 6px #ff4d4f00}}.queue-float-num{font-size:24px;font-weight:700;line-height:1.15}.queue-float-sub{font-size:11px;color:var(--color-text-tertiary);white-space:nowrap}.task-panel{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:9999;width:340px;max-width:calc(100vw - 32px);max-height:300px;display:none;flex-direction:column;background:var(--color-bg-elevated);color:var(--color-text);box-shadow:var(--color-shadow-heavy);border:1px solid var(--color-border-split);border-radius:14px;overflow:hidden}.task-panel.show{display:flex}.task-panel-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:600;border-bottom:1px solid var(--color-border-split);flex-shrink:0}.tp-count{color:var(--color-primary);font-weight:700}.tp-close{border:none;background:none;cursor:pointer;color:var(--color-text-secondary);font-size:14px;padding:2px 6px}.tp-close:hover{color:var(--color-text)}.task-panel-list{overflow-y:auto;padding:8px 12px}.task-item{padding:8px 0;border-bottom:1px solid var(--color-border-split)}.task-item:last-child{border-bottom:none}.task-item-top{display:flex;align-items:center;gap:8px;font-size:12px}.task-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-item-status{color:var(--color-text-secondary);flex-shrink:0}.task-item-cancel{flex-shrink:0;border:1px solid var(--color-border);background:none;cursor:pointer;color:var(--color-error);font-size:11px;padding:2px 8px;border-radius:6px}.task-item-cancel:hover{background:var(--color-error);color:#fff}.task-item-claim{flex-shrink:0;border:1px solid var(--color-primary);background:none;cursor:pointer;color:var(--color-primary);font-size:11px;padding:2px 8px;border-radius:6px}.task-item-claim:hover{background:var(--color-primary);color:#fff}.task-item-dismiss{flex-shrink:0;border:none;background:none;cursor:pointer;color:var(--color-text-tertiary);font-size:13px;padding:2px 4px;border-radius:6px;line-height:1}.task-item-dismiss:hover{color:var(--color-text-secondary);background:var(--color-fill)}.task-item-bar{height:6px;border-radius:3px;background:var(--color-fill);overflow:hidden;margin-top:6px}.task-item-bar>div{height:100%;width:0;border-radius:3px;background:var(--color-primary);transition:width .3s}.task-item.ended .task-item-bar{display:none}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,MiSans,HarmonyOS Sans SC,Noto Sans,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background-color:var(--color-bg-layout);background-image:radial-gradient(1100px 480px at 12% -6%,rgba(100,116,139,.055),transparent 62%),radial-gradient(900px 420px at 105% -2%,rgba(100,116,139,.035),transparent 58%);background-repeat:no-repeat;text-rendering:optimizeLegibility}html.dark body{background-image:radial-gradient(1100px 480px at 12% -6%,rgba(148,163,184,.06),transparent 62%),radial-gradient(900px 420px at 105% -2%,rgba(148,163,184,.04),transparent 58%)}a{transition:color .15s}.detail-name,.collection-name,.about-title,.drawer-title,.modal-title{letter-spacing:.3px}[id$=-page-info],.tp-count,.queue-float-num,.player-time{font-variant-numeric:tabular-nums}code{background:var(--color-fill);border-radius:5px;padding:1px 6px;font-size:.92em;font-family:ui-monospace,SFMono-Regular,Cascadia Mono,Consolas,monospace}img[src=""]{opacity:0}.app-header{border-bottom:1px solid transparent;transition:box-shadow .3s,background .3s,border-color .3s}.app-header.scrolled{border-bottom-color:var(--color-border-split);box-shadow:0 8px 24px -12px #0f172a24}html.dark .app-header.scrolled{box-shadow:0 8px 24px -12px #0009}.brand-logo{transition:transform .3s var(--ease-out)}.brand:hover .brand-logo{transform:rotate(-10deg) scale(1.08)}.brand-title{letter-spacing:.5px}.icon-btn{border-radius:999px}.icon-btn:not(:disabled):active{transform:scale(.96)}.card{border:1px solid var(--color-border-split);border-radius:14px;animation:cardIn .3s var(--ease-out)}@keyframes cardIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.card-title{position:relative;padding-left:13px}.card-title:before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:4px;border-radius:2px;background:linear-gradient(180deg,var(--color-primary-hover),var(--color-primary))}.main-container{padding-bottom:40px}.tab{letter-spacing:.3px}.tab.active{font-weight:600}.btn{border-radius:9px}.btn-sm{border-radius:8px}.btn-primary{box-shadow:inset 0 1px #ffffff29,0 1px 2px #0f172a1a}.btn-primary:not(:disabled):hover{box-shadow:inset 0 1px #ffffff29,0 4px 14px var(--color-primary-bg)}.btn-success{background-image:linear-gradient(180deg,#ffffff24,#fff0 60%)}.btn-success:not(:disabled):hover{background-image:linear-gradient(180deg,#ffffff24,#fff0 60%);box-shadow:0 4px 14px #52c41a40}.btn-danger{background-image:linear-gradient(180deg,#ffffff24,#fff0 60%)}.btn-danger:not(:disabled):hover{background-image:linear-gradient(180deg,#ffffff24,#fff0 60%);box-shadow:0 4px 14px #ff4d4f40}.site-table .btn:not(:disabled):hover,.song-actions .btn:not(:disabled):hover,.task-item .btn:not(:disabled):hover{transform:none;box-shadow:none}.input,.select{border-radius:9px}.input{caret-color:var(--color-primary)}.auth-form .input{height:38px;border-radius:10px}.auth-trial-box{background:var(--color-primary-bg);border-color:transparent;border-radius:10px}.song-row{animation:rowIn .3s var(--ease-out) both}.song-row:nth-child(2){animation-delay:.02s}.song-row:nth-child(3){animation-delay:.04s}.song-row:nth-child(4){animation-delay:.06s}.song-row:nth-child(5){animation-delay:.08s}.song-row:nth-child(6){animation-delay:.1s}.song-row:nth-child(7){animation-delay:.12s}.song-row:nth-child(8){animation-delay:.14s}.song-row:nth-child(9){animation-delay:.16s}.song-row:nth-child(10){animation-delay:.18s}@keyframes rowIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.song-row{border-radius:12px}.song-row:hover{background:linear-gradient(0deg,var(--color-bg-hover),var(--color-bg-hover))}.song-row>.song-meta:first-child{color:var(--color-text-tertiary);font-size:12px;font-variant-numeric:tabular-nums;padding-top:2px}.song-cover{border-radius:10px;box-shadow:0 1px 3px #0f172a1f}html.dark .song-cover{box-shadow:0 1px 3px #00000080}.song-name .tag{border-color:transparent;background:var(--color-fill);color:var(--color-text-secondary);font-weight:400}.song-row:hover .song-name .tag{background:var(--color-bg-container)}.player,.lyric-panel,.comment-panel{animation:rowIn .3s var(--ease-out)}.player{border-radius:16px;box-shadow:inset 0 1px #ffffff0f,var(--color-shadow-heavy)}.player-cover{border-radius:12px;box-shadow:0 4px 12px #00000059}#player-toggle{background:linear-gradient(180deg,var(--color-primary-hover),var(--color-primary));box-shadow:0 2px 10px var(--color-primary-bg);transition:background .2s,transform .1s,box-shadow .3s}#player-toggle:hover{background:linear-gradient(180deg,var(--color-primary),var(--color-primary-active))}.player.playing #player-toggle{box-shadow:0 0 0 5px var(--color-primary-bg),0 2px 10px var(--color-primary-bg)}.progress-fill{background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover))}.lyric-box{overscroll-behavior:contain;overflow-x:hidden;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16px,#000 calc(100% - 20px),transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 16px,#000 calc(100% - 20px),transparent 100%)}.tabs{scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.comment-item{animation:rowIn .28s var(--ease-out) both}.comment-avatar{box-shadow:0 0 0 1px var(--color-border-split)}.toplist-card{border-radius:14px;animation:rowIn .35s var(--ease-out) both}.toplist-card:nth-child(2){animation-delay:.03s}.toplist-card:nth-child(3){animation-delay:.06s}.toplist-card:nth-child(4){animation-delay:.09s}.toplist-card:nth-child(5){animation-delay:.12s}.toplist-card:nth-child(6){animation-delay:.15s}.toplist-card:nth-child(7){animation-delay:.18s}.toplist-card:nth-child(8){animation-delay:.21s}.toplist-card:hover{box-shadow:0 10px 24px -10px #0f172a2e}html.dark .toplist-card:hover{box-shadow:0 10px 24px -10px #0009}.toplist-card .tl-cover{transition:transform .35s var(--ease-out)}.toplist-card:hover .tl-cover{transform:scale(1.04)}.toplist-card .tl-name{letter-spacing:.2px}.modal{border-radius:16px;border:1px solid var(--color-border-split)}.modal-header{padding:18px 22px}.modal-body{padding:14px 22px 22px}.modal-mask.show{animation:maskIn .2s ease}@keyframes maskIn{0%{opacity:0}to{opacity:1}}.modal-body,.drawer-body,.task-panel-list,.log-list{overscroll-behavior:contain}.drawer{border-left:1px solid var(--color-border-split);border-radius:16px 0 0 16px}.toast{border-radius:10px}.toast{background:#ffffffe0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}html.dark .toast{background:#1f1f1fe0}.toast-success{background-image:linear-gradient(0deg,#52c41a14,#52c41a14)}.toast-error{background-image:linear-gradient(0deg,#ff4d4f14,#ff4d4f14)}.toast-warning{background-image:linear-gradient(0deg,#faad141a,#faad141a)}.toast-info{background-image:linear-gradient(0deg,#1677ff12,#1677ff12)}.empty-state .empty-icon{display:inline-block;animation:floatY 3s ease-in-out infinite alternate}@keyframes floatY{0%{transform:translateY(0)}to{transform:translateY(-6px)}}.task-panel.show{animation:taskIn .28s var(--ease-out)}@keyframes taskIn{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}.task-item-bar>div{background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover))}.queue-float{background:#ffffffd9;backdrop-filter:blur(10px) saturate(1.5);-webkit-backdrop-filter:blur(10px) saturate(1.5)}html.dark .queue-float{background:#1f1f1fd9}.site-table th{border-bottom:1px solid var(--color-border);padding-bottom:10px;letter-spacing:.3px}.site-table tbody tr:nth-child(2n) td{background:#0f172a04}html.dark .site-table tbody tr:nth-child(2n) td{background:#ffffff06}.site-table tbody tr:hover td{background:var(--color-fill)}.admin-side-item{border-radius:9px}.admin-side-item.active{box-shadow:inset 0 0 0 1px var(--color-primary-bg)}.stat-card{border-radius:12px;background:var(--color-bg-subtle)}.stat-card .stat-num{font-variant-numeric:tabular-nums}.code-box{border:1px solid var(--color-border-split);font-size:12.5px}audio{border-radius:10px}.version-item{border-radius:8px;padding:12px 10px;margin:0 -10px;transition:background .15s}.version-item:hover{background:var(--color-bg-hover)}.about-card:hover{border-color:var(--color-primary-bg)}.user-avatar{box-shadow:0 2px 8px #0f172a26}.user-avatar:not(.admin){background:linear-gradient(135deg,var(--color-primary),var(--color-primary-active))}.podcast-cate-item.active{background-image:linear-gradient(180deg,var(--color-primary-hover),var(--color-primary));box-shadow:0 2px 8px var(--color-primary-bg)}.switch:active:after{transform:scaleX(1.18)}.history-row .tag{border-radius:999px}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}.btn,.icon-btn,.tab,.player-ctrl,.admin-side-item,.podcast-cate-item,.color-dot,.mode-seg .seg-item,.switch{touch-action:manipulation}@media (hover: none){.btn:not(:disabled):hover{transform:none;box-shadow:none}.btn-primary:not(:disabled):hover{box-shadow:inset 0 1px #ffffff29,0 1px 2px #0f172a1a}.song-row:hover .song-cover{transform:none}.toplist-card:hover{transform:none;box-shadow:none}.toplist-card:hover .tl-cover,.song-detail-cover:hover,.collection-cover:hover,.uc-card:hover,.stat-card:hover,.about-card:hover,.user-avatar:hover,.color-dot:hover,.brand:hover .brand-logo{transform:none}}@media (pointer: coarse){.btn-sm{min-height:34px}.icon-btn{min-height:38px;min-width:38px}.btn-mini{height:34px;min-height:34px;padding:0 10px}.player-ctrl-sm{width:36px;height:36px}.lyric-line{padding:8px 10px}.history-row .tag{padding:4px 10px}.tp-close{padding:6px 10px}.task-item-cancel{padding:4px 10px}}@media (max-width: 400px){#btn-open-register{padding:0 8px;font-size:12px}#btn-open-login{padding:0 10px}.icon-btn{padding:0 6px}.header-actions{gap:4px}.brand{gap:6px}.brand-title{font-size:14px}.app-header-inner{padding:0 12px}.main-container{padding:12px}.card{padding:14px;border-radius:12px}.tabs{margin-bottom:14px}.tabs .tab{margin-right:18px;font-size:14px}.toplist-grid{grid-template-columns:repeat(2,1fr);gap:10px}.about-grid{grid-template-columns:1fr}.song-row{gap:10px;padding:10px 6px}.song-actions{gap:6px}.detail-name{font-size:19px}.collection-name{font-size:18px}.hint{font-size:12.5px}}@media (max-width: 480px){.input,.select{font-size:16px}.collection-cover{width:120px;height:120px}.song-detail{gap:16px}.collection-header{gap:14px}.player{padding:12px 14px}.player-cover{width:48px;height:48px}#player-toggle{width:40px;height:40px;font-size:15px}.lyric-box{max-height:230px;max-height:min(calc(230px * var(--lyric-fs, 1)),345px)}.comment-avatar{width:30px;height:30px}.comment-item{gap:10px}.empty-state{padding:36px 0}.stat-card .stat-num{font-size:18px}.modal-mask{padding:12px}.modal{width:100%!important;max-width:100%!important;max-height:86vh}.modal-header{padding:14px 16px}.modal-body{padding:12px 16px 16px}.drawer{width:100%;max-width:100vw}.site-table{font-size:12px}.site-table th,.site-table td{padding:8px}.toast-wrap{top:calc(10px + env(safe-area-inset-top,0px));width:calc(100vw - 24px)}.toast{font-size:13px}.queue-float{right:calc(10px + env(safe-area-inset-right,0px));bottom:calc(10px + env(safe-area-inset-bottom,0px));min-width:84px;padding:8px 12px}.queue-float-num{font-size:20px}.task-panel{bottom:calc(12px + env(safe-area-inset-bottom,0px));width:calc(100vw - 20px)}.drawer-footer{padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px))}}@media (min-width: 481px) and (max-width: 768px){.collection-cover{width:140px;height:140px}.toplist-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}@media (min-width: 769px) and (max-width: 1180px){.main-container{padding:20px}.admin-side{width:136px}}@media (min-width: 1680px){.app-header-inner,.main-container{max-width:1360px}}@media (max-height: 520px) and (orientation: landscape){.app-header-inner{height:52px}.brand-logo{width:30px;height:30px;font-size:16px}.brand-sub{display:none}.main-container{padding:12px 16px}.lyric-box{max-height:180px}}body{min-height:100vh;min-height:100dvh}.modal{max-height:80vh;max-height:80dvh}@media (max-width: 480px){.modal{max-height:86vh;max-height:86dvh}}@media (max-height: 520px) and (orientation: landscape){.modal{max-height:92vh;max-height:92dvh}}.player.playing .player-name:before,.player.playing .player-name:after{content:"";display:inline-block;width:3px;height:4px;border-radius:1px;background:#ffffffd9;margin:0 0 0 4px;vertical-align:middle;animation:eqBar .9s ease-in-out infinite}.player.playing .player-name:after{animation-delay:.3s;box-shadow:5px 0 0 -.5px #ffffff80;margin-right:8px}.player.playing .player-name:before{animation-delay:.15s}@keyframes eqBar{0%,to{height:4px}50%{height:13px}}.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:30px;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23999999' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}html.dark .select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23aaaaaa' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}.card-title .count{background:var(--color-fill);border-radius:999px;padding:1px 10px;font-variant-numeric:tabular-nums}.card-title .count:empty{display:none}.volume-slider{transition:height .15s}.volume-slider:hover{height:6px}#admin-qr-img,#personal-qr-img,#ua-qr-box img{border-radius:14px;animation:qrBreath 2.6s ease-in-out infinite}@keyframes qrBreath{0%,to{box-shadow:0 0 0 0 var(--color-primary-bg),var(--color-shadow-heavy)}50%{box-shadow:0 0 0 12px #0000,var(--color-shadow-heavy)}}.empty-state .empty-icon{filter:drop-shadow(0 6px 14px var(--color-primary-bg))}.stat-card .stat-num{background:linear-gradient(135deg,var(--color-primary-hover),var(--color-primary));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}.btn,.icon-btn,.tab,.tag,.podcast-cate-item,.admin-side-item{transition-timing-function:var(--ease-out)}body>footer{padding-bottom:calc(26px + env(safe-area-inset-bottom,0px))!important}@media (min-width: 2200px){.app-header-inner,.main-container{max-width:1480px}}@media (max-width: 480px){.queue-float{top:calc(74px + env(safe-area-inset-top,0px));bottom:auto;min-width:78px}}.auth-brand{text-align:center;padding:2px 0 14px}.auth-brand-logo{width:52px;height:52px;border-radius:16px;margin:0 auto 10px;background:linear-gradient(135deg,#f5576c,#ec4141);color:#fff;font-size:26px;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px -6px #ec414180}.auth-brand-name{font-size:17px;font-weight:600;letter-spacing:.5px}.auth-brand-sub{font-size:12px;color:var(--color-text-tertiary);margin-top:3px}.page-loading .ring{border:none;background:conic-gradient(from 0deg,var(--color-primary) 0 25%,var(--color-border) 25% 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px))}.version-item{position:relative;padding-left:18px;border-bottom:none!important}.version-item:before{content:"";position:absolute;left:0;top:16px;width:8px;height:8px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg)}.version-item:after{content:"";position:absolute;left:3.5px;top:30px;bottom:-12px;width:1px;background:var(--color-border-split)}.version-item:last-child:after{display:none}.admin-view.active{animation:rowIn .22s var(--ease-out)}.stat-list-item{border-radius:8px;transition:background .15s}.stat-list-item:hover{background:var(--color-bg-hover)}html{overscroll-behavior-y:none}#cookie-modal summary{list-style:none;position:relative;padding-right:24px;-webkit-user-select:none;user-select:none}#cookie-modal summary::-webkit-details-marker{display:none}#cookie-modal summary:after{content:"";position:absolute;right:4px;top:50%;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg);transition:transform .2s var(--ease-out)}#cookie-modal details[open] summary:after{transform:translateY(-30%) rotate(225deg)}input.input:-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--color-bg-container) inset;-webkit-text-fill-color:var(--color-text);transition:background-color 99999s ease-out}.progress:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--buffered, 0%);background:#ffffff2e;border-radius:2px;transition:width .4s ease;pointer-events:none}.progress:hover:before{border-radius:3px}.drawer-mask,.modal-mask,.page-loading{top:0;right:0;bottom:0;left:0}.color-dot.active:after{top:0;right:0;bottom:0;left:0}@supports not (aspect-ratio: 1){.toplist-card .tl-cover{height:170px}@media (max-width: 768px){.song-detail-cover{height:auto;min-height:200px}}}@supports not (background: conic-gradient(from 0deg,#fff 0%,#000 100%)){.page-loading .ring{border:3px solid var(--color-border);border-top-color:var(--color-primary);background:none}}@supports not ((backdrop-filter: blur(2px)) or (-webkit-backdrop-filter: blur(2px))){.app-header{background:var(--color-bg-container)}.toast,.queue-float{background:var(--color-bg-elevated)}}html.overlay-open .queue-float,html.overlay-open .task-panel,html.fs-pop-open .queue-float,html.fs-pop-open .task-panel{opacity:0!important;pointer-events:none!important}.webview-guide{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 16px;margin-bottom:16px;background:#faad141a;border:1px solid rgba(250,173,20,.35);border-radius:12px;font-size:13px;color:var(--color-text-secondary);animation:rowIn .3s var(--ease-out)}#legacy-browser-blocker{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;background:#1f2329;color:#e8eaed;padding:40px 28px;text-align:center;font-family:Microsoft YaHei,PingFang SC,sans-serif}#legacy-browser-blocker.show{display:block}#legacy-browser-blocker .lb-icon{font-size:44px;margin-bottom:16px}#legacy-browser-blocker h2{font-size:20px;margin:0 0 14px;color:#fff}#legacy-browser-blocker p{font-size:14px;line-height:1.9;margin:0 0 8px;opacity:.85}#legacy-browser-blocker .lb-list{margin-top:18px;font-size:13px;line-height:2;opacity:.7;text-align:left;display:inline-block}html.kbd-nav :focus{outline:2px solid var(--color-primary);outline:2px solid #4a7dff;outline-offset:2px;border-radius:4px}html.kbd-nav .btn:focus,html.kbd-nav .tab:focus{outline:none;box-shadow:0 0 0 3px var(--color-primary-bg);outline:2px solid #4a7dff}html.kbd-nav .input:focus,html.kbd-nav .select:focus{outline:2px solid var(--color-primary);outline:2px solid #4a7dff;outline-offset:0}.webview-guide .wg-icon{font-size:16px;flex:none}.webview-guide .wg-text b{color:var(--color-text)}.webview-guide .wg-close{margin-left:auto;flex:none;height:26px;padding:0 12px;border:1px solid rgba(250,173,20,.5);border-radius:999px;background:transparent;color:var(--color-text-secondary);font-size:12px;cursor:pointer;transition:all .2s}.webview-guide .wg-close:hover{background:#faad1426;color:var(--color-text)}@media (max-width: 359px){#btn-open-register{padding:0 6px}#btn-open-login{padding:0 8px}.icon-btn{padding:0 4px}.header-actions{gap:6px}.main-container{padding:8px}.card{padding:12px;border-radius:10px}.tabs .tab{margin-right:14px;font-size:13px}.toplist-grid{grid-template-columns:1fr 1fr;gap:8px}.song-actions .btn-sm{padding:0 8px}.detail-name{font-size:17px}.collection-cover{width:100px;height:100px}.player{padding:10px 12px}.queue-float{display:none}.app-header-inner{padding:0 10px}.brand-title{display:none}}@media (forced-colors: active){.progress-fill,.task-item-bar>div,.progress:before{forced-color-adjust:none}.card,.uc-card,.admin-side,.modal,.drawer{forced-color-adjust:auto}}body{background-image:radial-gradient(1100px 480px at 10% -8%,rgba(236,65,65,.05),transparent 60%),radial-gradient(950px 460px at 104% -4%,rgba(22,119,255,.055),transparent 58%)}html.dark body{background-image:radial-gradient(1100px 480px at 10% -8%,rgba(236,65,65,.07),transparent 60%),radial-gradient(950px 460px at 104% -4%,rgba(22,104,220,.09),transparent 58%)}.card{box-shadow:var(--color-shadow),inset 0 1px #ffffffa6}html.dark .card{box-shadow:var(--color-shadow),inset 0 1px #ffffff0a}.account-bar{border-bottom:1px solid var(--color-border-split)}.tabs .tab{padding:8px 16px;margin-right:6px;border-radius:999px;transition:color .2s,background .2s,transform .15s}.tabs .tab:hover{background:var(--color-fill)}.tabs .tab:active{transform:scale(.96)}.tabs .tab.active{background:var(--color-primary-bg)}.tabs .tab:after{display:none}.btn-primary{background-image:linear-gradient(180deg,#ffffff24,#fff0 60%)}.footer{letter-spacing:.3px} diff --git a/frontend/dist/assets/app.js b/frontend/dist/assets/app.js new file mode 100644 index 0000000..8949aab --- /dev/null +++ b/frontend/dist/assets/app.js @@ -0,0 +1,54 @@ +(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))r(a);new MutationObserver(a=>{for(const o of a)if(o.type==="childList")for(const f of o.addedNodes)f.tagName==="LINK"&&f.rel==="modulepreload"&&r(f)}).observe(document,{childList:!0,subtree:!0});function n(a){const o={};return a.integrity&&(o.integrity=a.integrity),a.referrerPolicy&&(o.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?o.credentials="include":a.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(a){if(a.ep)return;a.ep=!0;const o=n(a);fetch(a.href,o)}})();var Uu={exports:{}},gs={},Hu={exports:{}},Q={};/** + * @license React + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var Xr=Symbol.for("react.element"),Yp=Symbol.for("react.portal"),Xp=Symbol.for("react.fragment"),Zp=Symbol.for("react.strict_mode"),Jp=Symbol.for("react.profiler"),em=Symbol.for("react.provider"),tm=Symbol.for("react.context"),nm=Symbol.for("react.forward_ref"),rm=Symbol.for("react.suspense"),im=Symbol.for("react.memo"),sm=Symbol.for("react.lazy"),Lc=Symbol.iterator;function am(e){return e===null||typeof e!="object"?null:(e=Lc&&e[Lc]||e["@@iterator"],typeof e=="function"?e:null)}var Bu={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},qu=Object.assign,$u={};function Jn(e,t,n){this.props=e,this.context=t,this.refs=$u,this.updater=n||Bu}Jn.prototype.isReactComponent={};Jn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};Jn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Vu(){}Vu.prototype=Jn.prototype;function Ml(e,t,n){this.props=e,this.context=t,this.refs=$u,this.updater=n||Bu}var zl=Ml.prototype=new Vu;zl.constructor=Ml;qu(zl,Jn.prototype);zl.isPureReactComponent=!0;var Tc=Array.isArray,Qu=Object.prototype.hasOwnProperty,Al={current:null},Wu={key:!0,ref:!0,__self:!0,__source:!0};function Gu(e,t,n){var r,a={},o=null,f=null;if(t!=null)for(r in t.ref!==void 0&&(f=t.ref),t.key!==void 0&&(o=""+t.key),t)Qu.call(t,r)&&!Wu.hasOwnProperty(r)&&(a[r]=t[r]);var p=arguments.length-2;if(p===1)a.children=n;else if(1>>1,G=A[Z];if(0>>1;Za(j,q))ata(je,j)?(A[Z]=je,A[at]=q,Z=at):(A[Z]=j,A[Ze]=q,Z=Ze);else if(ata(je,q))A[Z]=je,A[at]=q,Z=at;else break e}}return H}function a(A,H){var q=A.sortIndex-H.sortIndex;return q!==0?q:A.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var o=performance;e.unstable_now=function(){return o.now()}}else{var f=Date,p=f.now();e.unstable_now=function(){return f.now()-p}}var h=[],g=[],E=1,N=null,b=3,P=!1,I=!1,M=!1,Y=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,v=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function w(A){for(var H=n(g);H!==null;){if(H.callback===null)r(g);else if(H.startTime<=A)r(g),H.sortIndex=H.expirationTime,t(h,H);else break;H=n(g)}}function _(A){if(M=!1,w(A),!I)if(n(h)!==null)I=!0,tn(z);else{var H=n(g);H!==null&&Tt(_,H.startTime-A)}}function z(A,H){I=!1,M&&(M=!1,x(F),F=-1),P=!0;var q=b;try{for(w(H),N=n(h);N!==null&&(!(N.expirationTime>H)||A&&!fe());){var Z=N.callback;if(typeof Z=="function"){N.callback=null,b=N.priorityLevel;var G=Z(N.expirationTime<=H);H=e.unstable_now(),typeof G=="function"?N.callback=G:N===n(h)&&r(h),w(H)}else r(h);N=n(h)}if(N!==null)var we=!0;else{var Ze=n(g);Ze!==null&&Tt(_,Ze.startTime-H),we=!1}return we}finally{N=null,b=q,P=!1}}var D=!1,O=null,F=-1,te=5,$=-1;function fe(){return!(e.unstable_now()-$A||125Z?(A.sortIndex=q,t(g,A),n(h)===null&&A===n(g)&&(M?(x(F),F=-1):M=!0,Tt(_,q-Z))):(A.sortIndex=G,t(h,A),I||P||(I=!0,tn(z))),A},e.unstable_shouldYield=fe,e.unstable_wrapCallback=function(A){var H=b;return function(){var q=b;b=H;try{return A.apply(this,arguments)}finally{b=q}}}})(Ju);Zu.exports=Ju;var gm=Zu.exports;/** + * @license React + * react-dom.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ym=Mr,He=gm;function L(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Da=Object.prototype.hasOwnProperty,xm=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,Ic={},Mc={};function wm(e){return Da.call(Mc,e)?!0:Da.call(Ic,e)?!1:xm.test(e)?Mc[e]=!0:(Ic[e]=!0,!1)}function jm(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return r?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function km(e,t,n,r){if(t===null||typeof t>"u"||jm(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Le(e,t,n,r,a,o,f){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=f}var xe={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){xe[e]=new Le(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];xe[t]=new Le(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){xe[e]=new Le(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){xe[e]=new Le(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){xe[e]=new Le(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){xe[e]=new Le(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){xe[e]=new Le(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){xe[e]=new Le(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){xe[e]=new Le(e,5,!1,e.toLowerCase(),null,!1,!1)});var Ol=/[\-:]([a-z])/g;function Dl(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(Ol,Dl);xe[t]=new Le(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Ol,Dl);xe[t]=new Le(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Ol,Dl);xe[t]=new Le(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){xe[e]=new Le(e,1,!1,e.toLowerCase(),null,!1,!1)});xe.xlinkHref=new Le("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){xe[e]=new Le(e,1,!1,e.toLowerCase(),null,!0,!0)});function Fl(e,t,n,r){var a=xe.hasOwnProperty(t)?xe[t]:null;(a!==null?a.type!==0:r||!(2p||a[f]!==o[p]){var h=` +`+a[f].replace(" at new "," at ");return e.displayName&&h.includes("")&&(h=h.replace("",e.displayName)),h}while(1<=f&&0<=p);break}}}finally{da=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?wr(e):""}function bm(e){switch(e.tag){case 5:return wr(e.type);case 16:return wr("Lazy");case 13:return wr("Suspense");case 19:return wr("SuspenseList");case 0:case 2:case 15:return e=fa(e.type,!1),e;case 11:return e=fa(e.type.render,!1),e;case 1:return e=fa(e.type,!0),e;default:return""}}function Ba(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case _n:return"Fragment";case Cn:return"Portal";case Fa:return"Profiler";case Ul:return"StrictMode";case Ua:return"Suspense";case Ha:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case nd:return(e.displayName||"Context")+".Consumer";case td:return(e._context.displayName||"Context")+".Provider";case Hl:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Bl:return t=e.displayName||null,t!==null?t:Ba(e.type)||"Memo";case zt:t=e._payload,e=e._init;try{return Ba(e(t))}catch{}}return null}function Nm(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Ba(t);case 8:return t===Ul?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Yt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function id(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Sm(e){var t=id(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(f){r=""+f,o.call(this,f)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(f){r=""+f},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function xi(e){e._valueTracker||(e._valueTracker=Sm(e))}function sd(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=id(e)?e.checked?"true":"false":e.value),e=r,e!==n?(t.setValue(e),!0):!1}function Wi(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function qa(e,t){var n=t.checked;return se({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function Ac(e,t){var n=t.defaultValue==null?"":t.defaultValue,r=t.checked!=null?t.checked:t.defaultChecked;n=Yt(t.value!=null?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function ad(e,t){t=t.checked,t!=null&&Fl(e,"checked",t,!1)}function $a(e,t){ad(e,t);var n=Yt(t.value),r=t.type;if(n!=null)r==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(r==="submit"||r==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Va(e,t.type,n):t.hasOwnProperty("defaultValue")&&Va(e,t.type,Yt(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Rc(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!(r!=="submit"&&r!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function Va(e,t,n){(t!=="number"||Wi(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var jr=Array.isArray;function Fn(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a"+t.valueOf().toString()+"",t=wi.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ar(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Nr={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Em=["Webkit","ms","Moz","O"];Object.keys(Nr).forEach(function(e){Em.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Nr[t]=Nr[e]})});function ud(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Nr.hasOwnProperty(e)&&Nr[e]?(""+t).trim():t+"px"}function dd(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var r=n.indexOf("--")===0,a=ud(n,t[n],r);n==="float"&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}var Cm=se({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Ga(e,t){if(t){if(Cm[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(L(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(L(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(L(61))}if(t.style!=null&&typeof t.style!="object")throw Error(L(62))}}function Ka(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Ya=null;function ql(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Xa=null,Un=null,Hn=null;function Fc(e){if(e=ei(e)){if(typeof Xa!="function")throw Error(L(280));var t=e.stateNode;t&&(t=ks(t),Xa(e.stateNode,e.type,t))}}function fd(e){Un?Hn?Hn.push(e):Hn=[e]:Un=e}function pd(){if(Un){var e=Un,t=Hn;if(Hn=Un=null,Fc(e),t)for(e=0;e>>=0,e===0?32:31-(Dm(e)/Fm|0)|0}var ji=64,ki=4194304;function kr(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Xi(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,f=n&268435455;if(f!==0){var p=f&~a;p!==0?r=kr(p):(o&=f,o!==0&&(r=kr(o)))}else f=n&~a,f!==0?r=kr(f):o!==0&&(r=kr(o));if(r===0)return 0;if(t!==0&&t!==r&&!(t&a)&&(a=r&-r,o=t&-t,a>=o||a===16&&(o&4194240)!==0))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0n;n++)t.push(e);return t}function Zr(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-rt(t),e[t]=n}function qm(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0=Er),Gc=" ",Kc=!1;function Md(e,t){switch(e){case"keyup":return gh.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function zd(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ln=!1;function xh(e,t){switch(e){case"compositionend":return zd(t);case"keypress":return t.which!==32?null:(Kc=!0,Gc);case"textInput":return e=t.data,e===Gc&&Kc?null:e;default:return null}}function wh(e,t){if(Ln)return e==="compositionend"||!Xl&&Md(e,t)?(e=Pd(),Oi=Gl=Ft=null,Ln=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Jc(n)}}function Dd(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Dd(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Fd(){for(var e=window,t=Wi();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=Wi(e.document)}return t}function Zl(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function Lh(e){var t=Fd(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Dd(n.ownerDocument.documentElement,n)){if(r!==null&&Zl(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=r.end===void 0?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=eu(n,o);var f=eu(n,r);a&&f&&(e.rangeCount!==1||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==f.node||e.focusOffset!==f.offset)&&(t=t.createRange(),t.setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(f.node,f.offset)):(t.setEnd(f.node,f.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n=document.documentMode,Tn=null,rl=null,_r=null,il=!1;function tu(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;il||Tn==null||Tn!==Wi(r)||(r=Tn,"selectionStart"in r&&Zl(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),_r&&Hr(_r,r)||(_r=r,r=es(rl,"onSelect"),0Mn||(e.current=ul[Mn],ul[Mn]=null,Mn--)}function X(e,t){Mn++,ul[Mn]=e.current,e.current=t}var Xt={},Se=Jt(Xt),Ae=Jt(!1),mn=Xt;function Wn(e,t){var n=e.type.contextTypes;if(!n)return Xt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a={},o;for(o in n)a[o]=t[o];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Re(e){return e=e.childContextTypes,e!=null}function ns(){ee(Ae),ee(Se)}function ou(e,t,n){if(Se.current!==Xt)throw Error(L(168));X(Se,t),X(Ae,n)}function Gd(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,typeof r.getChildContext!="function")return n;r=r.getChildContext();for(var a in r)if(!(a in t))throw Error(L(108,Nm(e)||"Unknown",a));return se({},n,r)}function rs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Xt,mn=Se.current,X(Se,e),X(Ae,Ae.current),!0}function cu(e,t,n){var r=e.stateNode;if(!r)throw Error(L(169));n?(e=Gd(e,t,mn),r.__reactInternalMemoizedMergedChildContext=e,ee(Ae),ee(Se),X(Se,e)):ee(Ae),X(Ae,n)}var xt=null,bs=!1,Ea=!1;function Kd(e){xt===null?xt=[e]:xt.push(e)}function Hh(e){bs=!0,Kd(e)}function en(){if(!Ea&&xt!==null){Ea=!0;var e=0,t=K;try{var n=xt;for(K=1;e>=f,a-=f,wt=1<<32-rt(t)+a|n<F?(te=O,O=null):te=O.sibling;var $=b(x,O,w[F],_);if($===null){O===null&&(O=te);break}e&&O&&$.alternate===null&&t(x,O),v=o($,v,F),D===null?z=$:D.sibling=$,D=$,O=te}if(F===w.length)return n(x,O),ne&&ln(x,F),z;if(O===null){for(;FF?(te=O,O=null):te=O.sibling;var fe=b(x,O,$.value,_);if(fe===null){O===null&&(O=te);break}e&&O&&fe.alternate===null&&t(x,O),v=o(fe,v,F),D===null?z=fe:D.sibling=fe,D=fe,O=te}if($.done)return n(x,O),ne&&ln(x,F),z;if(O===null){for(;!$.done;F++,$=w.next())$=N(x,$.value,_),$!==null&&(v=o($,v,F),D===null?z=$:D.sibling=$,D=$);return ne&&ln(x,F),z}for(O=r(x,O);!$.done;F++,$=w.next())$=P(O,x,F,$.value,_),$!==null&&(e&&$.alternate!==null&&O.delete($.key===null?F:$.key),v=o($,v,F),D===null?z=$:D.sibling=$,D=$);return e&&O.forEach(function(_t){return t(x,_t)}),ne&&ln(x,F),z}function Y(x,v,w,_){if(typeof w=="object"&&w!==null&&w.type===_n&&w.key===null&&(w=w.props.children),typeof w=="object"&&w!==null){switch(w.$$typeof){case yi:e:{for(var z=w.key,D=v;D!==null;){if(D.key===z){if(z=w.type,z===_n){if(D.tag===7){n(x,D.sibling),v=a(D,w.props.children),v.return=x,x=v;break e}}else if(D.elementType===z||typeof z=="object"&&z!==null&&z.$$typeof===zt&&fu(z)===D.type){n(x,D.sibling),v=a(D,w.props),v.ref=vr(x,D,w),v.return=x,x=v;break e}n(x,D);break}else t(x,D);D=D.sibling}w.type===_n?(v=pn(w.props.children,x.mode,_,w.key),v.return=x,x=v):(_=Vi(w.type,w.key,w.props,null,x.mode,_),_.ref=vr(x,v,w),_.return=x,x=_)}return f(x);case Cn:e:{for(D=w.key;v!==null;){if(v.key===D)if(v.tag===4&&v.stateNode.containerInfo===w.containerInfo&&v.stateNode.implementation===w.implementation){n(x,v.sibling),v=a(v,w.children||[]),v.return=x,x=v;break e}else{n(x,v);break}else t(x,v);v=v.sibling}v=za(w,x.mode,_),v.return=x,x=v}return f(x);case zt:return D=w._init,Y(x,v,D(w._payload),_)}if(jr(w))return I(x,v,w,_);if(dr(w))return M(x,v,w,_);Li(x,w)}return typeof w=="string"&&w!==""||typeof w=="number"?(w=""+w,v!==null&&v.tag===6?(n(x,v.sibling),v=a(v,w),v.return=x,x=v):(n(x,v),v=Ma(w,x.mode,_),v.return=x,x=v),f(x)):n(x,v)}return Y}var Kn=Jd(!0),ef=Jd(!1),as=Jt(null),ls=null,Rn=null,no=null;function ro(){no=Rn=ls=null}function io(e){var t=as.current;ee(as),e._currentValue=t}function pl(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,r!==null&&(r.childLanes|=t)):r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function qn(e,t){ls=e,no=Rn=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(ze=!0),e.firstContext=null)}function Ye(e){var t=e._currentValue;if(no!==e)if(e={context:e,memoizedValue:t,next:null},Rn===null){if(ls===null)throw Error(L(308));Rn=e,ls.dependencies={lanes:0,firstContext:e}}else Rn=Rn.next=e;return t}var un=null;function so(e){un===null?un=[e]:un.push(e)}function tf(e,t,n,r){var a=t.interleaved;return a===null?(n.next=n,so(t)):(n.next=a.next,a.next=n),t.interleaved=n,St(e,r)}function St(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var At=!1;function ao(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function nf(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function kt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Vt(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,W&2){var a=r.pending;return a===null?t.next=t:(t.next=a.next,a.next=t),r.pending=t,St(e,n)}return a=r.interleaved,a===null?(t.next=t,so(r)):(t.next=a.next,a.next=t),r.interleaved=t,St(e,n)}function Fi(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Vl(e,n)}}function pu(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var a=null,o=null;if(n=n.firstBaseUpdate,n!==null){do{var f={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};o===null?a=o=f:o=o.next=f,n=n.next}while(n!==null);o===null?a=o=t:o=o.next=t}else a=o=t;n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function os(e,t,n,r){var a=e.updateQueue;At=!1;var o=a.firstBaseUpdate,f=a.lastBaseUpdate,p=a.shared.pending;if(p!==null){a.shared.pending=null;var h=p,g=h.next;h.next=null,f===null?o=g:f.next=g,f=h;var E=e.alternate;E!==null&&(E=E.updateQueue,p=E.lastBaseUpdate,p!==f&&(p===null?E.firstBaseUpdate=g:p.next=g,E.lastBaseUpdate=h))}if(o!==null){var N=a.baseState;f=0,E=g=h=null,p=o;do{var b=p.lane,P=p.eventTime;if((r&b)===b){E!==null&&(E=E.next={eventTime:P,lane:0,tag:p.tag,payload:p.payload,callback:p.callback,next:null});e:{var I=e,M=p;switch(b=t,P=n,M.tag){case 1:if(I=M.payload,typeof I=="function"){N=I.call(P,N,b);break e}N=I;break e;case 3:I.flags=I.flags&-65537|128;case 0:if(I=M.payload,b=typeof I=="function"?I.call(P,N,b):I,b==null)break e;N=se({},N,b);break e;case 2:At=!0}}p.callback!==null&&p.lane!==0&&(e.flags|=64,b=a.effects,b===null?a.effects=[p]:b.push(p))}else P={eventTime:P,lane:b,tag:p.tag,payload:p.payload,callback:p.callback,next:null},E===null?(g=E=P,h=N):E=E.next=P,f|=b;if(p=p.next,p===null){if(p=a.shared.pending,p===null)break;b=p,p=b.next,b.next=null,a.lastBaseUpdate=b,a.shared.pending=null}}while(!0);if(E===null&&(h=N),a.baseState=h,a.firstBaseUpdate=g,a.lastBaseUpdate=E,t=a.shared.interleaved,t!==null){a=t;do f|=a.lane,a=a.next;while(a!==t)}else o===null&&(a.shared.lanes=0);gn|=f,e.lanes=f,e.memoizedState=N}}function mu(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;tn?n:4,e(!0);var r=_a.transition;_a.transition={};try{e(!1),t()}finally{K=n,_a.transition=r}}function wf(){return Xe().memoizedState}function Vh(e,t,n){var r=Wt(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},jf(e))kf(t,n);else if(n=tf(e,t,n,r),n!==null){var a=Ce();it(n,e,r,a),bf(n,t,r)}}function Qh(e,t,n){var r=Wt(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(jf(e))kf(t,a);else{var o=e.alternate;if(e.lanes===0&&(o===null||o.lanes===0)&&(o=t.lastRenderedReducer,o!==null))try{var f=t.lastRenderedState,p=o(f,n);if(a.hasEagerState=!0,a.eagerState=p,st(p,f)){var h=t.interleaved;h===null?(a.next=a,so(t)):(a.next=h.next,h.next=a),t.interleaved=a;return}}catch{}finally{}n=tf(e,t,a,r),n!==null&&(a=Ce(),it(n,e,r,a),bf(n,t,r))}}function jf(e){var t=e.alternate;return e===ie||t!==null&&t===ie}function kf(e,t){Lr=us=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function bf(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Vl(e,n)}}var ds={readContext:Ye,useCallback:ke,useContext:ke,useEffect:ke,useImperativeHandle:ke,useInsertionEffect:ke,useLayoutEffect:ke,useMemo:ke,useReducer:ke,useRef:ke,useState:ke,useDebugValue:ke,useDeferredValue:ke,useTransition:ke,useMutableSource:ke,useSyncExternalStore:ke,useId:ke,unstable_isNewReconciler:!1},Wh={readContext:Ye,useCallback:function(e,t){return ct().memoizedState=[e,t===void 0?null:t],e},useContext:Ye,useEffect:vu,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,Hi(4194308,4,hf.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Hi(4194308,4,e,t)},useInsertionEffect:function(e,t){return Hi(4,2,e,t)},useMemo:function(e,t){var n=ct();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=ct();return t=n!==void 0?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Vh.bind(null,ie,e),[r.memoizedState,e]},useRef:function(e){var t=ct();return e={current:e},t.memoizedState=e},useState:hu,useDebugValue:ho,useDeferredValue:function(e){return ct().memoizedState=e},useTransition:function(){var e=hu(!1),t=e[0];return e=$h.bind(null,e[1]),ct().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=ie,a=ct();if(ne){if(n===void 0)throw Error(L(407));n=n()}else{if(n=t(),ve===null)throw Error(L(349));vn&30||lf(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,vu(cf.bind(null,r,o,e),[e]),r.flags|=2048,Kr(9,of.bind(null,r,o,n,t),void 0,null),n},useId:function(){var e=ct(),t=ve.identifierPrefix;if(ne){var n=jt,r=wt;n=(r&~(1<<32-rt(r)-1)).toString(32)+n,t=":"+t+"R"+n,n=Wr++,0<\/script>",e=e.removeChild(e.firstChild)):typeof r.is=="string"?e=f.createElement(n,{is:r.is}):(e=f.createElement(n),n==="select"&&(f=e,r.multiple?f.multiple=!0:r.size&&(f.size=r.size))):e=f.createElementNS(e,n),e[ut]=t,e[$r]=r,Mf(e,t,!1,!1),t.stateNode=e;e:{switch(f=Ka(n,r),n){case"dialog":J("cancel",e),J("close",e),a=r;break;case"iframe":case"object":case"embed":J("load",e),a=r;break;case"video":case"audio":for(a=0;aZn&&(t.flags|=128,r=!0,gr(o,!1),t.lanes=4194304)}else{if(!r)if(e=cs(f),e!==null){if(t.flags|=128,r=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),gr(o,!0),o.tail===null&&o.tailMode==="hidden"&&!f.alternate&&!ne)return be(t),null}else 2*le()-o.renderingStartTime>Zn&&n!==1073741824&&(t.flags|=128,r=!0,gr(o,!1),t.lanes=4194304);o.isBackwards?(f.sibling=t.child,t.child=f):(n=o.last,n!==null?n.sibling=f:t.child=f,o.last=f)}return o.tail!==null?(t=o.tail,o.rendering=t,o.tail=t.sibling,o.renderingStartTime=le(),t.sibling=null,n=re.current,X(re,r?n&1|2:n&1),t):(be(t),null);case 22:case 23:return jo(),r=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==r&&(t.flags|=8192),r&&t.mode&1?De&1073741824&&(be(t),t.subtreeFlags&6&&(t.flags|=8192)):be(t),null;case 24:return null;case 25:return null}throw Error(L(156,t.tag))}function tv(e,t){switch(eo(t),t.tag){case 1:return Re(t.type)&&ns(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Yn(),ee(Ae),ee(Se),co(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return oo(t),null;case 13:if(ee(re),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(L(340));Gn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return ee(re),null;case 4:return Yn(),null;case 10:return io(t.type._context),null;case 22:case 23:return jo(),null;case 24:return null;default:return null}}var Pi=!1,Ne=!1,nv=typeof WeakSet=="function"?WeakSet:Set,R=null;function On(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(r){ae(e,t,r)}else n.current=null}function kl(e,t,n){try{n()}catch(r){ae(e,t,r)}}var Cu=!1;function rv(e,t){if(sl=Zi,e=Fd(),Zl(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var a=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break e}var f=0,p=-1,h=-1,g=0,E=0,N=e,b=null;t:for(;;){for(var P;N!==n||a!==0&&N.nodeType!==3||(p=f+a),N!==o||r!==0&&N.nodeType!==3||(h=f+r),N.nodeType===3&&(f+=N.nodeValue.length),(P=N.firstChild)!==null;)b=N,N=P;for(;;){if(N===e)break t;if(b===n&&++g===a&&(p=f),b===o&&++E===r&&(h=f),(P=N.nextSibling)!==null)break;N=b,b=N.parentNode}N=P}n=p===-1||h===-1?null:{start:p,end:h}}else n=null}n=n||{start:0,end:0}}else n=null;for(al={focusedElem:e,selectionRange:n},Zi=!1,R=t;R!==null;)if(t=R,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,R=e;else for(;R!==null;){t=R;try{var I=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(I!==null){var M=I.memoizedProps,Y=I.memoizedState,x=t.stateNode,v=x.getSnapshotBeforeUpdate(t.elementType===t.type?M:et(t.type,M),Y);x.__reactInternalSnapshotBeforeUpdate=v}break;case 3:var w=t.stateNode.containerInfo;w.nodeType===1?w.textContent="":w.nodeType===9&&w.documentElement&&w.removeChild(w.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(L(163))}}catch(_){ae(t,t.return,_)}if(e=t.sibling,e!==null){e.return=t.return,R=e;break}R=t.return}return I=Cu,Cu=!1,I}function Tr(e,t,n){var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,o!==void 0&&kl(t,n,o)}a=a.next}while(a!==r)}}function Es(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function bl(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function Rf(e){var t=e.alternate;t!==null&&(e.alternate=null,Rf(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[ut],delete t[$r],delete t[cl],delete t[Fh],delete t[Uh])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Of(e){return e.tag===5||e.tag===3||e.tag===4}function _u(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Of(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Nl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=ts));else if(r!==4&&(e=e.child,e!==null))for(Nl(e,t,n),e=e.sibling;e!==null;)Nl(e,t,n),e=e.sibling}function Sl(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Sl(e,t,n),e=e.sibling;e!==null;)Sl(e,t,n),e=e.sibling}var ge=null,tt=!1;function Mt(e,t,n){for(n=n.child;n!==null;)Df(e,t,n),n=n.sibling}function Df(e,t,n){if(dt&&typeof dt.onCommitFiberUnmount=="function")try{dt.onCommitFiberUnmount(ys,n)}catch{}switch(n.tag){case 5:Ne||On(n,t);case 6:var r=ge,a=tt;ge=null,Mt(e,t,n),ge=r,tt=a,ge!==null&&(tt?(e=ge,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):ge.removeChild(n.stateNode));break;case 18:ge!==null&&(tt?(e=ge,n=n.stateNode,e.nodeType===8?Sa(e.parentNode,n):e.nodeType===1&&Sa(e,n),Fr(e)):Sa(ge,n.stateNode));break;case 4:r=ge,a=tt,ge=n.stateNode.containerInfo,tt=!0,Mt(e,t,n),ge=r,tt=a;break;case 0:case 11:case 14:case 15:if(!Ne&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){a=r=r.next;do{var o=a,f=o.destroy;o=o.tag,f!==void 0&&(o&2||o&4)&&kl(n,t,f),a=a.next}while(a!==r)}Mt(e,t,n);break;case 1:if(!Ne&&(On(n,t),r=n.stateNode,typeof r.componentWillUnmount=="function"))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(p){ae(n,t,p)}Mt(e,t,n);break;case 21:Mt(e,t,n);break;case 22:n.mode&1?(Ne=(r=Ne)||n.memoizedState!==null,Mt(e,t,n),Ne=r):Mt(e,t,n);break;default:Mt(e,t,n)}}function Lu(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new nv),t.forEach(function(r){var a=fv.bind(null,e,r);n.has(r)||(n.add(r),r.then(a,a))})}}function Je(e,t){var n=t.deletions;if(n!==null)for(var r=0;ra&&(a=f),r&=~o}if(r=a,r=le()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*sv(r/1960))-r,10e?16:e,Ut===null)var r=!1;else{if(e=Ut,Ut=null,ms=0,W&6)throw Error(L(331));var a=W;for(W|=4,R=e.current;R!==null;){var o=R,f=o.child;if(R.flags&16){var p=o.deletions;if(p!==null){for(var h=0;hle()-xo?fn(e,0):yo|=n),Oe(e,t)}function Qf(e,t){t===0&&(e.mode&1?(t=ki,ki<<=1,!(ki&130023424)&&(ki=4194304)):t=1);var n=Ce();e=St(e,t),e!==null&&(Zr(e,t,n),Oe(e,n))}function dv(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Qf(e,n)}function fv(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(L(314))}r!==null&&r.delete(t),Qf(e,n)}var Wf;Wf=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||Ae.current)ze=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return ze=!1,Jh(e,t,n);ze=!!(e.flags&131072)}else ze=!1,ne&&t.flags&1048576&&Yd(t,ss,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Bi(e,t),e=t.pendingProps;var a=Wn(t,Se.current);qn(t,n),a=fo(null,t,r,e,a,n);var o=po();return t.flags|=1,typeof a=="object"&&a!==null&&typeof a.render=="function"&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Re(r)?(o=!0,rs(t)):o=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,ao(t),a.updater=Ss,t.stateNode=a,a._reactInternals=t,hl(t,r,e,n),t=yl(null,t,r,!0,o,n)):(t.tag=0,ne&&o&&Jl(t),Ee(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Bi(e,t),e=t.pendingProps,a=r._init,r=a(r._payload),t.type=r,a=t.tag=mv(r),e=et(r,e),a){case 0:t=gl(null,t,r,e,n);break e;case 1:t=Nu(null,t,r,e,n);break e;case 11:t=ku(null,t,r,e,n);break e;case 14:t=bu(null,t,r,et(r.type,e),n);break e}throw Error(L(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:et(r,a),gl(e,t,r,a,n);case 1:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:et(r,a),Nu(e,t,r,a,n);case 3:e:{if(Tf(t),e===null)throw Error(L(387));r=t.pendingProps,o=t.memoizedState,a=o.element,nf(e,t),os(t,r,null,n);var f=t.memoizedState;if(r=f.element,o.isDehydrated)if(o={element:r,isDehydrated:!1,cache:f.cache,pendingSuspenseBoundaries:f.pendingSuspenseBoundaries,transitions:f.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){a=Xn(Error(L(423)),t),t=Su(e,t,r,n,a);break e}else if(r!==a){a=Xn(Error(L(424)),t),t=Su(e,t,r,n,a);break e}else for(Fe=$t(t.stateNode.containerInfo.firstChild),Ue=t,ne=!0,nt=null,n=ef(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Gn(),r===a){t=Et(e,t,n);break e}Ee(e,t,r,n)}t=t.child}return t;case 5:return rf(t),e===null&&fl(t),r=t.type,a=t.pendingProps,o=e!==null?e.memoizedProps:null,f=a.children,ll(r,a)?f=null:o!==null&&ll(r,o)&&(t.flags|=32),Lf(e,t),Ee(e,t,f,n),t.child;case 6:return e===null&&fl(t),null;case 13:return Pf(e,t,n);case 4:return lo(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=Kn(t,null,r,n):Ee(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:et(r,a),ku(e,t,r,a,n);case 7:return Ee(e,t,t.pendingProps,n),t.child;case 8:return Ee(e,t,t.pendingProps.children,n),t.child;case 12:return Ee(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,o=t.memoizedProps,f=a.value,X(as,r._currentValue),r._currentValue=f,o!==null)if(st(o.value,f)){if(o.children===a.children&&!Ae.current){t=Et(e,t,n);break e}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var p=o.dependencies;if(p!==null){f=o.child;for(var h=p.firstContext;h!==null;){if(h.context===r){if(o.tag===1){h=kt(-1,n&-n),h.tag=2;var g=o.updateQueue;if(g!==null){g=g.shared;var E=g.pending;E===null?h.next=h:(h.next=E.next,E.next=h),g.pending=h}}o.lanes|=n,h=o.alternate,h!==null&&(h.lanes|=n),pl(o.return,n,t),p.lanes|=n;break}h=h.next}}else if(o.tag===10)f=o.type===t.type?null:o.child;else if(o.tag===18){if(f=o.return,f===null)throw Error(L(341));f.lanes|=n,p=f.alternate,p!==null&&(p.lanes|=n),pl(f,n,t),f=o.sibling}else f=o.child;if(f!==null)f.return=o;else for(f=o;f!==null;){if(f===t){f=null;break}if(o=f.sibling,o!==null){o.return=f.return,f=o;break}f=f.return}o=f}Ee(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,qn(t,n),a=Ye(a),r=r(a),t.flags|=1,Ee(e,t,r,n),t.child;case 14:return r=t.type,a=et(r,t.pendingProps),a=et(r.type,a),bu(e,t,r,a,n);case 15:return Cf(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:et(r,a),Bi(e,t),t.tag=1,Re(r)?(e=!0,rs(t)):e=!1,qn(t,n),Nf(t,r,a),hl(t,r,a,n),yl(null,t,r,!0,e,n);case 19:return If(e,t,n);case 22:return _f(e,t,n)}throw Error(L(156,t.tag))};function Gf(e,t){return wd(e,t)}function pv(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ge(e,t,n,r){return new pv(e,t,n,r)}function bo(e){return e=e.prototype,!(!e||!e.isReactComponent)}function mv(e){if(typeof e=="function")return bo(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Hl)return 11;if(e===Bl)return 14}return 2}function Gt(e,t){var n=e.alternate;return n===null?(n=Ge(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Vi(e,t,n,r,a,o){var f=2;if(r=e,typeof e=="function")bo(e)&&(f=1);else if(typeof e=="string")f=5;else e:switch(e){case _n:return pn(n.children,a,o,t);case Ul:f=8,a|=8;break;case Fa:return e=Ge(12,n,t,a|2),e.elementType=Fa,e.lanes=o,e;case Ua:return e=Ge(13,n,t,a),e.elementType=Ua,e.lanes=o,e;case Ha:return e=Ge(19,n,t,a),e.elementType=Ha,e.lanes=o,e;case rd:return _s(n,a,o,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case td:f=10;break e;case nd:f=9;break e;case Hl:f=11;break e;case Bl:f=14;break e;case zt:f=16,r=null;break e}throw Error(L(130,e==null?e:typeof e,""))}return t=Ge(f,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function pn(e,t,n,r){return e=Ge(7,e,r,t),e.lanes=n,e}function _s(e,t,n,r){return e=Ge(22,e,r,t),e.elementType=rd,e.lanes=n,e.stateNode={isHidden:!1},e}function Ma(e,t,n){return e=Ge(6,e,null,t),e.lanes=n,e}function za(e,t,n){return t=Ge(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function hv(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ma(0),this.expirationTimes=ma(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ma(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function No(e,t,n,r,a,o,f,p,h){return e=new hv(e,t,n,p,h),t===1?(t=1,o===!0&&(t|=8)):t=0,o=Ge(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},ao(o),e}function vv(e,t,n){var r=3"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Zf)}catch(e){console.error(e)}}Zf(),Xu.exports=Be;var jv=Xu.exports,Ou=jv;Oa.createRoot=Ou.createRoot,Oa.hydrateRoot=Ou.hydrateRoot;const kv="modulepreload",bv=function(e){return"/"+e},Du={},Tl=function(t,n,r){let a=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const f=document.querySelector("meta[property=csp-nonce]"),p=(f==null?void 0:f.nonce)||(f==null?void 0:f.getAttribute("nonce"));a=Promise.allSettled(n.map(h=>{if(h=bv(h),h in Du)return;Du[h]=!0;const g=h.endsWith(".css"),E=g?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${h}"]${E}`))return;const N=document.createElement("link");if(N.rel=g?"stylesheet":kv,g||(N.as="script"),N.crossOrigin="",N.href=h,p&&N.setAttribute("nonce",p),document.head.appendChild(N),g)return new Promise((b,P)=>{N.addEventListener("load",b),N.addEventListener("error",()=>P(new Error(`Unable to preload CSS for ${h}`)))})}))}function o(f){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=f,window.dispatchEvent(p),!p.defaultPrevented)throw f}return a.then(f=>{for(const p of f||[])p.status==="rejected"&&o(p.reason);return t().catch(o)})},Aa={primaryColor:"#1677ff",themeMode:"system",ktv:!1,lyric2line:!0,progressMemory:!0,showComments:!0,smtc:!0,filenameFormat:"artist_song",writeMeta:!0,metaFields:{name:!0,artist:!0,album:!0,cover:!0,lyrics:!1,date:!1},zipEnabled:!1,batchWriteMeta:!0,batchZip:!0,lyricFormat:"lrc",lyricFont:1,cookiePrefs:{functional:!0,accepted:!1}},c={currentSong:null,lyrics:[],lyricsTrans:[],rawLyric:null,rawTlyric:null,rawYrc:null,currentTab:"search",commentOffset:0,commentTotal:0,commentHasMore:!1,commentPage:1,commentReply:null,settings:{...Aa,metaFields:{...Aa.metaFields},cookiePrefs:{...Aa.cookiePrefs}},adminAuthed:!1,adminPassword:"",adminQrTimer:null,adminUnikey:"",personal:{authed:!1,qrTimer:null,unikey:"",user:null,playlists:[],current:null,cookie:""},global:{user:null,playlists:[],current:null,playQueue:[],playQueueIndex:0},parseAccount:"admin",levelsOk:[],lyricOffset:0,currentCollection:null,podcast:{hotLoaded:!1,hotCate:null,hotOffset:0,radio:null,radioId:null,program:null,offset:0,count:0,asc:!0},auth:{user:null,checked:!1,annSeen:""},toplistLoaded:!1,collGen:{},dark:!1};let Jf=0;const Pl=new Set;function xn(){Jf++,Pl.forEach(e=>e())}function Nv(e){return Pl.add(e),()=>{Pl.delete(e)}}function Sv(){return Jf}function ep(){return Mr.useSyncExternalStore(Nv,Sv)}let Ev=0;const Qi=[];function k(e,t){const n=t||"info",r=++Ev;Qi.push({id:r,msg:e,type:n}),xn(),setTimeout(()=>{const a=Qi.findIndex(o=>o.id===r);a>=0&&(Qi.splice(a,1),xn())},2900)}const Kt=[];let _o=!1;function yt(e){return Kt.indexOf(e)!==-1}function xr(e){Kt.indexOf(e)===-1&&Kt.push(e),xn()}function Rt(e){const t=Kt.indexOf(e);t!==-1&&Kt.splice(t,1),xn()}function Cv(){return Kt.length?Kt[Kt.length-1]:null}function _v(){const e=Cv();return e?e==="stats-modal"||e==="cookie-modal"?(Tl(()=>Promise.resolve().then(()=>tp),void 0).then(t=>{const n=t.__legacyApi;e==="stats-modal"?n.closeStatsModal():n.closeCookieModal()}),Rt(e),!0):(Rt(e),!0):!1}function Il(){return _o}function Fu(){_o=!0,xn()}function Ra(){_o=!1,xn()}function Lv(e,t){window.handleAuthExpired?window.handleAuthExpired(e,t):k(e,"warning")}function Tv(){var e=function(s){return document.querySelector(s)},t=function(s){return Array.prototype.slice.call(document.querySelectorAll(s))},n={0:[["standard","标准音质"],["exhigh","极高音质"]],1:[["standard","标准音质"],["exhigh","极高音质"],["lossless","无损音质"],["hires","Hi-Res音质"]],11:[["standard","标准音质"],["exhigh","极高音质"],["lossless","无损音质"],["hires","Hi-Res音质"]],100:[["standard","标准音质"],["exhigh","极高音质"],["lossless","无损音质"],["hires","Hi-Res音质"]],10:[["standard","标准音质"],["exhigh","极高音质"],["lossless","无损音质"],["hires","Hi-Res音质"],["sky","沉浸环绕声"],["jyeffect","高清环绕声"],["jymaster","超清母带"],["dolby","杜比全景声"]],110:[["standard","标准音质"],["exhigh","极高音质"],["lossless","无损音质"],["hires","Hi-Res音质"],["sky","沉浸环绕声"],["jyeffect","高清环绕声"],["jymaster","超清母带"],["dolby","杜比全景声"]]},r=["jymaster","jyeffect","sky","hires","lossless","exhigh","standard"],a=[{name:"默认蓝",color:"#1677ff"},{name:"红色",color:"#f5222d"},{name:"橙色",color:"#fa8c16"},{name:"火山",color:"#d4380d"},{name:"青色",color:"#13c2c2"},{name:"绿色",color:"#52c41a"},{name:"粉红",color:"#eb2f96"},{name:"紫罗兰",color:"#722ed1"}];function o(){var s={};try{s=JSON.parse(localStorage.getItem("netease_settings")||"{}")||{}}catch{s={}}typeof s!="object"&&(s={});try{localStorage.getItem("netease_batchzip_migrated")||(s.batchZip!==!0&&delete s.batchZip,localStorage.setItem("netease_settings",JSON.stringify(s)),localStorage.setItem("netease_batchzip_migrated","1"))}catch{}typeof s.primaryColor=="string"&&/^#[0-9a-fA-F]{6}$/.test(s.primaryColor)&&(c.settings.primaryColor=s.primaryColor),s.themeMode&&(c.settings.themeMode=s.themeMode),["ktv","lyric2line","progressMemory","showComments","smtc","writeMeta","batchWriteMeta","batchZip","zipEnabled"].forEach(function(l){typeof s[l]=="boolean"&&(c.settings[l]=s[l])}),s.filenameFormat&&(c.settings.filenameFormat=s.filenameFormat),s.lyricFormat&&(c.settings.lyricFormat=s.lyricFormat),typeof s.lyricFont=="number"&&isFinite(s.lyricFont)&&(c.settings.lyricFont=Math.max(.7,Math.min(1.6,Math.round(s.lyricFont*20)/20))),s.metaFields&&typeof s.metaFields=="object"&&Object.keys(c.settings.metaFields).forEach(function(l){typeof s.metaFields[l]=="boolean"&&(c.settings.metaFields[l]=s.metaFields[l])}),s.cookiePrefs&&typeof s.cookiePrefs=="object"&&(typeof s.cookiePrefs.functional=="boolean"&&(c.settings.cookiePrefs.functional=s.cookiePrefs.functional),typeof s.cookiePrefs.accepted=="boolean"&&(c.settings.cookiePrefs.accepted=s.cookiePrefs.accepted))}function f(){try{return localStorage.setItem("netease_settings",JSON.stringify(c.settings)),!0}catch{return!1}}function p(){var s=document.documentElement;s.classList.add("theme-fading"),setTimeout(function(){s.classList.remove("theme-fading")},320);var l=c.settings.themeMode,u=l==="dark"||l==="system"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches;s.classList.toggle("dark",u),s.style.setProperty("--color-primary",c.settings.primaryColor),s.style.setProperty("--color-primary-bg",h(c.settings.primaryColor,.12)),s.style.setProperty("--color-primary-hover",h(c.settings.primaryColor,.9)),s.style.setProperty("--color-primary-active",h(c.settings.primaryColor,.7)),e("#theme-toggle").innerHTML=u?"☀️ 浅色":"🌙 深色"}function h(s,l){var u=parseInt(s.slice(1,3),16),d=parseInt(s.slice(3,5),16),m=parseInt(s.slice(5,7),16);if(l>.5){var y=1-l;return"rgb("+Math.round(u+(255-u)*y)+","+Math.round(d+(255-d)*y)+","+Math.round(m+(255-m)*y)+")"}return"rgba("+u+","+d+","+m+","+l+")"}function g(){var s=e("#color-palette");s.innerHTML=a.map(function(l){return'
'}).join(""),t("#mode-seg .seg-item").forEach(function(l){l.classList.toggle("active",l.getAttribute("data-mode")===c.settings.themeMode)}),e("#switch-ktv").classList.toggle("on",c.settings.ktv),e("#switch-lyric2line").classList.toggle("on",c.settings.lyric2line),e("#switch-progress").classList.toggle("on",c.settings.progressMemory),e("#switch-comments").classList.toggle("on",c.settings.showComments),e("#switch-smtc").classList.toggle("on",c.settings.smtc),e("#cfg-filename-format").value=c.settings.filenameFormat,e("#cfg-write-meta").classList.toggle("on",c.settings.writeMeta),e("#cfg-zip").classList.toggle("on",c.settings.zipEnabled),e("#cfg-batch-meta").classList.toggle("on",c.settings.batchWriteMeta),e("#cfg-batch-zip").classList.toggle("on",c.settings.batchZip),e("#cfg-lyric-format").value=c.settings.lyricFormat,t("#cfg-meta-fields-wrap input[type=checkbox]").forEach(function(l){l.checked=!!c.settings.metaFields[l.getAttribute("data-field")],l.disabled=!c.settings.writeMeta}),e("#switch-cookie-func").classList.toggle("on",c.settings.cookiePrefs.functional),e("#switch-cookie-func").setAttribute("aria-checked",c.settings.cookiePrefs.functional?"true":"false"),e("#cookie-func-tag").textContent=c.settings.cookiePrefs.functional?"已启用":"已禁用",t("#color-palette .color-dot").forEach(function(l){l.setAttribute("tabindex","0"),l.setAttribute("role","button")})}e("#color-palette").addEventListener("click",function(s){var l=s.target.closest(".color-dot");l&&(c.settings.primaryColor=l.getAttribute("data-color"),g(),p())}),e("#color-palette").addEventListener("keydown",function(s){if(!(s.key!=="Enter"&&s.key!==" ")){var l=s.target.closest?s.target.closest(".color-dot"):null;l&&(s.preventDefault(),l.click())}}),e("#mode-seg").addEventListener("click",function(s){var l=s.target.closest(".seg-item");l&&(c.settings.themeMode=l.getAttribute("data-mode"),g(),p())}),e("#mode-seg").addEventListener("keydown",function(s){if(!(s.key!=="Enter"&&s.key!==" ")){var l=s.target.closest?s.target.closest(".seg-item"):null;l&&(s.preventDefault(),l.click())}});function E(s,l){var u=e(s);if(u){u.setAttribute("tabindex","0"),u.setAttribute("role","switch");var d=function(){c.settings[l]=!c.settings[l],g(),I()};u.addEventListener("click",d),u.addEventListener("keydown",function(m){(m.key==="Enter"||m.key===" ")&&(m.preventDefault(),d())})}}E("#switch-ktv","ktv"),E("#switch-lyric2line","lyric2line"),E("#switch-progress","progressMemory"),E("#switch-comments","showComments"),E("#switch-smtc","smtc");function N(s,l){var u=e(s);u&&(u.setAttribute("tabindex","0"),u.setAttribute("role","switch"),u.addEventListener("click",l),u.addEventListener("keydown",function(d){(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),l())}))}e("#cfg-filename-format").addEventListener("change",function(){c.settings.filenameFormat=this.value}),N("#cfg-write-meta",function(){c.settings.writeMeta=!c.settings.writeMeta,g()}),N("#cfg-zip",function(){c.settings.zipEnabled=!c.settings.zipEnabled,g()}),N("#cfg-batch-meta",function(){c.settings.batchWriteMeta=!c.settings.batchWriteMeta,g()}),N("#cfg-batch-zip",function(){c.settings.batchZip=!c.settings.batchZip,g()}),e("#cfg-lyric-format").addEventListener("change",function(){c.settings.lyricFormat=this.value}),e("#cfg-meta-fields-wrap").addEventListener("change",function(s){var l=s.target;l.getAttribute("type")==="checkbox"&&(c.settings.metaFields[l.getAttribute("data-field")]=l.checked)});function b(s){k(f()?s:"设置未能保存(浏览器存储不可用),仅本次生效","warning")}e("#cfg-save-download").addEventListener("click",function(){b("下载配置已保存")}),e("#cfg-save-batch").addEventListener("click",function(){b("批量下载配置已保存")}),e("#cfg-save-lyric").addEventListener("click",function(){b("歌词配置已保存")});function P(){var s=Object.keys(c.settings.metaFields).filter(function(l){return c.settings.metaFields[l]});return{filename_format:c.settings.filenameFormat,write_meta:c.settings.writeMeta?"true":"false",meta_fields:c.settings.writeMeta&&s.length?s.join(","):"__none__",lyric_format:c.settings.lyricFormat,zip:c.settings.zipEnabled?"true":"false"}}function I(){e("#comment-panel").hidden=!(c.settings.showComments&&c.currentSong),nn(),c.settings.showComments&&c.currentSong&&!c.commentTotal&&!c._commentsLoading&&ir(c.currentSong.id,1,!0),!c.settings.ktv&&c.ktvRunning&&(c.ktvRunning=!1),c.rawLyric!=null&&(c.lyrics=Io(),Fs())}e("#settings-save").addEventListener("click",function(){b("设置已保存"),tn()}),e("#settings-reset").addEventListener("click",function(){c.settings={primaryColor:"#1677ff",themeMode:"system",ktv:!1,lyric2line:!0,progressMemory:!0,showComments:!0,smtc:!0,filenameFormat:"artist_song",writeMeta:!0,metaFields:{name:!0,artist:!0,album:!0,cover:!0,lyrics:!1,date:!1},zipEnabled:!1,batchWriteMeta:!0,batchZip:!0,lyricFormat:"lrc",lyricFont:1,cookiePrefs:{functional:!0,accepted:!1}},g(),p(),I(),nr(),f(),k("已恢复默认设置","info")});var M=null;function Y(){U("/api/topen",{}).then(function(s){if(s.status!==200)throw new Error(s.message||"获取统计失败");var l=s.data;e("#stat-total").textContent=je(l.total),e("#stat-endpoints").textContent=l.endpoint_count,e("#stat-max").textContent=je(l.max_count);var u=new Date;e("#stats-refresh-time").textContent=String(u.getHours()).padStart(2,"0")+":"+String(u.getMinutes()).padStart(2,"0")+":"+String(u.getSeconds()).padStart(2,"0");var d=l.endpoints||[];e("#stats-list").innerHTML=d.map(function(m,y){return'
#'+(y+1)+'
'+j(m.name)+'
'+j(m.path)+'
'+j(String(je(m.count)))+"次 ("+j(String(m.percent))+"%)
"}).join("")||'
暂无请求记录
'}).catch(function(s){k(s.message||"获取统计失败","error")})}function x(){xr("stats-modal"),Y(),M&&clearInterval(M),M=setInterval(Y,1e4)}function v(){Rt("stats-modal"),M&&(clearInterval(M),M=null)}e("#cfg-stats-view").addEventListener("click",x),e("#cfg-stats-refresh").addEventListener("click",x),e("#stats-refresh-btn").addEventListener("click",Y),e("#stats-close").addEventListener("click",v),e("#stats-modal").addEventListener("click",function(s){s.target===this&&v()});var w=!1,_=null,z=0,D=null;function O(){_&&(clearInterval(_),_=null)}function F(){var s=e("#cookie-agree-continue");if(s){if(z>0){s.disabled=!0,s.textContent="请阅读协议("+z+"s)";return}s.textContent="同意并继续注册",s.disabled=!e("#cookie-agree").checked}}function te(s){w=s,e("#cookie-withdraw").hidden=s,e("#cookie-save").hidden=s;var l=e("#cookie-agree-continue");l&&(l.hidden=!s);var u=e("#cookie-modal .modal-title");u&&(D===null&&(D=u.textContent),u.textContent=s?"注册前请阅读并同意协议":D)}function $(s){document.getElementById("announce-modal"),yt("announce-modal")&&Rt("announce-modal");var l=s==="register"&&!c.settings.cookiePrefs.accepted;e("#cookie-agree").checked=c.settings.cookiePrefs.accepted,g(),te(l),e("#cookie-modal"),xr("cookie-modal"),O(),l&&(z=16,F(),_=setInterval(function(){if(!yt("cookie-modal")){O();return}z=Math.max(0,z-1),F(),z<=0&&O()},1e3))}function fe(){O(),z=0,Rt("cookie-modal"),te(!1)}e("#cfg-cookie-prefs").addEventListener("click",function(){$()}),e("#cookie-close").addEventListener("click",fe),e("#cookie-modal").addEventListener("click",function(s){s.target===this&&fe()}),e("#cookie-agree").addEventListener("change",function(){w&&F()});var _t=function(){c.settings.cookiePrefs.functional=!c.settings.cookiePrefs.functional,g(),k(c.settings.cookiePrefs.functional?"功能性 Cookie 已启用":"功能性 Cookie 已禁用(解析与下载将不可用)","warning")};e("#switch-cookie-func").addEventListener("click",_t),e("#switch-cookie-func").addEventListener("keydown",function(s){(s.key==="Enter"||s.key===" ")&&(s.preventDefault(),_t())}),e("#cookie-save").addEventListener("click",function(){var s=e("#cookie-agree").checked;if(!s){k("请先勾选已阅读并同意《用户协议》和《隐私政策》","warning");return}c.settings.cookiePrefs.accepted=!0,f(),fe(),k("Cookie 偏好已保存","success")}),e("#cookie-agree-continue").addEventListener("click",function(){if(!this.disabled){if(!e("#cookie-agree").checked){k("请先勾选已阅读并同意《用户协议》和《隐私政策》","warning");return}c.settings.cookiePrefs.accepted=!0,f(),g(),fe(),k("已同意《用户协议》与《隐私政策》,请继续注册","success");var s=e("#register-modal");if(s){xr("register-modal");var l=e("#reg-username");if(l)try{l.focus()}catch{}}}}),e("#cookie-withdraw").addEventListener("click",function(){c.settings.cookiePrefs={functional:!0,accepted:!1},f(),g(),fe(),k("已撤回同意","info")});function Te(s){if(!c.settings.cookiePrefs.accepted){var l=s==="register";return k(l?"注册前请先阅读并同意《用户协议》与《隐私政策》":"请先阅读并同意《用户协议》和《隐私政策》","warning"),$(l?"register":void 0),!1}return s!=="register"&&!c.settings.cookiePrefs.functional?(k("功能性 Cookie 已关闭,无法解析与下载音乐,请在「设置 → 隐私与协议」中开启","warning"),$(),!1):!0}window.SITE_COOKIE_GATE=Te;var Lt=null;function Ms(){Lt=document.activeElement,Fu(),Fu();var s=e("#settings-drawer").querySelector('button, [href], input, select, [tabindex]:not([tabindex="-1"])');if(s)try{s.focus()}catch{}}function tn(){if(Ra(),Ra(),Lt&&typeof Lt.focus=="function")try{Lt.focus()}catch{}Lt=null}document.addEventListener("keydown",function(s){if(s.key==="Escape"){var l=_v();l||Il()&&Ra()}}),e("#btn-settings").addEventListener("click",Ms),e("#drawer-close").addEventListener("click",tn),e("#drawer-mask").addEventListener("click",tn);var Tt=[{v:"2.4.0",date:"2026-09-21",items:["修复:解析结果在快速连续解析两首歌时可能互相覆盖(串台)的问题","修复:超长曲目(100 分钟以上)歌词第 100 分钟起丢失的问题","修复:连播切歌后歌词/评论区仍显示上一首的问题","修复:歌名含特殊字符时下载领取失败的问题","修复:老内核浏览器(Chrome 57-62)操作按钮卡加载的问题","安全:登录失败次数过多临时锁定;公网错误信息不再暴露内部细节","优化:下载结果保留期与「领取」入口统一为 35 分钟"]},{v:"2.1.0",date:"2026-08-28",items:["调整:计费改为按次计费,一首歌消耗 1 次,歌单打包下载按歌曲数量扣减(如 100 首歌单打包 = 100 次)","调整:免费试用改为 3 次(3 首歌),注册页领取,每台设备限领一次","调整:卡密升级为次数卡,后台可生成 3/10/50/100/500/2000 次卡"]},{v:"1.6.0",date:"2026-08-28",items:["新增:账号系统(强制登录):邮箱验证码注册、免费体验5分钟(设备识别防重复)、使用时长管理","新增:管理后台:用户管理(删除/时长修改/网易云Cookie查看)、全局Cookie管理、SMTP邮箱配置、成功/失败日志、次数卡密生成、公告设置、数据库备份/下载/上传恢复/定时备份","新增:个人中心:剩余时长、卡密充值、公告查看、版本日志、联系方式、退出登录","新增:导航栏登录/注册按钮,登录后显示头像,管理员/普通用户角色识别与定向跳转","调整:全局账号歌单仅管理员可见;解析功能需登录后使用"]},{v:"1.5.0",date:"2026-08-28",items:["新增:播客解析模块,支持电台/单集链接与ID解析、在线试听、音频直链获取","新增:播客下载方式:单集服务器下载(ZIP 可选)、整台播客打包下载,接入任务进度悬浮窗","新增:播客搜索与热门播客分类卡片墙","新增:「关于网站」菜单:项目介绍、功能说明、更新日志与作者信息"]},{v:"1.4.8",date:"2026-08-05",items:["新增:单曲解析结果下方新增「下载歌词」按钮","新增:播放器新增「播放进度记忆」功能","优化:歌词下载自动过滤 YRC/LRC 头部的 JSON 元数据行"]},{v:"1.4.7",date:"2026-07-22",items:["新增:设置「下载配置」分类中加入「写入字段」勾选区","优化:未勾选字段不会覆盖原音频文件中的值"]},{v:"1.4.6",date:"2026-07-21",items:["新增:单曲解析结果新增「自定义元数据」开关","优化:每次解析新歌曲时自动重置自定义元数据"]},{v:"1.4.5",date:"2026-07-20",items:["新增:逐字歌词(KTV 模式),支持逐字渐变高亮","优化:歌词头部元数据(作词/作曲/编曲等)自动识别展示"]},{v:"1.4.4",date:"2026-07-19",items:["新增:沉浸环绕声(sky)支持子类型 c51 / ste / aac","优化:兼容网易云逐字歌词(YRC)"]},{v:"1.4.3",date:"2026-07-13",items:["新增:歌手解析 Tab,支持热门 / 全部歌曲","优化:更新日志改为独立页面"]},{v:"1.4.2",date:"2026-07-13",items:["新增:8 种主题颜色,应用到全站强调色","新增:独立「歌词」分类设置","优化:榜单改为响应式卡片网格"]},{v:"1.4.1",date:"2026-07-05",items:["新增:GitHub Issues 同步页","新增:API 请求失败通知"]},{v:"1.4.0",date:"2026-07-02",items:["重构:设置 / 统计由右侧 Drawer 改为独立页面"]},{v:"1.3.9",date:"2026-06-21",items:["重构:移除 APlayer,自研全新 AudioPlayer","优化:LRC 歌词毫秒精度高亮、点击歌词行跳转"]},{v:"1.3.8",date:"2026-06-20",items:["新增:单曲信息下方评论区,支持分页加载","优化:评论显示 VIP / SVIP / 音乐包标识、IP 归属地"]},{v:"1.3.6",date:"2026-05-24",items:["新增:所有官方榜单全量支持","新增:歌单 / 专辑批量下载本页"]},{v:"1.2.0",date:"2026-03-29",items:["修复部分歌曲解析失败的问题","优化界面交互体验"]}];function A(){e("#changelog-body").innerHTML=Tt.map(function(s){return'
v'+s.v+''+s.date+'
    '+s.items.map(function(l){return"
  • "+j(l)+"
  • "}).join("")+"
"}).join("")}function H(){A(),xr("changelog-modal")}e("#btn-changelog").addEventListener("click",H),e("#changelog-close").addEventListener("click",function(){Rt("changelog-modal")}),e("#changelog-modal").addEventListener("click",function(s){s.target===this&&Rt("changelog-modal")});function q(){setTimeout(function(){var s=e("#page-loading");s&&s.remove()},300)}document.readyState==="complete"?q():window.addEventListener("load",q),e("#theme-toggle").addEventListener("click",function(){c.settings.themeMode=document.documentElement.classList.contains("dark")?"light":"dark",g(),p(),f()});var Z=0;function G(){var s=++Z;U("/account/vip",{account:c.parseAccount,user_cookie:c.parseAccount==="user"?c.personal.cookie:""}).then(function(l){if(s===Z){if(l.status!==200)throw new Error(l.message||"获取账号信息失败");var u=l.data||{},d=e("#account-vip-badge"),m=u.account==="user",y=(m?"个人账号":"全局账号")+" · "+(u.vip_name||"未知");d.textContent=y,m?(d.style.borderColor="var(--color-warning)",d.style.color="var(--color-warning)",d.style.background="rgba(250,173,20,0.12)"):(d.style.borderColor="var(--color-primary)",d.style.color="var(--color-primary)",d.style.background="var(--color-primary-bg)");var C=[];u.levels_ok&&u.levels_ok.length?(c.levelsOk=u.levels_ok,C=u.levels_ok.map(function(T){return[T,ni(T)]})):(c.levelsOk=[],C=n[u.vip_type]||n[0]),e("#account-qualities").textContent="可解析:"+C.map(function(T){return T[1]}).join("、");var S=e("#account-note");m&&!u.logged_in?S.innerHTML="⚠️ 个人账号未登录,当前仍使用全局账号解析。可在「个人歌单」扫码登录你自己的账号。":m?S.innerHTML="💡 当前使用个人账号解析与下载("+j(u.nickname||"")+" · "+j(u.vip_name||"")+")。可在「个人歌单」随时切换回全局账号。":u.logged_in?S.innerHTML="💡 小提示:可在「个人歌单」登录你自己的 SVIP 网易云音乐账号,并切换为个人账号解析,即可下载/试听更高音质。":S.innerHTML="💡 小提示:可在「个人歌单」登录你自己的 SVIP 网易云音乐账号,并切换为个人账号解析,即可下载/试听更高音质。"+(u.note?"
⚠️ "+j(u.note)+";当前检测为「"+j(u.vip_name||"普通用户")+"」。可在「管理员设置」重新扫码登录全局账号。":"
⚠️ 全局 Cookie 未关联有效账号信息,可在「管理员设置」重新扫码登录。")}}).catch(function(l){s===Z&&(e("#account-vip-badge").textContent="获取失败",c.levelsOk=[],k(l.message||"获取账号信息失败","error"))})}e("#account-refresh").addEventListener("click",G);function we(s){c.currentTab=s,xn(),typeof rr=="function"&&rr(!1),setTimeout(function(){var l={search:"#search-input",song:"#song-input",playlist:"#playlist-input",album:"#album-input",artist:"#artist-input",admin:"#admin-password"}[s];if(l){var u=e(l);u&&!u.value&&u.focus()}},60),s==="toplist"&&!c.toplistLoaded&&Ko(),s==="admin"&&!c.adminAuthed&&(e("#admin-gate").hidden=!1,e("#admin-content").hidden=!0),s==="personal"&&Ws(),s==="global"&&sc(),s==="podcast"&&!c.podcast.hotLoaded&&Vs(),s==="about"&&!e("#about-changelog").innerHTML&&Cp(),s==="usercenter"&&window.renderSITEUserCenter&&window.renderSITEUserCenter(),s==="useradmin"&&window.renderSITEUserCenter&&window.renderSITEUserCenter()}e("#brand-home").addEventListener("click",function(){window.scrollTo({top:0,behavior:"smooth"}),we("search")});function Ze(s){if(s=(s||"").trim(),!s)return"";if(s.indexOf("163cn.tv")!==-1)return s;var l=s.match(/[?&]id=(\d+)/);if(l)return l[1];var u=s.match(/\b\d{4,}\b/);return u?u[0]:s}function j(s){return String(s??"").replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}function at(s){(isNaN(s)||s<0)&&(s=0);var l=Math.floor(s/60),u=Math.floor(s%60);return(l<10?"0":"")+l+":"+(u<10?"0":"")+u}function je(s){return s=s||0,s>=1e8?(s/1e8).toFixed(1)+"亿":s>=1e4?(s/1e4).toFixed(1)+"万":String(s)}function np(s){if(!s)return"";var l=Math.floor(Date.now()/1e3-s/1e3);if(l<60)return"刚刚";if(l<3600)return Math.floor(l/60)+" 分钟前";if(l<86400)return Math.floor(l/3600)+" 小时前";if(l<86400*30)return Math.floor(l/86400)+" 天前";var u=new Date(s);return u.getFullYear()+"-"+String(u.getMonth()+1).padStart(2,"0")+"-"+String(u.getDate()).padStart(2,"0")}function ni(s){if(s==="auto")return"最高音质(自动)";var l={standard:"标准音质",exhigh:"极高音质",lossless:"无损音质",hires:"Hi-Res音质",sky:"沉浸环绕声",jyeffect:"高清环绕声",jymaster:"超清母带",dolby:"杜比全景声"};return l[s]||s}function U(s,l){var u=Object.keys(l).map(function(y){return encodeURIComponent(y)+"="+encodeURIComponent(l[y]==null?"":l[y])}).join("&"),d=function(){var y=/\/(playlist|album|artist_songs|podcast\/parse)$/.test(s),C=typeof AbortController<"u"?new AbortController:null,S=null;return C&&(S=setTimeout(function(){try{C.abort()}catch{}},y?45e3:15e3)),fetch(s,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:u,signal:C?C.signal:void 0}).then(function(T){return T.json().catch(function(){throw new Error("服务响应异常")}).then(function(B){return S&&clearTimeout(S),B},function(B){throw S&&clearTimeout(S),B})},function(T){throw S&&clearTimeout(S),T}).then(function(T){return T&&T.status===401&&(T.error_code==="unauthorized"||T.error_code==="expired")&&s.indexOf("/auth/")!==0&&Lv(T.message||"请先登录",T.error_code==="expired"),T})},m=s.indexOf("download")===-1&&s.indexOf("/auth/")!==0&&s.indexOf("/api/task")===-1&&s.indexOf("/user/")===-1&&s.indexOf("/comments")===-1;return d().catch(function(y){var C=y&&(y.name==="TypeError"||y.name==="AbortError"||y.message==="服务响应异常");if(m&&C)return new Promise(function(S){setTimeout(S,700)}).then(d);throw y})}function pt(){return window.SITE_LOGGED_IN?!0:(window.handleAuthExpired?window.handleAuthExpired("解析功能需要登录后才能使用",!1):k("解析功能需要登录后才能使用","warning"),!1)}function V(s,l,u){if(s)if(l)s.dataset.originText||(s.dataset.originText=s.textContent),s.dataset.loadingCount=String((parseInt(s.dataset.loadingCount,10)||0)+1),s.disabled=!0,s.innerHTML=' '+j(u||"处理中...");else{var d=(parseInt(s.dataset.loadingCount,10)||1)-1;if(d>0){s.dataset.loadingCount=String(d);return}s.disabled=!1,delete s.dataset.loadingCount,s.dataset.originText&&(s.textContent=s.dataset.originText,delete s.dataset.originText)}}var zs="netease_parse_history";function As(){var s=null;try{s=JSON.parse(localStorage.getItem(zs)||"[]")}catch{return[]}return Array.isArray(s)?s.filter(function(l){return l&&typeof l=="object"&&l.id!=null&&typeof l.name<"u"}).map(function(l){return{id:String(l.id),name:String(l.name==null?l.id:l.name),t:Number(l.t)||0}}):[]}function rp(s,l){var u=As();u=u.filter(function(d){return String(d.id)!==String(s)}),u.unshift({id:String(s),name:l||String(s),t:Date.now()}),u.length>8&&(u.length=8);try{localStorage.setItem(zs,JSON.stringify(u))}catch{}ri()}function ri(){var s=As(),l=e("#history-row"),u=e("#history-list");if(!s.length){l.hidden=!0;return}l.hidden=!1,u.innerHTML=s.map(function(d){return''+j(d.name)+'×'}).join(" ")}e("#history-list").addEventListener("click",function(s){var l=s.target.closest(".tag-close");if(l){var u=l.getAttribute("data-close"),d=As().filter(function(y){return String(y.id)!==u});try{localStorage.setItem(zs,JSON.stringify(d))}catch{}ri();return}var m=s.target.closest(".tag");m&&(e("#song-input").value=m.getAttribute("data-id"),we("song"),ii())}),ri();var Rs=0;function Lo(){if(pt()){var s=e("#search-input").value.trim();if(!s){k("请输入搜索关键词","warning"),e("#search-input").focus();return}var l=e("#search-btn"),u=++Rs;V(l,!0,"搜索中..."),U("/search",{keyword:s,limit:e("#search-limit").value,type:e("#search-type").value}).then(function(d){if(u===Rs){if(d.status!==200)throw new Error(d.message||"搜索失败");ip(d.data||[])}}).catch(function(d){u===Rs&&k(d.message||"搜索失败,请重试","error")}).finally(function(){V(l,!1)})}}function ip(s){var l=e("#search-list"),u=e("#search-result");if(!s||!s.length){u.hidden=!1,e("#search-count").textContent="共 0 条",l.innerHTML='
🎵
未找到相关内容
';return}e("#search-count").textContent="共 "+s.length+" 条",l.innerHTML=s.map(function(d){var m="";return d.type==="song"?m='
'+j(d.name)+''+j(d.album||"")+'
'+j(d.artists||"")+'
':d.type==="playlist"?m='
'+j(d.name)+'歌单
by '+j(d.creator||"未知")+" · "+je(d.trackCount)+' 首
':d.type==="album"?m='
'+j(d.name)+'专辑
'+j(d.artists||"")+'
':d.type==="artist"&&(m='
'+j(d.name)+'歌手
'+j(d.alias||"")+'
'),m}).join(""),u.hidden=!1}e("#search-btn").addEventListener("click",Lo),e("#search-input").addEventListener("keydown",function(s){s.key==="Enter"&&Lo()});function To(s){return s.account=c.parseAccount,c.parseAccount==="user"&&(s.user_cookie=c.personal.cookie),U("/song",s).then(function(l){if(l.status===401&&c.parseAccount==="user"){c.parseAccount="admin";try{localStorage.setItem("netease_parse_account","admin")}catch{}return G(),rn(),k("个人账号未登录或已失效,已自动切换为全局账号解析","warning"),s.account="admin",U("/song",s)}return l})}function Os(s){var l=e("#global-level").value;if(l!=="auto")return Promise.resolve(l);var u=c.levelsOk&&c.levelsOk.length?c.levelsOk:r,d=0;return new Promise(function(m){(function y(){if(d>=u.length){m("standard");return}To({url:s,level:u[d],type:"url"}).then(function(C){C.status===200&&C.data&&C.data.url&&C.data.level===u[d]?m(u[d]):(d++,y())}).catch(function(){d++,y()})})()})}var Ds=0;function ii(){if(pt()){var s=e("#song-input").value.trim();if(!s){k("请输入歌曲ID或网易云音乐链接","warning"),e("#song-input").focus();return}if(Te()){var l=e("#parse-btn"),u=++Ds;V(l,!0,"解析中..."),e("#song-result .song-detail").hidden=!0,e("#lyric-panel").hidden=!0,e("#comment-panel").hidden=!0,c.lyrics=[],Os(s).then(function(d){return To({url:s,level:d,type:"json"})}).then(function(d){if(u===Ds){if(d.status!==200)throw new Error(d.data&&d.data.msg||d.message||"解析失败");ap(d.data)}}).catch(function(d){u===Ds&&k(d.message||"解析失败,请检查歌曲ID或链接","error")}).then(function(){V(l,!1)},function(){V(l,!1)})}}}function sp(s,l){e("#song-input").value=s,we("song"),e("#song-input").focus(),l&&k("正在解析:"+l,"info"),ii()}function ap(s){c.currentSong=s,c.global.playQueue=[],c.global.playQueueIndex=0,c.lyrics=[],c.rawLyric=null,c.rawTlyric=null,c.commentPage=1,c.commentTotal=0,c.commentReply=null,e("#detail-cover").src=s.pic||"",e("#detail-name").textContent=s.name||"未知歌曲",e("#detail-artist").textContent=s.ar_name||"未知歌手",e("#detail-album").textContent=s.al_name||"未知专辑",e("#detail-level").textContent="音质:"+ni(s.level),e("#detail-size").textContent=s.size||"大小未知";var l=e("#detail-tip");s.url?l.hidden=!0:(l.hidden=!1,l.textContent="⚠️ 当前音质无法获取下载链接,可能是版权限制或音质不支持,请尝试其他音质。"),e("#song-result").hidden=!1,e("#song-result .song-detail").hidden=!1,window.scrollTo({top:e("#song-result").offsetTop-80,behavior:"smooth"}),c.lyricOffset=0,e("#lyric-offset-label").textContent="偏移 0.00s",rp(s.id,s.name),cp(s.lyric||"",s.tlyric||"",s.yrc||""),s.url?Hs(s.url,s.name||"",s.ar_name||"",s.pic||""):mp(),c.settings.showComments?(e("#comment-panel").hidden=!1,nn(),ir(s.id,1,!0)):e("#comment-panel").hidden=!0}e("#parse-btn").addEventListener("click",ii),e("#song-input").addEventListener("keydown",function(s){s.key==="Enter"&&ii()});function Po(s){var l=String(s||"").split(` +`),u=[];return l.forEach(function(d,m){var y=d.match(/\[(\d{1,3}):(\d{1,2}[.:]?\d*)]/);if(y){var C=parseInt(y[1],10),S=parseFloat(y[2].replace(":","."))||0,T=C*60+S,B=d.replace(/\[\d{1,3}:\d{1,2}[.:]?\d*]/g,"").trim();B=B.replace(/\s\s+/g," "),B&&u.push({time:T,text:B,index:m})}}),u.sort(function(d,m){return d.time-m.time}),u}function lp(s,l){var u=Po(l);if(!u.length)return s;var d={};return s.map(function(m){for(var y=null,C=1/0,S=-1,T=0;T.5){if(u[T].time>m.time+.5)break;continue}if(B=Math.max(1,Math.ceil(s.length*.5))){var u=l.slice();s.forEach(function(d){var m=l.some(function(y){return Math.abs(y.time-d.time)<=1});m||u.push(d)}),u.sort(function(d,m){return d.time-m.time}),u.forEach(function(d,m){d.index=m}),s=u}return c.rawTlyric&&(s=lp(s,c.rawTlyric)),s}function cp(s,l,u){c.rawLyric=s||"",c.rawTlyric=l||"",c.rawYrc=u||"",c.lyrics=Io(),Fs();var d=e("#lyric-panel");d.hidden=!1,c.lyrics.length||(e("#lyric-box").innerHTML='
暂无歌词
')}function Fs(){var s=e("#lyric-box");if(!c.lyrics.length){s.innerHTML='
暂无歌词
';return}var l=c.settings.lyric2line;s.innerHTML=c.lyrics.map(function(u,d){var m=u.text||"♪",y=c.settings.ktv?"lyric-line ktv":"lyric-line",C;if(c.settings.ktv&&u.words&&u.words.length)y+=" kw-line",C=u.words.map(function(B){return''+j(B.c)+""}).join(""),l&&u.trans?C+='
'+j(u.trans)+"":u.trans&&(C+=' (翻译:'+j(u.trans)+")");else if(u.trans){var S=u.orig||m,T=l?S.split(` +`)[0]:S.replace(/ \(翻译:.*\)$/,"");C=j(T),l?C+='
'+j(u.trans)+"":C+=' (翻译:'+j(u.trans)+")"}else C=l?j(m).replace(/\n/g,"
"):j(m);return'
'+C+"
"}).join(""),s.scrollTop=0,c.lastActiveLine=-1,c.ktvFillIdx=-1,c.ktvWordEls=null,c.ktvLineEls=Array.prototype.slice.call(s.children)}e("#lyric-box").addEventListener("click",function(s){var l=s.target.closest(".lyric-line");if(l){var u=parseInt(l.getAttribute("data-i"),10),d=e("#player audio");d&&d.src&&c.lyrics[u]&&(d.currentTime=Math.max(0,c.lyrics[u].time-c.lyricOffset),d.paused&&d.play().catch(function(){}))}});function Mo(s){c.lyricOffset=Math.max(-30,Math.min(30,Math.round((c.lyricOffset+s)*100)/100)),e("#lyric-offset-label").textContent="偏移 "+(c.lyricOffset>0?"+":"")+c.lyricOffset.toFixed(2)+"s",k("歌词偏移:"+(c.lyricOffset>0?"+":"")+c.lyricOffset.toFixed(2)+" 秒","info");var l=e("#player audio");l&&!l.paused&&Uo(l.currentTime)}e("#lyric-delay").addEventListener("click",function(){Mo(.25)}),e("#lyric-advance").addEventListener("click",function(){Mo(-.25)});var zo=.7,Ao=1.6,up=.05;function Ro(s){return typeof s!="number"||!isFinite(s)?1:Math.max(zo,Math.min(Ao,Math.round(s*20)/20))}function nr(){c.settings.lyricFont=Ro(c.settings.lyricFont),e("#lyric-box").style.setProperty("--lyric-fs",String(c.settings.lyricFont)),e("#lyric-fs-val").textContent=Math.round(c.settings.lyricFont*100)+"%",e("#lyric-fs-dec").disabled=c.settings.lyricFont<=zo,e("#lyric-fs-inc").disabled=c.settings.lyricFont>=Ao}function Us(){return!e("#lyric-fs-pop").hidden}function rr(s){e("#lyric-fs-pop").hidden=!s,e("#lyric-fontsize").setAttribute("aria-expanded",s?"true":"false"),document.documentElement.classList.toggle("fs-pop-open",s),s&&nr()}function Oo(s){c.settings.lyricFont=Ro(c.settings.lyricFont+s*up),nr(),f()}e("#lyric-fontsize").addEventListener("click",function(){rr(!Us())}),e("#lyric-fs-inc").addEventListener("click",function(){Oo(1)}),e("#lyric-fs-dec").addEventListener("click",function(){Oo(-1)}),e("#lyric-fs-reset").addEventListener("click",function(){c.settings.lyricFont=1,nr(),f(),k("歌词字号已恢复默认","info")}),document.addEventListener("click",function(s){Us()&&(s.target.closest("#lyric-fs-pop")||s.target.closest("#lyric-fontsize")||rr(!1))},!0),document.addEventListener("keydown",function(s){if(s.key==="Escape"&&Us()){if(document.querySelector(".drawer.show, .modal-mask.show"))return;rr(!1),e("#lyric-fontsize").focus()}},!0);function Do(s){for(var l=-1,u=0;u=C.s+C.d?S.classList.contains("on")||(S.classList.add("on"),S.classList.remove("cur")):u>=C.s?(S.classList.contains("cur")||(S.classList.add("cur"),S.classList.remove("on")),S.style.setProperty("--pw",Math.min(100,(u-C.s)/C.d*100)+"%")):(S.classList.contains("on")||S.classList.contains("cur"))&&(S.classList.remove("on"),S.classList.remove("cur"))}}}function Fo(s,l){for(var u=c.ktvLineEls&&c.ktvLineEls.length?c.ktvLineEls:Array.prototype.slice.call(e("#lyric-box").children),d=0;d=0&&c.settings.ktv&&dp(u[s],s,l),s>=0&&s!==c.lastActiveLine){c.lastActiveLine=s;var m=e("#lyric-box"),y=u[s];if(y){var C=y.offsetTop-m.clientHeight/2+y.clientHeight/2;m.scrollTo({top:Math.max(0,C),behavior:"smooth"})}}}function Uo(s){var l=s+c.lyricOffset;Fo(Do(l),l)}function Ho(){if(c.ktvRunning){var s=e("#player audio");if(!s||s.paused){c.ktvRunning=!1;return}var l=s.currentTime+c.lyricOffset;Fo(Do(l),l),requestAnimationFrame(Ho)}}function Bo(){!c.ktvRunning&&c.settings.ktv&&(c.ktvRunning=!0,requestAnimationFrame(Ho))}function ir(s,l,u){u&&(l=1,c.commentPage=1,c.commentTotal=0);var d=(l-1)*10;c._commentsLoading=!0,c._commentGen=(c._commentGen||0)+1;var m=c._commentGen;U("/comments",{id:s,limit:10,offset:d}).then(function(y){if(m===c._commentGen){if(y.status!==200)throw new Error(y.message||"获取评论失败");if(!(c.currentSong&&String(c.currentSong.id)!==String(s))){var C=y.data;if(c.commentTotal=C.total||0,e("#comment-count").textContent=c.commentTotal?"("+je(c.commentTotal)+")":"",l===1){var S=C.hotComments||[];e("#comment-hot-title").hidden=!S.length,e("#comment-hot-list").innerHTML=S.length?S.map(qo).join(""):'
暂无热门评论
'}var T=C.comments||[];e("#comment-all-list").innerHTML=T.length?T.map(qo).join(""):'
暂无评论
',c.commentPage=l,fp()}}}).catch(function(y){m===c._commentGen&&k(y.message||"获取评论失败","error")}).then(function(){m===c._commentGen&&(c._commentsLoading=!1)},function(){m===c._commentGen&&(c._commentsLoading=!1)})}function fp(){var s=Math.max(1,Math.ceil(c.commentTotal/10)),l=c.commentPage;e("#comment-page-info").textContent="第 "+l+" / "+s+" 页",e("#comment-prev").disabled=l<=1,e("#comment-next").disabled=l>=s,e("#comment-pager").hidden=c.commentTotal<=10}e("#comment-prev").addEventListener("click",function(){c.currentSong&&c.commentPage>1&&ir(c.currentSong.id,c.commentPage-1,!1)}),e("#comment-next").addEventListener("click",function(){c.currentSong&&ir(c.currentSong.id,c.commentPage+1,!1)}),c.commentReply=null;function nn(){var s=e("#comment-composer");if(s){if(s.hidden=!c.personal.authed,!c.personal.authed){c.commentReply=null,e("#comment-reply-to").hidden=!0;return}e("#comment-input").placeholder=c.commentReply?"回复 @"+c.commentReply.nickname+"...":"说点什么吧...(140字以内)"}}function pp(s,l){c.commentReply={id:s,nickname:l},e("#comment-reply-name").textContent=l,e("#comment-reply-to").hidden=!1,nn(),e("#comment-input").focus()}e("#comment-reply-cancel").addEventListener("click",function(){c.commentReply=null,e("#comment-reply-to").hidden=!0,nn()}),document.addEventListener("click",function(s){var l=s.target.closest(".comment-reply-btn");l&&pp(l.getAttribute("data-id"),l.getAttribute("data-nickname"));var u=s.target.closest(".cr-detail");if(u){var d=u.closest(".comment-reply").querySelector(".cr-content");if(!d)return;u.classList.contains("expanded")?(u.classList.remove("expanded"),u.textContent="详情",d.textContent=d.getAttribute("data-short"),d.style.whiteSpace="nowrap",d.style.overflow="hidden"):(u.classList.add("expanded"),u.textContent="收起",d.textContent=d.getAttribute("data-full"),d.style.whiteSpace="normal",d.style.overflow="visible",d.style.wordBreak="break-word")}}),e("#comment-submit").addEventListener("click",function(){if(!c.personal.authed||!c.personal.cookie){k("请先在「个人歌单」扫码登录你的账号后再评论","warning"),we("personal");return}if(!c.currentSong){k("请先解析一首歌曲","warning");return}var s=e("#comment-input").value.trim();if(!s){k("评论内容不能为空","warning"),e("#comment-input").focus();return}if(s.length>140){k("评论内容不能超过 140 字","warning");return}var l=e("#comment-submit"),u=!!c.commentReply,d=l.textContent;l.disabled=!0,l.textContent="发布中...",U("/user/comment",{song_id:c.currentSong.id,content:s,action:u?2:1,comment_id:u?c.commentReply.id:"",user_cookie:c.personal.cookie}).then(function(m){if(m.status!==200)throw new Error(m.message||"评论失败");k(u?"✅ 回复成功":"✅ 评论成功","success"),e("#comment-input").value="",c.commentReply=null,e("#comment-reply-to").hidden=!0,nn(),ir(c.currentSong.id,1,!0)}).catch(function(m){k(m.message||"评论失败","error")}).finally(function(){l.disabled=!1,l.textContent=d})});function qo(s){var l=s.user||{},u="";l.vipType===11||l.vipType===100?u='黑胶VIP':l.vipType===10||l.vipType===110?u='黑胶SVIP':l.vipType===1&&(u='音乐包');var d=l.location?" · "+j(l.location):"",m="";if(s.beReplied&&s.beReplied.length){var y=s.beReplied[0]||{},C=y.nickname||"",S=y.content||"";if(C||S){var T=C||"已删除用户",B=S.length>10?S.slice(0,10)+"…":S;m='
回复@'+j(T)+''+j(B)+""+(S.length>10?'':"")+"
"}}var Pe=c.personal.authed?'':"";return'
`+j(l.nickname||"匿名")+""+u+''+np(s.time)+d+'
'+j(s.content||"")+"
"+m+'
👍 '+je(s.likedCount)+""+Pe+"
"}var pe={};function Hs(s,l,u,d){var m=e("#player");m.hidden=!1;try{var y=e("#podcast-audio");y&&!y.paused&&y.pause()}catch{}var C=m.querySelector("audio");if(C&&(C.pause(),C.removeAttribute("src"),C.load()),e("#player-cover").src=d,e("#player-name").textContent=l,e("#player-artist").textContent=u,e("#player-toggle").textContent="▶",e("#player-duration").textContent="00:00",e("#player-current").textContent="00:00",e("#player-progress-fill").style.width="0%",pe.url=s,typeof pe.volume!="number"&&(pe.volume=.9,pe.muted=!1),$o(),Bs(),c.settings.smtc&&"mediaSession"in navigator&&"MediaMetadata"in window)try{navigator.mediaSession.metadata=new MediaMetadata({title:l,artist:u,album:c.currentSong&&c.currentSong.al_name||"",artwork:d?[{src:d,sizes:"512x512"}]:[]}),navigator.mediaSession.setActionHandler("play",function(){var S=kn();S&&S.paused&&bn()}),navigator.mediaSession.setActionHandler("pause",function(){var S=kn();S&&!S.paused&&bn()}),navigator.mediaSession.setActionHandler("seekto",function(S){var T=kn();T&&S.seekTime!=null&&(T.currentTime=S.seekTime)})}catch{}else if("mediaSession"in navigator)try{navigator.mediaSession.setActionHandler("play",null),navigator.mediaSession.setActionHandler("pause",null),navigator.mediaSession.setActionHandler("seekto",null)}catch{}e("#player").onclick=function(S){S.target.closest(".player-ctrl")||S.target.closest(".progress")||S.target.closest(".volume-btn")||S.target.closest(".volume-slider")||bn()}}function mp(){var s=e("#player");s.hidden=!0;var l=s.querySelector("audio");l&&(l.pause(),l.removeAttribute("src"),l.load())}function kn(){var s=e("#player"),l=s.querySelector("audio");return l||(l=document.createElement("audio"),l.preload="metadata",s.appendChild(l),l.addEventListener("timeupdate",function(){if(e("#player-current").textContent=at(l.currentTime),l.duration&&(e("#player-progress-fill").style.width=l.currentTime/l.duration*100+"%"),Uo(l.currentTime),Bo(),c.settings.progressMemory&&c.currentSong)try{var u="netease_progress_"+c.currentSong.id,d=parseFloat(localStorage.getItem(u)||"0");if(Math.abs(l.currentTime-d)>5){localStorage.setItem(u,l.currentTime);for(var m=[],y=0;y=100&&m.forEach(function(S){localStorage.removeItem(S)})}}catch{}}),l.addEventListener("play",function(){Bo()}),l.addEventListener("loadedmetadata",function(){e("#player-duration").textContent=at(l.duration);try{"mediaSession"in navigator&&navigator.mediaSession.setPositionState({duration:l.duration||0,playbackRate:1,position:l.currentTime||0})}catch{}}),l.addEventListener("ended",function(){e("#player-toggle").textContent="▶",e("#player-progress-fill").style.width="0%",e("#player-current").textContent="00:00";try{"mediaSession"in navigator&&(navigator.mediaSession.playbackState="none")}catch{}if(c.currentSong)try{localStorage.removeItem("netease_progress_"+c.currentSong.id)}catch{}var u=c.global&&c.global.playQueue;if(u&&u.length)if(c.global.playQueueIndex=(c.global.playQueueIndex||0)+1,c.global.playQueueIndex暂无热门评论',e("#comment-all-list").innerHTML='
暂无评论
',c.lyricOffset=0,e("#lyric-offset-label").textContent="偏移 0.00s",c._queueNoResume=!0,k("▶ 正在播放:"+(d.name||""),"info"),bn(),c._queueNoResume=!1}else c.global.playQueue=[],c.global.playQueueIndex=0}),l.addEventListener("play",function(){e("#player-toggle").textContent="⏸";try{"mediaSession"in navigator&&(navigator.mediaSession.playbackState="playing")}catch{}}),l.addEventListener("pause",function(){e("#player-toggle").textContent="▶";try{"mediaSession"in navigator&&(navigator.mediaSession.playbackState="paused")}catch{}}),l.addEventListener("error",function(){k("音频播放失败:可能是链接失效或该格式不支持在线播放","error"),e("#player-toggle").textContent="▶"})),l}function bn(){var s=kn(),l="netease_progress_"+(c.currentSong?c.currentSong.id:"");if(s.paused&&!s.src){if(s.src=pe.url,c.settings.progressMemory&&!c._queueNoResume)try{var u=parseFloat(localStorage.getItem(l));u>0&&(s.currentTime=u)}catch{}s.volume=pe.volume,s.muted=pe.muted}if(s.paused)s.play().catch(function(){k("播放失败,请稍后重试","error")});else if(s.pause(),c.settings.progressMemory)try{localStorage.setItem(l,s.currentTime)}catch{}}e("#player-toggle").addEventListener("click",function(s){s.stopPropagation(),bn()}),e("#player-restart").addEventListener("click",function(s){s.stopPropagation();var l=kn();l.src?(l.currentTime=0,l.paused&&l.play().catch(function(){})):bn()}),e("#player-progress").addEventListener("click",function(s){var l=this.getBoundingClientRect(),u=(s.clientX-l.left)/l.width,d=kn();d.src&&d.duration&&(d.currentTime=u*d.duration)});function $o(){e("#player-volume-fill").style.width=pe.volume*100+"%"}function Bs(){e("#player-mute").textContent=pe.muted?"🔇":"🔊";var s=e("#player audio");s&&(s.muted=pe.muted,s.volume=pe.volume)}e("#player-volume").addEventListener("click",function(s){var l=this.getBoundingClientRect();pe.volume=Math.max(0,Math.min(1,(s.clientX-l.left)/l.width)),pe.muted=!1,$o(),Bs()}),e("#player-mute").addEventListener("click",function(s){s.stopPropagation(),pe.muted=!pe.muted,Bs()});function Vo(s,l){if(!s){k("无法获取音乐ID","error");return}Te()&&Os(s).then(function(u){k("正在准备下载:"+(l||s)+"("+ni(u)+")...","info"),Qo(s,l,u)})}function Qo(s,l,u){var d=me.some(function(C){return C.label==="单曲 · "+(l||s)&&(C.status==="queued"||C.status==="running"||C.status==="paused")});if(d){k("这首歌已在下载队列中,请勿重复提交","warning");return}var m=P(),y=or();U("/download",{id:s,quality:u,task_id:y,device_id:ht(),account:c.parseAccount,user_cookie:c.parseAccount==="user"?c.personal.cookie:"",filename_format:m.filename_format,write_meta:m.write_meta,meta_fields:m.meta_fields,lyric_format:m.lyric_format,zip:m.zip}).then(function(C){if(C.status===401&&c.parseAccount==="user"){c.parseAccount="admin";try{localStorage.setItem("netease_parse_account","admin")}catch{}G(),rn(),k("个人账号未登录或已失效,已自动切换为全局账号下载","warning"),Qo(s,l,u);return}if(C.status!==200){k(C.message||"下载提交失败","error");return}cr({id:y,type:"single",label:"单曲 · "+(l||s),total:1,done:0,status:"queued"})}).catch(function(){k("下载提交失败,请检查网络","error")})}function hp(s,l){if(l==="srt"){let u=function(d){var m=Math.floor(d/3600),y=Math.floor(d%3600/60),C=Math.floor(d%60),S=Math.round((d-Math.floor(d))*1e3);return S>=1e3&&(S=999),String(m).padStart(2,"0")+":"+String(y).padStart(2,"0")+":"+String(C).padStart(2,"0")+","+String(S).padStart(3,"0")};return s.map(function(d,m){var y=s[m+1]?s[m+1].time:d.time+5;return y<=d.time&&(y=d.time+1),m+1+` +`+u(d.time)+" --> "+u(y)+` +`+d.text+` +`}).join(` +`)}return s.map(function(u){var d=Math.floor(u.time/60),m=u.time-d*60,y=Math.round((m-Math.floor(m))*1e3);return"["+String(d).padStart(2,"0")+":"+String(Math.floor(m)).padStart(2,"0")+"."+String(Math.min(y,999)).padStart(3,"0")+"]"+u.text.replace(/\n/g," / ")}).join(` +`)}e("#detail-lyric-download").addEventListener("click",function(){if(!c.currentSong||!c.lyrics.length){k("暂无歌词可下载","warning");return}var s=c.settings.lyricFormat==="srt"?"srt":"lrc",l=hp(c.lyrics,s),u=new Blob([l],{type:"text/plain;charset=utf-8"}),d=URL.createObjectURL(u),m=document.createElement("a");m.href=d,m.download=(c.currentSong.name||"lyric")+"."+s,document.body.appendChild(m),m.click(),document.body.removeChild(m),setTimeout(function(){URL.revokeObjectURL(d)},3e3),k("歌词已下载("+s.toUpperCase()+")","success")});function Wo(s){var l=document.createElement("textarea");l.value=s,document.body.appendChild(l),l.select();try{var u=document.execCommand("copy");u?k("已复制到剪贴板","success"):k("复制失败,请手动复制","error")}catch{k("复制失败,请手动复制","error")}document.body.removeChild(l)}function sr(s){return c.collGen=c.collGen||{},c.collGen[s]=(c.collGen[s]||0)+1,c.collGen[s]}function lt(s,l){return c.collGen[s]!==l}function si(){if(pt()){var s=e("#playlist-input").value.trim(),l=Ze(s);if(!l){k("请输入歌单ID或链接","warning"),e("#playlist-input").focus();return}var u=e("#playlist-btn"),d=sr("playlist");V(u,!0,"解析中..."),U("/playlist",{id:l}).then(function(m){if(!lt("playlist",d)){if(m.status!==200)throw new Error(m.data&&m.data.msg||m.message||"歌单解析失败");Go("playlist",m.data.playlist)}}).catch(function(m){lt("playlist",d)||k(m.message||"歌单解析失败","error")}).then(function(){V(u,!1)},function(){V(u,!1)})}}function vp(s,l){e("#playlist-input").value=s,we("playlist"),e("#playlist-input").focus(),l&&k("正在解析歌单:"+l,"info"),si()}function qs(){if(pt()){var s=e("#album-input").value.trim(),l=Ze(s);if(!l){k("请输入专辑ID或链接","warning"),e("#album-input").focus();return}var u=e("#album-btn"),d=sr("album");V(u,!0,"解析中..."),U("/album",{id:l}).then(function(m){if(!lt("album",d)){if(m.status!==200)throw new Error(m.data&&m.data.msg||m.message||"专辑解析失败");Go("album",m.data.album)}}).catch(function(m){lt("album",d)||k(m.message||"专辑解析失败","error")}).then(function(){V(u,!1)},function(){V(u,!1)})}}function gp(s,l){e("#album-input").value=s,we("album"),e("#album-input").focus(),l&&k("正在解析专辑:"+l,"info"),qs()}function yp(s,l){return'
'+l+'
'+j(s.name)+''+j(s.album||"")+'
'+j(s.artists||"")+'
'}var ai=10;function Nn(s,l,u){l=l||[];var d=l.length,m=Math.max(1,Math.ceil(d/ai));u=Math.max(1,Math.min(u||1,m));var y=(u-1)*ai,C=l.slice(y,y+ai),S=e("#"+s+"-tracks");C.length?S.innerHTML=C.map(function(Pe,$e){return yp(Pe,y+$e+1)}).join(""):S.innerHTML='
📄
暂无歌曲(可能为受版权保护的歌曲)
';var T=e("#"+s+"-pager");T&&(T.hidden=d<=ai,e("#"+s+"-page-info").textContent="第 "+u+" / "+m+" 页",e("#"+s+"-prev").disabled=u<=1,e("#"+s+"-next").disabled=u>=m);var B=e("#"+s+"-download-all");return B&&d&&(B.textContent="⬇ 批量下载全部(共 "+d+" 首)"),c["page_"+s]=u,c["tracks_"+s]=l,u}["playlist","album","artist","personal","global"].forEach(function(s){e("#"+s+"-prev").addEventListener("click",function(){Nn(s,c["tracks_"+s],c["page_"+s]-1)}),e("#"+s+"-next").addEventListener("click",function(){Nn(s,c["tracks_"+s],c["page_"+s]+1)})});function Go(s,l){if(!l){k("解析结果为空","error");return}var u=s;["playlist","album","artist"].forEach(function(C){e("#"+C+"-result").hidden=!0});var d=e("#"+u+"-result");d.hidden=!1;var m=l.tracks||l.songs||[],y=u==="playlist";l.incomplete&&l.missing&&k("注意:该歌单不完整,缺少 "+l.missing+" 首(可能版权受限或接口失败)","warning"),c.currentCollection={type:u,id:l.id,name:l.name},e("#"+u+"-cover").src=l.coverImgUrl||"",e("#"+u+"-name").textContent=l.name||"未知",y?(e("#playlist-creator").textContent="by "+(l.creator||"未知"),e("#playlist-count").textContent=l.trackCount!=null?l.trackCount:m.length,e("#playlist-desc").hidden=!(l.description&&l.description.trim()),e("#playlist-desc").hidden||(e("#playlist-desc").textContent=l.description)):(e("#album-artist").textContent=l.artist?"歌手:"+l.artist:"",e("#album-count").textContent=m.length,e("#album-desc").hidden=!(l.description&&l.description.trim()),e("#album-desc").hidden||(e("#album-desc").textContent=l.description)),Nn(u,m,1),hi(),window.scrollTo({top:d.offsetTop-80,behavior:"smooth"})}e("#playlist-btn").addEventListener("click",si),e("#playlist-input").addEventListener("keydown",function(s){s.key==="Enter"&&si()}),e("#album-btn").addEventListener("click",qs),e("#album-input").addEventListener("keydown",function(s){s.key==="Enter"&&qs()});function $s(){if(pt()){var s=e("#artist-input").value.trim(),l=Ze(s);if(!l){k("请输入歌手ID或链接","warning"),e("#artist-input").focus();return}var u=e("#artist-btn"),d=sr("artist");V(u,!0,"解析中..."),U("/artist_songs",{id:l}).then(function(m){if(!lt("artist",d)){if(m.status!==200)throw new Error(m.data&&m.data.msg||m.message||"歌手解析失败");wp(m.data)}}).catch(function(m){lt("artist",d)||k(m.message||"歌手解析失败","error")}).then(function(){V(u,!1)},function(){V(u,!1)})}}function xp(s,l){e("#artist-input").value=s,we("artist"),e("#artist-input").focus(),l&&k("正在解析歌手:"+l,"info"),$s()}function wp(s){["playlist","album","artist"].forEach(function(m){e("#"+m+"-result").hidden=!0});var l=e("#artist-result");l.hidden=!1;var u=s.artist||{},d=s.songs||[];e("#artist-cover").src=u.picUrl||"",e("#artist-name").textContent=u.name||"未知歌手",e("#artist-alias").textContent=u.alias||"",e("#artist-count").textContent=u.musicSize!=null?u.musicSize:d.length,e("#artist-desc").hidden=!(u.briefDesc&&u.briefDesc.trim()),e("#artist-desc").hidden||(e("#artist-desc").textContent=u.briefDesc),d.length?Nn("artist",d,1):e("#artist-tracks").innerHTML='
🎤
该歌手暂无热门歌曲
',window.scrollTo({top:l.offsetTop-80,behavior:"smooth"})}e("#artist-btn").addEventListener("click",$s),e("#artist-input").addEventListener("keydown",function(s){s.key==="Enter"&&$s()}),c.toplistLoaded=!1;function Ko(){if(!pt()){var s=document.getElementById("toplist-loading");s&&(s.innerHTML='
🔒
请先登录后查看榜单
');return}c.toplistLoaded||(e("#toplist-loading").hidden=!1,e("#toplist-grid").hidden=!0,U("/toplist",{}).then(function(l){if(l.status!==200)throw new Error(l.message||"获取榜单失败");var u=l.data||[];c.toplistLoaded=!0,jp(u)}).catch(function(l){e("#toplist-loading").hidden=!1,e("#toplist-loading").innerHTML='
📊
'+j(l.message||"获取榜单失败")+'
'}))}function jp(s){var l=e("#toplist-grid");if(!s||!s.length){l.hidden=!0,e("#toplist-loading").hidden=!1,e("#toplist-loading").innerHTML='
📊
暂无榜单数据
';return}e("#toplist-loading").hidden=!0,l.hidden=!1,l.innerHTML=s.map(function(u){return'
'+j(u.name)+'
'+j(u.updateFrequency||"")+(u.playCount?" · 播放 "+je(u.playCount):"")+"
"}).join("")}e("#toplist-grid").addEventListener("click",function(s){var l=s.target.closest(".toplist-card");if(l){var u=l.getAttribute("data-id"),d=l.getAttribute("data-name");k("正在加载榜单:"+d,"info"),e("#playlist-input").value=u,we("playlist"),si()}}),document.addEventListener("click",function(s){s.target.closest("#toplist-retry")&&(c.toplistLoaded=!1,e("#toplist-loading").innerHTML="",Ko())});var Yo={categories:[]};function kp(s){return'
'+j(s.name)+'
'+j(s.category||"播客")+(s.program_count?" · "+j(s.program_count)+" 集":"")+(s.sub_count_text&&s.sub_count_text!=="0"?" · 订阅 "+j(s.sub_count_text):"")+"
"}function bp(){var s=e("#podcast-cate-bar"),l=[{id:null,name:"热门推荐"}].concat(Yo.categories);s.innerHTML=l.map(function(u){var d=u.id==null&&!c.podcast.hotCate||String(u.id)===String(c.podcast.hotCate||"");return''+j(u.name)+""}).join("")}var li=!1;function Vs(s,l){var u=e("#podcast-hot-grid");if(!(l&&li)){var d='
🎙️
加载中...
';l||(u.innerHTML=d),li=!0,U("/podcast/hot",{limit:30,offset:l?c.podcast.hotOffset:0,cate_id:s||""}).then(function(m){if(m.status!==200)throw new Error(m.message||"获取热门播客失败");var y=m.data||{};y.categories&&y.categories.length&&(Yo.categories=y.categories),c.podcast.hotLoaded=!0,c.podcast.hotCate=s||null,c.podcast.hotOffset=(l?c.podcast.hotOffset:0)+(y.radios||[]).length,bp();var C=(y.radios||[]).map(kp).join("");l?u.insertAdjacentHTML("beforeend",C):u.innerHTML=C||'
🎙️
该分类暂无热门播客
',e("#podcast-hot-more-wrap").hidden=!(y.radios||[]).length||!y.has_more}).catch(function(m){l||(u.innerHTML='
😕
'+j(m.message||"加载失败")+"
"),k(m.message||"获取热门播客失败","error")}).then(function(){li=!1},function(){li=!1})}}e("#podcast-cate-bar").addEventListener("click",function(s){var l=s.target.closest(".podcast-cate-item");if(l){var u=l.getAttribute("data-cate-id");Vs(u||null,!1)}}),e("#podcast-hot-more").addEventListener("click",function(){Vs(c.podcast.hotCate,!0)}),e("#podcast-hot-grid").addEventListener("click",function(s){var l=s.target.closest(".toplist-card");l&&(e("#podcast-input").value=l.getAttribute("data-radio-id"),ci())});var oi=0;function ci(){if(pt()&&Te()){var s=e("#podcast-input").value.trim();if(!s){k("请输入播客电台/单集链接或ID","warning");return}var l=e("#podcast-btn"),u=++oi;V(l,!0,"解析中..."),ui(!0),e("#podcast-radio-result").hidden=!0,e("#podcast-program-result").hidden=!0,U("/podcast/parse",{id:s,quality:e("#podcast-quality").value}).then(function(d){if(u===oi){if(d.status!==200)throw new Error(d.message||"解析失败");var m=d.data||{};m.kind==="radio"?Np(m):Xo(m.program)}}).catch(function(d){u===oi&&k(d.message||"解析失败","error")}).finally(function(){V(l,!1),u===oi&&ui(!1)})}}function ui(s){e("#podcast-loading").hidden=!s}e("#podcast-btn").addEventListener("click",ci),e("#podcast-input").addEventListener("keydown",function(s){s.key==="Enter"&&ci()});function Np(s){var l=s.radio||{};c.podcast.radio=l,c.podcast.radioId=l.id,c.podcast.offset=(s.programs||[]).length,c.podcast.count=s.count||0,c.podcast.asc=!0,e("#podcast-radio-cover").src=l.pic_url||"",e("#podcast-radio-name").textContent=l.name||"",e("#podcast-radio-meta").textContent="主播:"+(l.dj_name||"未知")+(l.category?" · 分类:"+l.category:"")+(l.program_count?" · 共 "+l.program_count+" 集":"")+(l.sub_count_text&&l.sub_count_text!=="0"?" · 订阅 "+l.sub_count_text:""),e("#podcast-radio-desc").textContent=l.desc||"",e("#podcast-radio-desc").hidden=!l.desc,e("#podcast-radio-order").textContent="⇅ 最新在前",Qs(s.programs||[],!1),e("#podcast-radio-result").hidden=!1,e("#podcast-program-result").hidden=!0,e("#podcast-search-result").hidden=!0}function Sp(s,l){var u=s.serial_num||l+1,d=[];return s.duration_text&&d.push(s.duration_text),s.create_date&&d.push(s.create_date),s.listener_count_text&&s.listener_count_text!=="0"&&d.push("收听 "+s.listener_count_text),'
'+j(u)+'
'+j(s.name)+'
'+j(d.join(" · "))+'
'}function Qs(s,l){var u=e("#podcast-episodes"),d=s.map(Sp).join("");l?u.insertAdjacentHTML("beforeend",d):u.innerHTML=d||'
该电台暂无单集
',e("#podcast-episode-count").textContent=c.podcast.count?c.podcast.count+" 集":"",e("#podcast-more-wrap").hidden=!c.podcast.count||c.podcast.offset>=c.podcast.count}var di=!1;e("#podcast-more").addEventListener("click",function(){di||(di=!0,U("/podcast/programs",{radio_id:c.podcast.radioId,limit:30,offset:c.podcast.offset,asc:c.podcast.asc}).then(function(s){if(s.status!==200)throw new Error(s.message||"加载失败");var l=s.data||{};c.podcast.offset+=(l.programs||[]).length,Qs(l.programs||[],!0)}).catch(function(s){k(s.message||"加载更多失败","error")}).then(function(){di=!1},function(){di=!1}))}),e("#podcast-radio-order").addEventListener("click",function(){var s=c.podcast.asc,l=c.podcast.offset;c.podcast.asc=!c.podcast.asc,this.textContent=c.podcast.asc?"⇅ 最新在前":"⇅ 第1集在前",c.podcast.offset=0,U("/podcast/programs",{radio_id:c.podcast.radioId,limit:30,offset:0,asc:c.podcast.asc}).then(function(u){if(u.status!==200)throw new Error(u.message||"加载失败");var d=u.data||{};c.podcast.offset=(d.programs||[]).length,Qs(d.programs||[],!1)}).catch(function(u){c.podcast.asc=s,c.podcast.offset=l,e("#podcast-radio-order").textContent=c.podcast.asc?"⇅ 最新在前":"⇅ 第1集在前",k(u.message||"切换排序失败","error")})}),e("#podcast-radio-zip").addEventListener("click",function(){if(Te()&&c.podcast.radioId){var s=c.podcast.radio&&c.podcast.radio.name||c.podcast.radioId,l=window.getSITECredits&&window.getSITECredits()||0,u=Math.min(500,c.podcast.count||200);if(l<0){window.handleAuthExpired&&window.handleAuthExpired("请先登录后再使用打包下载",!1);return}if(l>=0){if(l<=0){window.handleAuthExpired&&window.handleAuthExpired("",!0);return}if(l'+j(d.level_name||d.level||"标准")+''+j((d.type||"mp3").toUpperCase())+" · "+j(d.size_formatted||"")+""+(d.br?''+Math.round(d.br/1e3)+" kbps":""):'未获取到音频直链';var S=e("#podcast-audio");if(C){try{var T=e("#player audio");T&&!T.paused&&T.pause()}catch{}S.src=d.url,S.hidden=!1;try{typeof pe.volume=="number"&&(S.volume=pe.volume,S.muted=!!pe.muted)}catch{}y.href=d.url,y.hidden=!1,S.onerror=function(){k("试听链接已过期或失效,请重新点击「试听」刷新","warning")},S.play().catch(function(){})}else S.removeAttribute("src"),S.hidden=!0,y.hidden=!0;e("#podcast-program-tip").hidden=!!C,e("#podcast-program-tip").textContent="该单集暂无可用音频(可能已下架或受版权限制)",e("#podcast-program-result").hidden=!1,e("#podcast-radio-result").hidden=!0}function Zo(s,l,u,d){var m=function(){d&&V(d,!1)};d&&V(d,!0,"..."),ui(!0),U("/podcast/parse",{id:s,quality:e("#podcast-quality").value}).then(function(y){if(y.status!==200)throw new Error(y.message||"解析失败");Xo((y.data||{}).program)}).catch(function(y){k(y.message||"解析失败","error")}).finally(function(){ui(!1),m()})}function Ep(s,l,u){var d=function(){u&&V(u,!1)};u&&V(u,!0,"..."),U("/podcast/parse",{id:s,quality:e("#podcast-quality").value}).then(function(m){if(m.status!==200)throw new Error(m.message||"解析失败");var y=((m.data||{}).program||{}).audio;if(!y||!y.url)throw new Error("未获取到音频直链");try{navigator.clipboard.writeText(y.url).then(function(){k("直链已复制:"+l,"success")}).catch(function(){Wo(y.url)})}catch{Wo(y.url)}}).catch(function(m){k(m.message||"获取直链失败","error")}).finally(d)}function Jo(s,l){if(pt()&&Te()){var u=or();U("/podcast/download",{id:s,quality:e("#podcast-quality").value,task_id:u,device_id:ht()}).then(function(d){if(d.status!==200)throw new Error(d.message||"提交失败");cr({id:u,type:"single",label:"播客 · "+(l||s),total:1,done:0,status:"queued"}),k("下载任务已提交:"+l,"success")}).catch(function(d){k(d.message||"下载提交失败","error")})}}e("#podcast-program-download").addEventListener("click",function(){var s=c.podcast.program;s&&Jo(s.id,s.name)});function ec(){if(pt()){var s=e("#podcast-search-input").value.trim();if(!s){k("请输入搜索关键词","warning");return}var l=e("#podcast-search-btn");V(l,!0,"搜索中..."),U("/podcast/search",{keyword:s,limit:20,type:"all"}).then(function(u){if(u.status!==200)throw new Error(u.message||"搜索失败");var d=u.data||{},m=d.radios||[],y=d.voices||[],C=m.map(function(T){var B=[];return T.dj_name&&B.push("主播 "+T.dj_name),T.program_count&&B.push(T.program_count+" 集"),T.sub_count_text&&T.sub_count_text!=="0"&&B.push("订阅 "+T.sub_count_text),'
'+j(T.name)+'
'+j(B.join(" · "))+'
'}).join("");C+=y.map(function(T){var B=[];return T.radio_name&&B.push("来自「"+T.radio_name+"」"),T.duration_text&&B.push(T.duration_text),T.create_date&&B.push(T.create_date),'
'+j(T.name)+'
'+j(B.join(" · "))+'
'}).join(""),e("#podcast-search-list").innerHTML=C||'
未找到相关播客
',e("#podcast-search-count").textContent=m.length+y.length+" 条";var S=e("#podcast-search-tip");!y.length&&m.length?(S.textContent="💡 受网易接口限制,单集(声音)搜索可能无结果;可先解析电台后浏览全部单集。",S.hidden=!1):S.hidden=!0,e("#podcast-search-result").hidden=!1}).catch(function(u){k(u.message||"搜索失败","error")}).finally(function(){V(l,!1)})}}e("#podcast-search-btn").addEventListener("click",ec),e("#podcast-search-input").addEventListener("keydown",function(s){s.key==="Enter"&&ec()}),e("#podcast-search-list").addEventListener("click",function(s){var l=s.target.closest("button[data-search-radio]");if(l){e("#podcast-input").value=l.getAttribute("data-search-radio"),ci(),window.scrollTo({top:0,behavior:"smooth"});return}var u=s.target.closest("button[data-search-voice]");u&&Zo(u.getAttribute("data-search-voice"),u.getAttribute("data-voice-name"),!0,u)});function Cp(){var s=e("#about-version");s&&Tt[0]&&(s.textContent="v"+Tt[0].v),e("#about-changelog").innerHTML=Tt.map(function(l){return'
v'+l.v+''+l.date+'
    '+l.items.map(function(u){return"
  • "+j(u)+"
  • "}).join("")+"
"}).join("")}function tc(){U("/admin/cookie/status",{}).then(function(s){if(s.status!==200)throw new Error(s.message||"需要管理员权限");c.adminAuthed=!0,e("#admin-gate").hidden=!0,e("#admin-content").hidden=!1,k("验证成功,欢迎进入管理员设置","success"),fi(),mi()}).catch(function(s){k("请先用管理员账号登录站点,管理功能已并入「管理后台」页签","error")})}function fi(){U("/admin/cookie/status",{}).then(function(s){if(s.status!==200)throw new Error(s.message||"获取状态失败");var l=s.data||{},u=e("#admin-status-badge"),d=e("#admin-status-desc");l.is_valid?(u.textContent="有效",u.style.borderColor="var(--color-success)",u.style.color="var(--color-success)",u.style.background="rgba(82,196,26,0.1)",d.textContent="已登录,Cookie 自动保存,无需重复扫码。"):(u.textContent="未登录",u.style.borderColor="var(--color-error)",u.style.color="var(--color-error)",u.style.background="rgba(255,77,79,0.1)",d.textContent=l.file_exists?"Cookie 文件存在但缺少关键字段,建议重新扫码登录。":"尚未配置 Cookie,请扫码登录。"),e("#admin-cookie-file").textContent=l.file_path||"-";var m=[];l.cookie_count!=null&&m.push("Cookie "+l.cookie_count+" 个"),l.last_modified&&m.push("最后更新 "+l.last_modified),l.important_cookies_present&&l.important_cookies_present.length&&m.push("包含 "+l.important_cookies_present.join(", ")),e("#admin-cookie-time").textContent=m.join(" · ")||"-"}).catch(function(s){k(s.message||"获取 Cookie 状态失败","error")})}function Pt(){c.adminQrTimer&&(clearInterval(c.adminQrTimer),c.adminQrTimer=null)}function _p(){c.adminAuthed&&(V(e("#admin-qr-btn"),!0,"生成中..."),U("/admin/qr/create",{}).then(function(s){if(s.status!==200)throw new Error(s.message||"生成二维码失败");var l=s.data;c.adminUnikey=l.unikey;var u=l.qr_svg||"",d="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(u)));e("#admin-qr-img").src=d,e("#admin-qr-area").hidden=!1,e("#admin-qr-status").textContent="请使用网易云音乐手机 APP 扫描二维码登录",e("#admin-qr-status").style.color="",k("二维码已生成,请用手机扫码","info"),Pt(),c.adminQrGen=(c.adminQrGen||0)+1,c.adminQrTimer=setInterval(Lp,3e3)}).catch(function(s){k(s.message||"生成二维码失败","error")}).finally(function(){V(e("#admin-qr-btn"),!1)}))}function Lp(){if(!c.adminUnikey){Pt();return}c.adminQrGen=(c.adminQrGen||0)+1;var s=c.adminQrGen;U("/admin/qr/check",{unikey:c.adminUnikey}).then(function(l){if(s===c.adminQrGen){if(l.status!==200){Pt(),e("#admin-qr-status").textContent=l.message||"检查登录状态失败",e("#admin-qr-status").style.color="var(--color-error)";return}var u=l.data.status;u==="waiting"?(e("#admin-qr-status").textContent="等待扫码...",e("#admin-qr-status").style.color=""):u==="scanned"?(e("#admin-qr-status").textContent="✅ 已扫码,请在手机上确认登录",e("#admin-qr-status").style.color="var(--color-warning)"):u==="success"?(Pt(),e("#admin-qr-status").textContent="🎉 登录成功,Cookie 已自动保存",e("#admin-qr-status").style.color="var(--color-success)",k("登录成功,Cookie 已自动保存","success"),fi(),G()):u==="expired"?(Pt(),e("#admin-qr-status").textContent="二维码已过期,请点击「生成登录二维码」重新获取",e("#admin-qr-status").style.color="var(--color-error)"):(Pt(),e("#admin-qr-status").textContent=l.message||"登录状态异常",e("#admin-qr-status").style.color="var(--color-error)")}}).catch(function(l){s===c.adminQrGen&&(Pt(),e("#admin-qr-status").textContent=l.message||"检查登录状态失败",e("#admin-qr-status").style.color="var(--color-error)")})}function Tp(){c.adminAuthed&&window.confirm(`确定要删除当前 Cookie 吗? +删除后将需要重新扫码登录。`)&&(V(e("#admin-cookie-delete"),!0,"删除中..."),U("/admin/cookie/delete",{}).then(function(s){if(s.status!==200)throw new Error(s.message||"删除失败");Pt(),c.adminQrGen=(c.adminQrGen||0)+1,e("#admin-qr-area").hidden=!0,c.adminUnikey="",k("Cookie 已删除,可重新扫码登录","success"),fi(),G()}).catch(function(s){k(s.message||"删除 Cookie 失败","error")}).finally(function(){V(e("#admin-cookie-delete"),!1)}))}e("#admin-enter").addEventListener("click",tc),e("#admin-password").addEventListener("keydown",function(s){s.key==="Enter"&&tc()}),e("#admin-qr-btn").addEventListener("click",_p),e("#admin-cookie-delete").addEventListener("click",Tp),e("#admin-status-refresh").addEventListener("click",fi);var pi=1;function mi(){c.adminAuthed&&U("/admin/logs",{page:pi,page_size:10}).then(function(s){if(s.status!==200)throw new Error(s.message||"获取记录失败");var l=s.data,u=e("#admin-logs-list");!l.items||!l.items.length?u.innerHTML='
暂无解析/下载记录
':u.innerHTML=l.items.map(function(m){var y=m.action==="下载"?' style="border-color:var(--color-success);color:var(--color-success);background:rgba(82,196,26,0.1);"':' style="border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-bg);"';return'
"+j(m.action||"-")+''+j(m.ip||"-")+''+j(m.song||"")+''+j(m.time||"")+"
"}).join("");var d=Math.max(1,l.pages||1);e("#admin-logs-info").textContent="第 "+l.page+" / "+d+" 页",e("#admin-logs-prev").disabled=l.page<=1,e("#admin-logs-next").disabled=l.page>=d,e("#admin-logs-pager").hidden=l.total<=10}).catch(function(s){k(s.message||"获取记录失败","error")})}e("#admin-logs-refresh").addEventListener("click",mi),e("#admin-logs-prev").addEventListener("click",function(){pi>1&&(pi--,mi())}),e("#admin-logs-next").addEventListener("click",function(){pi++,mi()});function Ws(){U("/user/status",{user_cookie:c.personal.cookie}).then(function(s){if(s.status!==200)throw new Error(s.message||"获取登录状态失败");var l=s.data||{},u=l.cookie||{};u.is_valid&&l.user?(c.personal.authed=!0,c.personal.user=l.user,e("#personal-gate").hidden=!0,e("#personal-content").hidden=!1,rc(),Gs(),G(),hi(),nn()):ar(u.is_valid)}).catch(function(s){k(s.message||"获取登录状态失败","error"),ar(!1)})}function ar(s){c.personal.authed=!1,e("#personal-content").hidden=!0,e("#personal-gate").hidden=!1,e("#personal-qr-area").hidden=!0,e("#personal-refresh").hidden=!s,hi(),nn(),s?(e("#personal-gate-hint").textContent="检测到登录信息已失效(或未关联有效账号),请重新扫码登录。",e("#personal-refresh").hidden=!1):(e("#personal-gate-hint").innerHTML="扫码登录你自己的网易云账号,即可查看收藏的歌单(包括「我喜欢的音乐」)。个人登录仅用于获取你的歌单,解析与下载音乐仍使用管理员全局账号。",e("#personal-refresh").hidden=!0)}function nc(s){return s===11||s===100?'黑胶VIP':s===10||s===110?'黑胶SVIP':s===1?'音乐包':'普通用户'}function rc(){var s=c.personal.user||{};e("#personal-avatar").src=s.avatarUrl||"",e("#personal-nickname").innerHTML=j(s.nickname||"未命名用户")+" "+nc(s.vipType),e("#personal-signature").textContent=s.signature||"",rn()}function rn(){var s=e("#personal-toggle-account");c.parseAccount==="user"?(s.textContent="切换为全局账号解析",s.className="btn btn-sm btn-primary"):(s.textContent="切换为个人账号解析",s.className="btn btn-sm")}e("#personal-toggle-account").addEventListener("click",function(){if(c.parseAccount==="admin"){if(!c.personal.authed){k("请先在「个人歌单」扫码登录你自己的账号","warning");return}c.parseAccount="user",k("已切换为个人账号解析与下载(全局菜单均生效)","success")}else c.parseAccount="admin",k("已切换为全局账号解析与下载","success");try{localStorage.setItem("netease_parse_account",c.parseAccount)}catch{}rn(),G()});function Gs(){U("/user/playlists",{user_cookie:c.personal.cookie}).then(function(s){if(s.status!==200)throw new Error(s.message||"获取歌单失败");c.personal.user=s.data.user,rc(),Pp(s.data.playlists||[])}).catch(function(s){s.message&&s.message.indexOf("请先扫码")!==-1?(k(s.message,"warning"),ar(!1)):k(s.message||"获取歌单失败","error")})}function Pp(s){c.personal.playlists=s;var l=e("#personal-playlists");if(e("#personal-playlist-count").textContent="共 "+s.length+" 个",!s.length){l.innerHTML='
📂
暂无歌单
';return}l.innerHTML=s.map(function(u){var d="";return u.specialType===5?d='❤️ 我喜欢的音乐':u.is_own?d='我创建的':d='收藏的','
'+j(u.name)+" "+d+'
'+je(u.trackCount)+" 首 · 播放 "+je(u.playCount)+(u.creator?" · by "+j(u.creator):"")+'
'}).join("")}function ic(s,l){if(s){c.personal.current={id:s,name:l};var u=sr("personal");e("#personal-tracks-wrap").hidden=!1,e("#personal-tracks-title").textContent="歌单歌曲:"+(l||s),e("#personal-tracks").innerHTML='
⏳
加载中...
',window.scrollTo({top:e("#personal-tracks-wrap").offsetTop-80,behavior:"smooth"}),U("/user/playlist",{id:s,user_cookie:c.personal.cookie}).then(function(d){if(!lt("personal",u)){if(d.status!==200)throw new Error(d.data&&d.data.msg||d.message||"获取歌单失败");Ip(d.data.playlist||{})}}).catch(function(d){lt("personal",u)||(e("#personal-tracks").innerHTML='
❌
'+j(d.message||"获取歌单失败")+"
")})}}function Ip(s){var l=s.tracks||[];Nn("personal",l,1)}function mt(){c.personal.qrTimer&&(clearInterval(c.personal.qrTimer),c.personal.qrTimer=null)}function Mp(){V(e("#personal-qr-btn"),!0,"生成中..."),U("/user/qr/create",{}).then(function(s){if(s.status!==200)throw new Error(s.message||"生成二维码失败");var l=s.data;c.personal.unikey=l.unikey;var u="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(l.qr_svg||"")));e("#personal-qr-img").src=u,e("#personal-qr-area").hidden=!1,e("#personal-qr-status").textContent="请使用网易云音乐手机 APP 扫描二维码登录",e("#personal-qr-status").style.color="",k("二维码已生成,请用手机扫码","info"),mt(),c.personal.qrGen=(c.personal.qrGen||0)+1,c.personal.qrTimer=setInterval(zp,3e3)}).catch(function(s){k(s.message||"生成二维码失败","error")}).finally(function(){V(e("#personal-qr-btn"),!1)})}function zp(){if(!c.personal.unikey){mt();return}var s=c.personal.qrGen;U("/user/qr/check",{unikey:c.personal.unikey}).then(function(l){if(s===c.personal.qrGen){if(l.status!==200){mt(),e("#personal-qr-status").textContent=l.message||"检查登录状态失败",e("#personal-qr-status").style.color="var(--color-error)";return}var u=l.data.status;if(u==="waiting")e("#personal-qr-status").textContent="等待扫码...",e("#personal-qr-status").style.color="";else if(u==="scanned")e("#personal-qr-status").textContent="✅ 已扫码,请在手机上确认登录",e("#personal-qr-status").style.color="var(--color-warning)";else if(u==="success"){if(mt(),l.data&&l.data.cookie){c.personal.cookie=l.data.cookie;try{localStorage.setItem("netease_user_cookie",c.personal.cookie)}catch{}}e("#personal-qr-status").textContent="🎉 登录成功,正在加载你的歌单...",e("#personal-qr-status").style.color="var(--color-success)",k("登录成功,正在加载你的歌单","success"),Ws()}else u==="expired"?(mt(),e("#personal-qr-status").textContent="二维码已过期,请点击「扫码登录我的账号」重新获取",e("#personal-qr-status").style.color="var(--color-error)"):(mt(),e("#personal-qr-status").textContent=l.message||"登录状态异常",e("#personal-qr-status").style.color="var(--color-error)")}}).catch(function(l){mt(),e("#personal-qr-status").textContent=l.message||"检查登录状态失败",e("#personal-qr-status").style.color="var(--color-error)"})}function Ap(){window.confirm(`确定要退出登录当前网易云账号吗? +退出后需要重新扫码才能查看个人歌单。`)&&U("/user/logout",{}).then(function(s){if(s.status!==200)throw new Error(s.message||"退出失败");mt(),c.personal.qrGen=(c.personal.qrGen||0)+1,c.personal.authed=!1,c.personal.user=null,c.personal.playlists=[],c.personal.current=null,c.personal.cookie="";try{localStorage.removeItem("netease_user_cookie")}catch{}if(e("#personal-tracks-wrap").hidden=!0,c.parseAccount==="user"){c.parseAccount="admin";try{localStorage.setItem("netease_parse_account","admin")}catch{}k("已退出个人账号,解析账号已切换为全局账号","warning")}else k("已退出登录","success");rn(),G(),ar(!1)}).catch(function(s){k(s.message||"退出登录失败","error")})}e("#personal-qr-btn").addEventListener("click",Mp),e("#personal-refresh").addEventListener("click",Ws),e("#personal-logout").addEventListener("click",Ap),e("#personal-playlists-refresh").addEventListener("click",Gs),e("#personal-playlists").addEventListener("click",function(s){if(!s.target.closest(".act-uncollect")){var l=s.target.closest(".act-personal-open"),u=s.target.closest(".personal-pl");l?ic(l.getAttribute("data-id"),l.getAttribute("data-name")):u&&ic(u.getAttribute("data-id"),u.getAttribute("data-name"))}}),e("#personal-download-all").addEventListener("click",function(){lr(this,"personal")});function sc(){U("/global/playlists",{}).then(function(s){if(s.status===401){ac();return}if(s.status!==200)throw new Error(s.message||"获取全局账号歌单失败");var l=s.data||{};c.global.user=l.user||null,c.global.playlists=l.playlists||[],e("#global-gate").hidden=!0,e("#global-content").hidden=!1,lc(),cc()}).catch(function(s){k(s.message||"获取全局账号歌单失败","error"),ac()})}function ac(s){e("#global-content").hidden=!0,e("#global-gate").hidden=!1,e("#global-refresh").hidden=!0}function lc(){var s=c.global.user||{};e("#global-avatar").src=s.avatarUrl||"",e("#global-nickname").innerHTML=j(s.nickname||"未命名用户")+" "+nc(s.vipType),e("#global-signature").textContent=s.signature||""}function Rp(){U("/global/playlists",{}).then(function(s){if(s.status!==200)throw new Error(s.message||"获取全局账号歌单失败");c.global.user=s.data.user||null,c.global.playlists=s.data.playlists||[],lc(),cc()}).catch(function(s){k(s.message||"获取全局账号歌单失败","error")})}function oc(s){var l="";return s.specialType===5?l='❤️ 我喜欢的音乐':s.is_own?l='我创建的':l='收藏的','
'+j(s.name)+" "+l+'
'+je(s.trackCount)+" 首 · 播放 "+je(s.playCount)+(s.creator?" · by "+j(s.creator):"")+'
'}function cc(){var s=c.global.playlists,l=s.filter(function(d){return d.specialType===5}),u=s.filter(function(d){return d.specialType!==5});e("#global-fav-count").textContent="共 "+l.length+" 个",e("#global-collect-count").textContent="共 "+u.length+" 个",e("#global-fav-playlists").innerHTML=l.length?l.map(oc).join(""):'
📂
暂无「我喜欢的音乐」
',e("#global-collect-playlists").innerHTML=u.length?u.map(oc).join(""):'
📂
暂无收藏的歌单
'}function Op(s,l){if(s){c.global.current={id:s,name:l};var u=sr("global");e("#global-tracks-wrap").hidden=!1,e("#global-tracks-title").textContent="歌单歌曲:"+(l||s),e("#global-tracks").innerHTML='
⏳
加载中...
',e("#global-play-playlist").hidden=!1,e("#global-play-playlist").setAttribute("data-id",s),e("#global-play-playlist").setAttribute("data-name",l||s),window.scrollTo({top:e("#global-tracks-wrap").offsetTop-80,behavior:"smooth"}),U("/global/playlist",{id:s}).then(function(d){if(!lt("global",u)){if(d.status!==200)throw new Error(d.data&&d.data.msg||d.message||"获取歌单失败");Dp(d.data.playlist||{})}}).catch(function(d){lt("global",u)||(e("#global-tracks").innerHTML='
❌
'+j(d.message||"获取歌单失败")+"
")})}}function Dp(s){var l=s.tracks||[];Nn("global",l,1)}function uc(s,l,u){if(!s){k("缺少歌单 ID","warning");return}var d=e("#global-level").value;d==="auto"&&(d=c.levelsOk&&c.levelsOk.length?c.levelsOk[0]:"lossless"),c._globalPlayGen=(c._globalPlayGen||0)+1;var m=c._globalPlayGen;u&&V(u,!0,"解析中..."),U("/admin/site/play_key/get",{}).then(function(y){if(m!==c._globalPlayGen)throw new Error("__stale__");if(y.status!==200)throw new Error(y.message||"获取播放密钥失败");var C=(y.data||{}).key||"";return U("/api/playlist/play",{id:s,level:d,limit:100,key:C})}).then(function(y){if(m===c._globalPlayGen){if(y.status!==200)throw new Error(y.message||"获取播放列表失败");var C=y.data||{},S=C.tracks||[];if(!S.length){k("该歌单暂无可以播放的歌曲(可能均为版权受限)","warning");return}c.global.playQueue=S,c.global.playQueueIndex=0;var T=S[0];Hs(T.url||"",T.name||"",T.artists||"",T.picUrl||""),k("✅ 已获取 "+S.length+" 首可播放歌曲("+(C.level_name||d)+"),请点击播放器 ▶ 开始播放:"+T.name,"success"),c.global.current&&String(c.global.current.id)===String(s)&&(e("#global-tracks-title").textContent="歌单歌曲:"+(l||s)+"(播放 API 返回 "+S.length+" 首可播放)")}}).catch(function(y){m!==c._globalPlayGen||y.message==="__stale__"||k(y.message||"获取播放列表失败","error")}).finally(function(){u&&V(u,!1)})}function Ks(s){var l=(location.origin+location.pathname).replace(/\/+$/,""),u=l+"/api/playlist/play",d=u+"?id="+encodeURIComponent(s||"");c._apiModalGen=(c._apiModalGen||0)+1;var m=c._apiModalGen;U("/admin/site/play_key/get",{}).then(function(y){if(m===c._apiModalGen){var C=y&&y.data&&y.data.key||"",S=C?d+"&key="+encodeURIComponent(C):d;e("#api-url").textContent=S,e("#api-example").textContent='curl "'+S+`&level=lossless&limit=100" +// POST 表单:id=`+(s||"")+"&level=lossless&limit=100&key="+C}}).catch(function(){m===c._apiModalGen&&(e("#api-url").textContent=d)}),xr("api-modal")}function dc(){Rt("api-modal")}function fc(s,l){if(!s)return;function u(){var d=document.createElement("textarea");d.value=s,d.style.position="fixed",d.style.opacity="0",document.body.appendChild(d),d.select();try{var m=document.execCommand("copy");m?k(l||"已复制","success"):k("复制失败,请手动选择文本复制","error")}catch{k("复制失败,请手动选择文本复制","error")}document.body.removeChild(d)}navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(s).then(function(){k(l||"已复制","success")}).catch(u):u()}e("#global-goto-admin").addEventListener("click",function(){we("admin")}),e("#global-refresh").addEventListener("click",sc),e("#global-playlists-refresh").addEventListener("click",Rp),e("#global-api-open").addEventListener("click",function(){Ks("")}),e("#global-play-playlist").addEventListener("click",function(){uc(this.getAttribute("data-id"),this.getAttribute("data-name"),this)}),e("#global-download-all").addEventListener("click",function(){lr(this,"global")});function pc(s){var l=s.target.closest(".act-global-play, .act-global-open, .act-global-api"),u=s.target.closest(".global-pl"),d=l?l.getAttribute("data-id"):u?u.getAttribute("data-id"):"",m=l?l.getAttribute("data-name"):u?u.getAttribute("data-name"):"";d&&(l&&l.classList.contains("act-global-play")?uc(d,m,l):l&&l.classList.contains("act-global-api")?Ks(d):Op(d,m))}e("#global-fav-playlists").addEventListener("click",pc),e("#global-collect-playlists").addEventListener("click",pc),e("#playlist-api-btn").addEventListener("click",function(){var s=c.currentCollection;Ks(s&&s.type==="playlist"?s.id:"")}),e("#api-close").addEventListener("click",dc),e("#api-modal").addEventListener("click",function(s){s.target===this&&dc()}),e("#api-copy-url").addEventListener("click",function(){fc(e("#api-url").textContent,"接口地址已复制")}),e("#api-copy-example").addEventListener("click",function(){fc(e("#api-example").textContent,"请求示例已复制")});function hi(){var s=c.personal.authed,l=e("#collect-playlist-btn"),u=e("#collect-album-btn");if(l&&(l.hidden=!s),u&&(u.hidden=!s),s&&c.currentCollection){var d=c.currentCollection,m=d.type==="playlist"&&(c.personal.playlists||[]).some(function(y){return String(y.id)===String(d.id)});d.type==="album"?d.albumCollected?(e("#collect-album-btn").textContent="✓ 已收藏专辑",e("#collect-album-btn").classList.add("btn-success")):(e("#collect-album-btn").textContent="♡ 收藏专辑",e("#collect-album-btn").classList.remove("btn-success")):m?(e("#collect-playlist-btn").textContent="✓ 已收藏",e("#collect-playlist-btn").classList.add("btn-success")):(e("#collect-playlist-btn").textContent="♡ 收藏歌单",e("#collect-playlist-btn").classList.remove("btn-success"))}}function Ys(s,l,u){if(!c.personal.authed||!c.personal.cookie){k("请先在「个人歌单」扫码登录你的账号","warning"),we("personal");return}var d=u===1?"收藏":"取消收藏";U("/user/collect",{id:l,type:s,action:u,user_cookie:c.personal.cookie}).then(function(m){if(m.status!==200)throw new Error(m.message||d+"失败");k(u===1?"✅ 已收藏到你的个人歌单":"已取消收藏","success"),c.currentCollection&&String(c.currentCollection.id)===String(l)&&(c.currentCollection.albumCollected=s==="album"&&u===1);var y=e(s==="album"?"#collect-album-btn":"#collect-playlist-btn");y&&(u===1?(y.textContent=s==="album"?"✓ 已收藏专辑":"✓ 已收藏",y.classList.add("btn-success")):(y.textContent=s==="album"?"♡ 收藏专辑":"♡ 收藏歌单",y.classList.remove("btn-success"))),c.personal.authed&&Gs(),hi()}).catch(function(m){k(m.message||d+"失败","error")})}e("#collect-playlist-btn").addEventListener("click",function(){if(c.currentCollection){var s=(c.personal.playlists||[]).some(function(l){return String(l.id)===String(c.currentCollection.id)});Ys("playlist",c.currentCollection.id,s?2:1)}}),e("#collect-album-btn").addEventListener("click",function(){c.currentCollection&&Ys("album",c.currentCollection.id,1)}),document.addEventListener("click",function(s){var l=s.target.closest(".act-parse");if(l){sp(l.getAttribute("data-id"),l.getAttribute("data-name"));return}var u=s.target.closest(".act-download");if(u){Vo(u.getAttribute("data-id"),u.getAttribute("data-name"));return}var d=s.target.closest(".act-goto-playlist");if(d){vp(d.getAttribute("data-id"),d.getAttribute("data-name"));return}var m=s.target.closest(".act-goto-album");if(m){gp(m.getAttribute("data-id"),m.getAttribute("data-name"));return}var y=s.target.closest(".act-goto-artist");if(y){xp(y.getAttribute("data-id"),y.getAttribute("data-name"));return}var C=s.target.closest(".act-uncollect");if(C){Ys("playlist",C.getAttribute("data-id"),2);return}});function Fp(s,l,u){var d=document.querySelector('.modal-mask[data-dynamic="1"].show');d&&d.remove();var m=document.createElement("div");m.className="modal-mask show",m.setAttribute("data-dynamic","1"),m.innerHTML='',document.body.appendChild(m),m.addEventListener("click",function(y){y.target===m&&(m.remove(),u(!1))}),e("#cpd-ok").addEventListener("click",function(){m.remove(),u(!0)}),e("#cpd-cancel").addEventListener("click",function(){m.remove(),u(!1)})}function Up(s,l,u){var d=window.getSITECredits&&window.getSITECredits()||0;if(d<0){window.handleAuthExpired&&window.handleAuthExpired(),u(null);return}if(s.length<=d){u(s);return}if(d<=0){window.handleAuthExpired&&window.handleAuthExpired("",!0),u(null);return}V(l,!1),Fp(s.length,d,function(m){u(m?s.slice(0,d):null)})}function mc(s,l,u){var d={},m=(l||[]).filter(function(ce){return!ce||!ce.id||d[ce.id]?!1:(d[ce.id]=!0,!0)});if(!m.length){k("暂无可以下载的歌曲","warning");return}if(!Te()){V(s,!1);return}if(!u){Up(m,s,function(ce){ce&&mc(s,ce,!0)});return}if(c.settings.batchZip){V(s,!0,"打包中...");var y=P(),C=Object.keys(c.settings.metaFields).filter(function(ce){return c.settings.metaFields[ce]}),S=c.settings.batchWriteMeta&&C.length?C.join(","):"__none__",T=e("#global-level").value;T==="auto"&&(T=c.levelsOk&&c.levelsOk[0]||"lossless");var B=m.map(function(ce){return ce.id}).join(","),Pe=or();U("/download/batch_zip",{ids:B,quality:T,task_id:Pe,device_id:ht(),account:c.parseAccount,user_cookie:c.parseAccount==="user"?c.personal.cookie:"",filename_format:y.filename_format,write_meta:c.settings.batchWriteMeta?"true":"false",meta_fields:S,lyric_format:y.lyric_format}).then(function(ce){if(V(s,!1),ce.status!==200){k(ce.message||"批量打包提交失败","error");return}cr({id:Pe,type:"batch",label:"批量打包 · "+m.length+" 首",total:m.length,done:0,status:"queued"}),window.refreshSITECredits&&window.refreshSITECredits()}).catch(function(){V(s,!1),k("批量打包提交失败,请检查网络","error")});return}V(s,!0,"批量下载中...");var $e=0,Ve=0,It=0,vt=0;function Cc(){if($e>=m.length){V(s,!1);var ce=[];Ve&&ce.push("成功 "+Ve+" 首"),It&&ce.push("失败 "+It+" 首"),vt&&ce.push(vt+" 首结果未知(任务过期,请到任务面板重试)"),It&&!Ve&&!vt?k("批量下载全部失败("+It+" 首)","error"):It||vt?k("批量下载结束:"+ce.join(","),"warning"):k("批量下载完成,共 "+m.length+" 首","success");return}var oa=m[$e];k("正在下载:"+(oa.name||oa.id)+"("+($e+1)+"/"+m.length+")","info"),hc(oa,function(_c){$e++,_c===!1?It++:_c==="unknown"?vt++:Ve++,Cc()})}Cc()}function hc(s,l){if(!Te()){l();return}Os(s.id).then(function(u){var d=P(),m=Object.keys(c.settings.metaFields).filter(function(S){return c.settings.metaFields[S]}),y=c.settings.batchWriteMeta&&m.length?m.join(","):"__none__",C=or();U("/download",{id:s.id,quality:u,task_id:C,device_id:ht(),account:c.parseAccount,user_cookie:c.parseAccount==="user"?c.personal.cookie:"",filename_format:d.filename_format,write_meta:c.settings.batchWriteMeta?"true":"false",meta_fields:y,lyric_format:d.lyric_format,zip:d.zip}).then(function(S){if(S.status===401&&c.parseAccount==="user"){c.parseAccount="admin";try{localStorage.setItem("netease_parse_account","admin")}catch{}G(),rn(),k("个人账号未登录,已自动切换为全局账号下载","warning"),hc(s,l);return}if(S.status!==200){k(S.message||"下载失败:"+(s.name||s.id),"error"),l(!1);return}cr({id:C,type:"single",label:"单曲 · "+(s.name||s.id),total:1,done:0,status:"queued",doneCb:function(T){l(T)}}),window.refreshSITECredits&&window.refreshSITECredits()}).catch(function(){k("下载提交失败:"+(s.name||s.id),"error"),l(!1)})}).catch(function(){k("下载失败:"+(s.name||s.id),"error"),l(!1)})}function lr(s,l){var u=(c["tracks_"+l]||[]).map(function(d){return{id:d.id,name:d.name}});mc(s,u)}e("#playlist-download-all").addEventListener("click",function(){lr(this,"playlist")}),e("#album-download-all").addEventListener("click",function(){lr(this,"album")}),e("#artist-download-all").addEventListener("click",function(){lr(this,"artist")}),e("#detail-download").addEventListener("click",function(){c.currentSong&&Vo(c.currentSong.id,c.currentSong.name)});try{var Xs=document.querySelector(".app-header");if(Xs){var vc=function(){window.scrollY>8?Xs.classList.add("scrolled"):Xs.classList.remove("scrolled")};window.addEventListener("scroll",vc,{passive:!0}),vc()}}catch{}try{document.addEventListener("play",function(s){if(s.target&&s.target.tagName==="AUDIO"){var l=e("#player");l&&l.classList.add("playing")}},!0),document.addEventListener("pause",function(s){if(s.target&&s.target.tagName==="AUDIO"){var l=e("#player");l&&l.classList.remove("playing")}},!0)}catch{}try{var Hp=new MutationObserver(function(){var s=document.querySelector(".modal-mask.show, .drawer.show");document.body.style.overflow=s?"hidden":"",s?document.documentElement.classList.add("overlay-open"):document.documentElement.classList.remove("overlay-open")});Hp.observe(document.body,{attributes:!0,attributeFilter:["class"],subtree:!0})}catch{}try{var Zs=function(s){var l=document.getElementById("player-progress");if(l){if(!s||!s.duration||!s.buffered||!s.buffered.length){l.style.setProperty("--buffered","0%");return}var u=s.buffered.end(s.buffered.length-1);l.style.setProperty("--buffered",Math.min(100,u/s.duration*100)+"%")}};document.addEventListener("progress",function(s){s.target&&s.target.tagName==="AUDIO"&&Zs(s.target)},!0),["timeupdate","loadstart","emptied"].forEach(function(s){document.addEventListener(s,function(l){l.target&&l.target.tagName==="AUDIO"&&s!=="timeupdate"?Zs(null):l.target&&l.target.tagName==="AUDIO"&&Zs(l.target)},!0)})}catch{}try{document.addEventListener("keydown",function(s){var l=s.target;if(!(l&&(l.tagName==="INPUT"||l.tagName==="TEXTAREA"||l.tagName==="SELECT"||l.tagName==="BUTTON"||l.tagName==="A"||l.isContentEditable||l.getAttribute&&l.getAttribute("role")==="button"))&&!(s.key!==" "&&s.key!=="ArrowLeft"&&s.key!=="ArrowRight")){var u=document.querySelector("#player audio");if(!(!u||!u.src))if(s.key===" "){s.preventDefault();var d=document.getElementById("player-toggle");d&&d.click()}else s.key==="ArrowLeft"?(s.preventDefault(),u.currentTime=Math.max(0,u.currentTime-5)):(s.preventDefault(),u.currentTime=Math.min(u.duration||1/0,u.currentTime+5))}})}catch{}try{var Js=document.title,Bp=function(s){var l="";if(s&&s.id==="podcast-audio"){var u=document.getElementById("podcast-program-name");l=u?u.textContent:""}else{var d=document.getElementById("player-name");l=d?d.textContent:""}return l};document.addEventListener("play",function(s){if(!(!s.target||s.target.tagName!=="AUDIO")){var l=Bp(s.target);document.title=l?"▶ "+l+" - "+Js:Js}},!0),document.addEventListener("pause",function(s){!s.target||s.target.tagName!=="AUDIO"||(document.title=Js)},!0)}catch{}try{(function(){var s=navigator.userAgent||"",l=/MSIE|Trident\//.test(s),u=!window.fetch||!window.Promise||!document.addEventListener;if(l||u){var d=document.getElementById("legacy-browser-blocker");d&&(d.className="show");var m=document.getElementById("page-loading");m&&(m.style.display="none");try{document.documentElement.style.background="#1f2329"}catch{}return}document.addEventListener("keydown",function(y){(y.key==="Tab"||y.keyCode===9)&&!document.documentElement.className.match(/\bkbd-nav\b/)&&(document.documentElement.className+=" kbd-nav")},!0),document.addEventListener("mousedown",function(){document.documentElement.className=document.documentElement.className.replace(/\s*kbd-nav\b/,"")},!0)})()}catch{}try{var vi=navigator.userAgent||"",ea=vi.indexOf("MicroMessenger")!==-1,ta=vi.indexOf(" QQ/")!==-1&&vi.indexOf("MQQBrowser")===-1,gc=/AlipayClient|DingTalk|Weibo|HeyTapBrowser|HiSpace|HMSCore/.test(vi);if(ea||ta||gc){var yc=!1;try{yc=sessionStorage.getItem("netease_wv_guide_closed")==="1"}catch{}var na=document.getElementById("webview-guide");if(na&&!yc){if(gc&&!ea&&!ta){var xc=na.querySelector(".wg-text");xc&&(xc.innerHTML="💬 当前在 App 内置浏览器中,音乐下载可能受限。建议复制链接到系统浏览器打开,获得完整体验。")}na.hidden=!1}var wc=document.getElementById("webview-guide-close");wc&&wc.addEventListener("click",function(){var s=document.getElementById("webview-guide");s&&(s.hidden=!0);try{sessionStorage.setItem("netease_wv_guide_closed","1")}catch{}}),document.addEventListener("click",function(s){var l=s.target&&s.target.closest?s.target.closest("button, a"):null;if(l){var u=((l.id||"")+" "+(l.className||"")).toLowerCase(),d=l.textContent||"";(/download|zip/.test(u)||d.indexOf("⬇")!==-1||d.indexOf("下载")!==-1||d.indexOf("打包")!==-1)&&k(ea||ta?"微信/QQ 内置浏览器可能无法下载文件,建议点右上角「···」→「在浏览器中打开」":"当前 App 内置浏览器可能无法下载文件,建议复制链接到系统浏览器打开","warning")}},!0)}}catch{}try{var jc={},kc=0,ra=function(s,l,u){try{if(kc>=8)return;var d=s+"|"+l;if(jc[d])return;jc[d]=1,kc++;var m=new URLSearchParams({type:s,msg:l,stack:u||"",page:location.href.slice(0,120),env:(navigator.userAgent||"").slice(0,180)+" | "+window.innerWidth+"x"+window.innerHeight+" | dpr"+(window.devicePixelRatio||1)});navigator.sendBeacon?navigator.sendBeacon("/api/fe_error",m):fetch("/api/fe_error",{method:"POST",body:m,keepalive:!0}).catch(function(){})}catch{}};window.addEventListener("error",function(s){if(s.target&&s.target!==window&&(s.target.tagName==="IMG"||s.target.tagName==="SCRIPT"||s.target.tagName==="LINK")){if(s.target.tagName==="IMG"&&!(s.target.getAttribute("src")||"").trim())return;ra("resource",(s.target.tagName||"")+" 加载失败: "+(s.target.src||s.target.href||"").slice(-80));return}ra("error",s.message||"未知错误",(s.filename||"")+":"+(s.lineno||0))},!0),window.addEventListener("unhandledrejection",function(s){var l=s.reason;ra("promise",l&&(l.message||String(l))||"未处理的 Promise 拒绝",l&&l.stack?String(l.stack).slice(0,300):"")})}catch{}try{t("#tabs .tab").forEach(function(s){s.setAttribute("tabindex","0"),s.setAttribute("role","button"),s.addEventListener("keydown",function(l){l.key==="Enter"&&(l.preventDefault(),s.click())})})}catch{}var qp=["auto","jymaster","jyeffect","sky","hires","lossless","exhigh","standard","dolby"];try{var ia=localStorage.getItem("netease_global_level");ia&&qp.indexOf(ia)!==-1&&(e("#global-level").value=ia)}catch{}e("#global-level").addEventListener("change",function(){try{localStorage.setItem("netease_global_level",e("#global-level").value)}catch{}}),e("#quality-save").addEventListener("click",function(){try{localStorage.setItem("netease_global_level",e("#global-level").value)}catch{}k("全局音质已保存:"+ni(e("#global-level").value),"success")});try{var sa=localStorage.getItem("netease_parse_account");(sa==="user"||sa==="admin")&&(c.parseAccount=sa)}catch{}try{var bc=localStorage.getItem("netease_user_cookie");bc&&(c.personal.cookie=bc)}catch{}G(),o(),nr(),g(),p(),ri(),window.SITE_TASKS_BOOTSTRAP=Ec,window.SITE_ON_LOGOUT=function(){try{localStorage.removeItem("netease_user_cookie")}catch{}mt(),c.personal.qrGen=(c.personal.qrGen||0)+1,c.personal.authed=!1,c.personal.user=null,c.personal.playlists=[],c.personal.current=null,c.personal.cookie="";var s=e("#personal-tracks-wrap");if(s&&(s.hidden=!0),c.parseAccount==="user"){c.parseAccount="admin";try{localStorage.setItem("netease_parse_account","admin")}catch{}}else try{localStorage.removeItem("netease_parse_account")}catch{}rn(),ar(!1),G()},window.SITE_LOGGED_IN&&Ec(),c.settings.cookiePrefs.accepted||setTimeout(function(){$(),k("首次使用请阅读并同意《用户协议》与《隐私政策》","info")},600);function $p(s){return s==null||!isFinite(s)||s<=0?"--":s<60?"约 "+Math.max(1,Math.round(s))+" 秒":s<3600?"约 "+Math.ceil(s/60)+" 分钟":"约 "+(s/3600).toFixed(1)+" 小时"}function Nc(){U("/api/queue",{}).then(function(s){if(s.status!==200)throw new Error(s.message||"获取排队状态失败");var l=s.data||{},u=(l.batch_waiting||0)+(l.download_waiting||0);e("#queue-num").textContent=u,e("#queue-download").textContent=(l.download_active||0)+"/"+(l.download_capacity||"-"),e("#queue-batch").textContent=(l.batch_active||0)+"/"+(l.batch_capacity||"-");var d=l.avg_batch_seconds,m=d?(l.batch_waiting||0)*d:null;e("#queue-est").textContent="预计等待:"+$p(m),e("#queue-float").classList.toggle("busy",u>0)}).catch(function(){})}Nc(),setInterval(Nc,3e3);function ht(){var s="netease_device_id";if(window.__deviceIdCache)return window.__deviceIdCache;var l=null;try{l=localStorage.getItem(s)}catch{}if(!l){l="d"+Date.now().toString(36)+Math.random().toString(36).slice(2,12);try{localStorage.setItem(s,l)}catch{}}return window.__deviceIdCache=l,l}function or(){return"u"+Date.now().toString(36)+Math.random().toString(36).slice(2,8)}function Vp(s){if(s==null||!isFinite(s)||s<=0)return"--";s=Math.max(0,Math.round(s));var l=Math.floor(s/3600),u=Math.floor(s%3600/60),d=s%60;return l>0?l+":"+String(u).padStart(2,"0")+":"+String(d).padStart(2,"0"):String(u).padStart(2,"0")+":"+String(d).padStart(2,"0")}var me=[],sn=null;function cr(s){me.push(s),an(),e("#task-panel").classList.add("show"),sn||(sn=setInterval(ur,1500)),ur()}function an(){var s=e("#task-list");e("#task-count").textContent=me.length,s.innerHTML=me.map(function(l){var u;l.status==="done"?u=100:l.status==="running"&&typeof l.livePct=="number"?u=Math.max(1,Math.min(99,Math.round(l.livePct))):u=l.total?Math.round((l.done||0)/l.total*100):0;var d=l.statusText||(l.status==="done"?"完成":l.status==="error"?"失败":l.status==="canceled"?"已取消":l.status==="paused"?"已暂停":u+"%"),m=l.status==="done"||l.status==="error"||l.status==="canceled"?"":'
',y=l.status==="queued"||l.status==="running"||l.status==="paused"?'':"",C=l.claimable?'':"",S=l.claimable?'':"";return'
'+j(l.label)+''+j(d)+""+y+C+S+"
"+m+"
"}).join("")||'
暂无任务
',t("#task-list .task-item-cancel").forEach(function(l){l.addEventListener("click",function(){Gp(l.getAttribute("data-id"))})}),t("#task-list .task-item-claim").forEach(function(l){l.addEventListener("click",function(){Qp(l.getAttribute("data-id"))})}),t("#task-list .task-item-dismiss").forEach(function(l){l.addEventListener("click",function(){var u=l.getAttribute("data-id");me=me.filter(function(d){return d.id!==u}),an(),me.length||e("#task-panel").classList.remove("show")})})}var aa=!1;function ur(){if(aa)return;var s=me.filter(function(d){return d.status==="queued"||d.status==="running"||d.status==="paused"});if(!s.length){sn&&(clearInterval(sn),sn=null);return}aa=!0;var l=0;function u(){l++,l>=s.length&&(aa=!1)}s.forEach(function(d){U("/api/batch_progress",{task_id:d.id}).then(function(m){if(m.status===404){if(d._gone)return;d._gone=!0,k("任务已过期:"+d.label,"info"),Sn(d.id,500),an(),typeof d.doneCb=="function"&&d.doneCb("unknown");return}if(m.status===200){var y=m.data||{};if(!(d._done||d._ended)){if(d.done=y.done||0,typeof y.total=="number"&&y.total>0&&(d.total=y.total),y.status==="running"){d.status="running";var C=Math.round(y.percent||0);d.livePct=typeof y.percent=="number"?y.percent:d.livePct,d.statusText=C+"%"+(y.eta?" · 剩"+Vp(y.eta):""),d.statusText+=y.failed?" · 失败"+y.failed:""}else d.status=y.status||d.status,d.statusText=y.msg||y.status;y.status==="done"?(y.refunded>0&&(d.statusText=(d.statusText||"完成")+" · 已退回 "+y.refunded+" 次",k("任务完成:"+d.label+",失败部分已退回 "+y.refunded+" 次下载次数","info")),window.refreshSITECredits&&window.refreshSITECredits(),la(d)):y.status==="error"?(d._ended=!0,k("下载失败:"+d.label+(y.msg?"("+y.msg+")":""),"error"),window.refreshSITECredits&&window.refreshSITECredits(),y.has_result?la(d):(typeof d.doneCb=="function"&&d.doneCb(!1),Sn(d.id,8e3))):y.status==="canceled"&&(d._ended=!0,window.refreshSITECredits&&window.refreshSITECredits(),k("已取消:"+d.label,"info"),y.has_result?la(d):(typeof d.doneCb=="function"&&d.doneCb(!1),Sn(d.id,2500))),an()}}}).catch(function(){}).then(function(){u()})})}function Sc(s){var l=(s.type==="batch"?"/download/batch_zip/result":"/download/result")+"?task_id="+encodeURIComponent(s.id)+"&device_id="+encodeURIComponent(ht()),u=document.createElement("a");u.href=l,u.download="",document.body.appendChild(u),u.click(),document.body.removeChild(u)}function Qp(s){var l=null;me.forEach(function(u){u.id===s&&(l=u)}),l&&(Sc(l),k("正在重新领取:"+l.label,"info"))}function Wp(s){for(var l=me.filter(function(m){return m.claimable||m._ended}),u=l.length-s,d=0;d0&&(k("任务已恢复,继续下载","info"),ur())}).catch(function(){})}setInterval(Kp,15e3);function Ec(){U("/api/task/list",{device_id:ht()}).then(function(s){if(s.status===200){var l=s.data.tasks||[];if(l.length){var u=!1;l.forEach(function(d){me.some(function(m){return m.id===d.task_id})||(me.push({id:d.task_id,type:d.type,label:d.kind==="podcast"?"播客打包 · "+d.total+" 集":"批量打包 · "+d.total+" 首",total:d.total,done:d.done||0,status:d.status,statusText:d.status==="paused"?"已暂停(恢复中...)":d.msg||""}),u=!0)}),u&&(an(),e("#task-panel").classList.add("show"),sn||(sn=setInterval(ur,1500)),ur())}}}).catch(function(){})}e("#task-panel-close").addEventListener("click",function(){e("#task-panel").classList.remove("show")}),Vn.switchTab=we,Vn.closeStatsModal=v,Vn.closeCookieModal=fe}const Vn={switchTab:null,closeStatsModal:null,closeCookieModal:null};function Ie(){return Vn.switchTab&&Vn.switchTab.apply(this,arguments)}const tp=Object.freeze(Object.defineProperty({__proto__:null,__legacyApi:Vn,__legacyBoot:Tv,switchTab:Ie},Symbol.toStringTag,{value:"Module"}));function Pv(){return ep(),i.jsx("div",{className:"toast-wrap",id:"toast-wrap",children:Qi.map(e=>i.jsx("div",{className:"toast toast-"+e.type+" show",children:e.msg},e.id))})}function Iv(){return ep(),i.jsxs(i.Fragment,{children:["// 自动转换片段(供手工组装)",i.jsxs("div",{id:"legacy-browser-blocker",role:"alert",children:[i.jsx("div",{className:"lb-icon",children:"⚠️"}),i.jsx("h2",{children:"当前浏览器内核过旧,无法运行云村小助手"}),i.jsx("p",{children:"您可能正在使用 IE 内核浏览器,或浏览器的「兼容模式」。"}),i.jsx("p",{children:"本站基于现代浏览器技术构建,请切换或更换浏览器后访问:"}),i.jsxs("div",{className:"lb-list",children:["① 360 / QQ / 搜狗浏览器:点击地址栏旁的「闪电/极速模式」图标切换",i.jsx("br",{}),"② Windows:使用自带 Microsoft Edge,或安装 Chrome / 360 极速版",i.jsx("br",{}),"③ 安卓手机:使用系统自带浏览器、微信内置浏览器或 Chrome",i.jsx("br",{}),"④ 苹果设备:Safari、微信内置浏览器均可正常使用"]})]}),"// 自动转换片段(供手工组装)",i.jsxs("div",{className:"page-loading",id:"page-loading",children:[i.jsx("div",{className:"ring"}),i.jsx("span",{children:"正在加载云村小助手..."})]}),"// 自动转换片段(供手工组装)",i.jsx("header",{className:"app-header",children:i.jsxs("div",{className:"app-header-inner",children:[i.jsxs("div",{className:"brand",id:"brand-home",title:"返回主页面",children:[i.jsx("div",{className:"brand-logo",children:"♪"}),i.jsxs("div",{children:[i.jsx("div",{className:"brand-title",children:"云村小助手"}),i.jsx("div",{className:"brand-sub",children:"实时解析网易云音乐单曲、获取真实下载地址及封面信息"})]})]}),i.jsxs("div",{className:"header-actions",children:[i.jsxs("div",{className:"auth-area",id:"auth-guest-area",children:[i.jsx("button",{className:"btn btn-primary btn-sm",id:"btn-open-login",type:"button",children:"登录"}),i.jsx("button",{className:"btn btn-sm",id:"btn-open-register",type:"button",children:"注册"})]}),i.jsxs("div",{className:"auth-area",id:"auth-user-area",hidden:!0,children:[i.jsx("span",{className:"tag-pill ok",id:"auth-duration-pill",title:"剩余次数"}),i.jsx("div",{className:"user-avatar",id:"user-avatar",title:"个人中心",children:"U"})]}),i.jsxs("button",{className:"icon-btn",id:"btn-settings",type:"button",children:["⚙️ ",i.jsx("span",{children:"设置"})]}),i.jsxs("button",{className:"icon-btn",id:"btn-changelog",type:"button",children:["📋 ",i.jsx("span",{children:"更新日志"})]}),i.jsxs("button",{className:"icon-btn",id:"theme-toggle",type:"button",children:["🌙 ",i.jsx("span",{children:"深色"})]})]})]})}),i.jsxs("main",{className:"main-container",children:[i.jsxs("div",{className:"webview-guide",id:"webview-guide",hidden:!0,children:[i.jsx("span",{className:"wg-icon",children:"💬"}),i.jsxs("span",{className:"wg-text",children:["当前在微信 / QQ 内置浏览器中,",i.jsx("b",{children:"音乐下载可能受限"}),"。建议点击右上角「···」→「在浏览器中打开」,获得完整体验。"]}),i.jsx("button",{className:"wg-close",id:"webview-guide-close",type:"button",children:"知道了"})]}),i.jsxs("div",{className:"card",children:[i.jsxs("div",{className:"account-bar",style:{display:"flex",alignItems:"center",gap:"12px",flexWrap:"wrap",paddingBottom:"12px"},children:[i.jsx("span",{className:"gq-label",children:"👤 解析账号"}),i.jsx("span",{className:"badge",id:"account-vip-badge",style:{borderColor:"var(--color-text-tertiary)",color:"var(--color-text-secondary)"},children:"获取中..."}),i.jsx("span",{className:"account-quality-list",id:"account-qualities",style:{fontSize:"12px",color:"var(--color-text-secondary)"}}),i.jsx("button",{className:"btn btn-sm btn-link",id:"account-refresh",type:"button",style:{height:"26px"},children:"刷新"})]}),i.jsx("div",{className:"hint",id:"account-note",style:{margin:"0 0 14px"},children:"💡 小提示:可在「个人歌单」登录你自己的 SVIP 网易云音乐账号,并切换为个人账号解析,即可下载/试听更高音质。"}),i.jsxs("div",{className:"global-quality-bar",children:[i.jsx("span",{className:"gq-label",children:"🎧 全局音质"}),i.jsxs("select",{className:"select",id:"global-level",title:"全局音质选择",defaultValue:"auto",children:[i.jsx("option",{value:"auto",children:"最高音质(自动)"}),i.jsx("option",{value:"jymaster",children:"超清母带"}),i.jsx("option",{value:"jyeffect",children:"高清环绕声"}),i.jsx("option",{value:"sky",children:"沉浸环绕声"}),i.jsx("option",{value:"hires",children:"Hi-Res音质"}),i.jsx("option",{value:"lossless",children:"无损音质"}),i.jsx("option",{value:"exhigh",children:"极高音质"}),i.jsx("option",{value:"standard",children:"标准音质"}),i.jsx("option",{value:"dolby",children:"杜比全景声"})]}),i.jsx("button",{className:"btn btn-sm",id:"quality-save",type:"button",style:{height:"30px"},children:"保存"}),i.jsx("span",{className:"gq-hint",children:"全局生效:单曲解析、音乐下载、批量下载均使用该音质;「最高音质(自动)」会按账号会员类型自动尝试最高可解析音质。"})]}),i.jsxs("div",{className:"tabs",id:"tabs",children:[i.jsx("div",{className:"tab"+(c.currentTab==="search"?" active":""),"data-tab":"search",onClick:()=>Ie("search"),children:"搜索"},"search"),i.jsx("div",{className:"tab"+(c.currentTab==="song"?" active":""),"data-tab":"song",onClick:()=>Ie("song"),children:"单曲"},"song"),i.jsx("div",{className:"tab"+(c.currentTab==="playlist"?" active":""),"data-tab":"playlist",onClick:()=>Ie("playlist"),children:"歌单"},"playlist"),i.jsx("div",{className:"tab"+(c.currentTab==="album"?" active":""),"data-tab":"album",onClick:()=>Ie("album"),children:"专辑"},"album"),i.jsx("div",{className:"tab"+(c.currentTab==="podcast"?" active":""),"data-tab":"podcast",onClick:()=>Ie("podcast"),children:"播客"},"podcast"),i.jsx("div",{className:"tab"+(c.currentTab==="admin"?" active":""),"data-tab":"admin",id:"tab-admin",hidden:!0,onClick:()=>Ie("admin"),children:"管理员设置"},"admin"),i.jsx("div",{className:"tab"+(c.currentTab==="global"?" active":""),"data-tab":"global",id:"tab-global",hidden:!0,onClick:()=>Ie("global"),children:"全局账号歌单"},"global"),i.jsx("div",{className:"tab"+(c.currentTab==="artist"?" active":""),"data-tab":"artist",onClick:()=>Ie("artist"),children:"歌手"},"artist"),i.jsx("div",{className:"tab"+(c.currentTab==="toplist"?" active":""),"data-tab":"toplist",onClick:()=>Ie("toplist"),children:"榜单"},"toplist"),i.jsx("div",{className:"tab"+(c.currentTab==="personal"?" active":""),"data-tab":"personal",onClick:()=>Ie("personal"),children:"个人歌单"},"personal"),i.jsx("div",{className:"tab"+(c.currentTab==="usercenter"?" active":""),"data-tab":"usercenter",id:"tab-usercenter",hidden:!0,onClick:()=>Ie("usercenter"),children:"个人中心"},"usercenter"),i.jsx("div",{className:"tab"+(c.currentTab==="useradmin"?" active":""),"data-tab":"useradmin",id:"tab-useradmin",hidden:!0,onClick:()=>Ie("useradmin"),children:"管理后台"},"useradmin"),i.jsx("div",{className:"tab"+(c.currentTab==="about"?" active":""),"data-tab":"about",onClick:()=>Ie("about"),children:"关于网站"},"about")]}),i.jsxs("div",{className:"panel"+(c.currentTab==="search"?" active":""),"data-panel":"search",children:[i.jsxs("div",{className:"search-header",style:{display:"flex",alignItems:"center",gap:"12px",flexWrap:"wrap"},children:[i.jsx("div",{style:{flex:"none",width:"36px",height:"36px",borderRadius:"10px",background:"var(--color-fill)",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"17px"},children:"🔍"}),i.jsxs("div",{style:{flex:"1",minWidth:"220px",display:"flex",gap:"12px",flexWrap:"wrap"},children:[i.jsx("input",{className:"input",id:"search-input",placeholder:"在此输入搜索关键词",autoComplete:"off",style:{flex:"1",minWidth:"200px"}}),i.jsxs("select",{className:"select search-header-select",id:"search-type",title:"搜索类型",style:{width:"110px"},children:[i.jsx("option",{value:"1",children:"歌曲"}),i.jsx("option",{value:"1000",children:"歌单"}),i.jsx("option",{value:"10",children:"专辑"}),i.jsx("option",{value:"100",children:"歌手"})]}),i.jsxs("select",{className:"select",id:"search-limit",title:"返回数量",style:{width:"90px"},defaultValue:"30",children:[i.jsx("option",{value:"10",children:"10 条"}),i.jsx("option",{value:"20",children:"20 条"}),i.jsx("option",{value:"30",children:"30 条"}),i.jsx("option",{value:"50",children:"50 条"})]})]}),i.jsx("button",{className:"btn btn-primary",id:"search-btn",type:"button",children:"搜索"})]}),i.jsx("div",{className:"hint",children:"支持搜索歌曲、歌单、专辑、歌手;结果点击即可跳转对应功能解析。"})]}),i.jsxs("div",{className:"panel"+(c.currentTab==="song"?" active":""),"data-panel":"song",children:[i.jsxs("div",{className:"input-row",children:[i.jsx("input",{className:"input",id:"song-input",placeholder:"将网易云音乐的分享链接或歌曲ID粘贴到这里,点击右侧按钮即可解析",autoComplete:"off"}),i.jsx("button",{className:"btn btn-primary",id:"parse-btn",type:"button",children:"开始解析"})]}),i.jsxs("div",{className:"history-row",id:"history-row",hidden:!0,children:[i.jsx("span",{className:"history-label",children:"解析历史:"}),i.jsx("span",{id:"history-list"})]})]}),i.jsx("div",{className:"panel"+(c.currentTab==="playlist"?" active":""),"data-panel":"playlist",children:i.jsxs("div",{className:"input-row",children:[i.jsx("input",{className:"input",id:"playlist-input",placeholder:"网易云音乐的分享链接或歌单ID,例如 https://music.163.com/playlist?id=123456",autoComplete:"off"}),i.jsx("button",{className:"btn btn-primary",id:"playlist-btn",type:"button",children:"解析歌单"})]})}),i.jsx("div",{className:"panel"+(c.currentTab==="album"?" active":""),"data-panel":"album",children:i.jsxs("div",{className:"input-row",children:[i.jsx("input",{className:"input",id:"album-input",placeholder:"网易云音乐的分享链接或专辑ID,例如 https://music.163.com/album?id=123456",autoComplete:"off"}),i.jsx("button",{className:"btn btn-primary",id:"album-btn",type:"button",children:"解析专辑"})]})}),i.jsxs("div",{className:"panel"+(c.currentTab==="podcast"?" active":""),"data-panel":"podcast",children:[i.jsxs("div",{className:"input-row",children:[i.jsx("input",{className:"input",id:"podcast-input",placeholder:"播客电台/单集分享链接或ID,例如 https://music.163.com/djradio?id=1212051560",autoComplete:"off"}),i.jsxs("select",{className:"select",id:"podcast-quality",title:"单集音质",style:{width:"130px"},defaultValue:"auto",children:[i.jsx("option",{value:"auto",children:"最高音质(自动)"}),i.jsx("option",{value:"exhigh",children:"极高 320K"}),i.jsx("option",{value:"standard",children:"标准 128K"})]}),i.jsx("button",{className:"btn btn-primary",id:"podcast-btn",type:"button",children:"解析"})]}),i.jsxs("div",{className:"input-row",style:{marginTop:"10px"},children:[i.jsx("input",{className:"input",id:"podcast-search-input",placeholder:"搜索播客电台关键词,例如:故事 / 脱口秀 / 有声书",autoComplete:"off"}),i.jsx("button",{className:"btn",id:"podcast-search-btn",type:"button",children:"🔍 搜索播客"})]}),i.jsx("div",{className:"hint",children:"支持 电台链接(djradio?id=)、单集链接(program?id= / sound?id=)、163cn.tv 短链或纯数字ID;解析后可在线试听、获取直链、下载单集、整台打包 ZIP。"}),i.jsxs("div",{id:"podcast-loading",className:"empty-state",hidden:!0,children:[i.jsx("div",{className:"empty-icon",children:"🎙️"}),i.jsx("div",{children:"解析中..."})]}),i.jsxs("div",{id:"podcast-radio-result",hidden:!0,children:[i.jsxs("div",{className:"collection-header",children:[i.jsx("img",{className:"collection-cover",id:"podcast-radio-cover",src:"",alt:"cover"}),i.jsxs("div",{className:"collection-info",children:[i.jsx("div",{className:"collection-name",id:"podcast-radio-name"}),i.jsx("div",{className:"collection-meta",id:"podcast-radio-meta"}),i.jsx("div",{className:"collection-meta podcast-desc",id:"podcast-radio-desc"}),i.jsxs("div",{className:"collection-actions",style:{display:"flex",gap:"10px",flexWrap:"wrap"},children:[i.jsx("button",{className:"btn btn-success btn-sm",id:"podcast-radio-zip",type:"button",children:"📦 打包整个播客"}),i.jsx("button",{className:"btn btn-sm",id:"podcast-radio-order",type:"button",children:"⇅ 最新在前"})]})]})]}),i.jsx("div",{className:"divider"}),i.jsxs("div",{className:"card-title",children:["单集列表 ",i.jsx("span",{className:"count",id:"podcast-episode-count"})]}),i.jsx("div",{className:"song-list",id:"podcast-episodes"}),i.jsx("div",{className:"comment-more",id:"podcast-more-wrap",hidden:!0,children:i.jsx("button",{className:"btn btn-sm",id:"podcast-more",type:"button",children:"加载更多单集"})})]}),i.jsx("div",{id:"podcast-program-result",hidden:!0,children:i.jsxs("div",{className:"song-detail",children:[i.jsx("img",{className:"song-detail-cover",id:"podcast-program-cover",src:"",alt:"cover"}),i.jsxs("div",{className:"song-detail-info",children:[i.jsx("div",{className:"detail-name",id:"podcast-program-name"}),i.jsxs("div",{className:"detail-meta",children:[i.jsx("b",{children:"播客"}),i.jsx("span",{id:"podcast-program-radio"})]}),i.jsxs("div",{className:"detail-meta",children:[i.jsx("b",{children:"主播"}),i.jsx("span",{id:"podcast-program-dj"})]}),i.jsxs("div",{className:"detail-meta",children:[i.jsx("b",{children:"信息"}),i.jsx("span",{id:"podcast-program-meta"})]}),i.jsx("div",{className:"detail-badges",id:"podcast-program-badges"}),i.jsxs("div",{className:"detail-actions",style:{display:"flex",gap:"10px",flexWrap:"wrap"},children:[i.jsx("button",{className:"btn btn-success btn-sm",id:"podcast-program-download",type:"button",children:"⬇ 下载单集"}),i.jsx("a",{className:"btn btn-sm",id:"podcast-program-open",href:"#",target:"_blank",rel:"noopener",style:{textDecoration:"none"},children:"打开直链"})]}),i.jsx("div",{className:"hint",id:"podcast-program-tip",hidden:!0,style:{marginTop:"10px"}}),i.jsx("audio",{controls:!0,id:"podcast-audio",style:{width:"100%",marginTop:"14px"},preload:"none"})]})]})}),i.jsxs("div",{id:"podcast-search-result",hidden:!0,children:[i.jsx("div",{className:"divider"}),i.jsxs("div",{className:"card-title",children:["播客搜索结果 ",i.jsx("span",{className:"count",id:"podcast-search-count"})]}),i.jsx("div",{className:"song-list",id:"podcast-search-list"}),i.jsx("div",{className:"hint",id:"podcast-search-tip",hidden:!0,style:{marginTop:"8px"}})]}),i.jsxs("div",{id:"podcast-hot-wrap",style:{marginTop:"10px"},children:[i.jsx("div",{className:"divider"}),i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px",flexWrap:"wrap",marginBottom:"12px"},children:[i.jsx("div",{className:"card-title",style:{margin:"0"},children:"热门播客"}),i.jsx("div",{className:"podcast-cate-bar",id:"podcast-cate-bar"})]}),i.jsx("div",{className:"toplist-grid",id:"podcast-hot-grid"}),i.jsx("div",{className:"comment-more",id:"podcast-hot-more-wrap",hidden:!0,style:{marginTop:"14px"},children:i.jsx("button",{className:"btn btn-sm",id:"podcast-hot-more",type:"button",children:"加载更多热门播客"})})]})]}),i.jsxs("div",{className:"panel"+(c.currentTab==="admin"?" active":""),"data-panel":"admin",children:[i.jsxs("div",{id:"admin-gate",children:[i.jsxs("div",{className:"input-row",children:[i.jsx("input",{className:"input",id:"admin-password",type:"password",placeholder:"请输入管理员密码",autoComplete:"off"}),i.jsx("button",{className:"btn btn-primary",id:"admin-enter",type:"button",children:"验证并进入"})]}),i.jsx("div",{className:"hint",children:"管理员设置:全局二维码登录与 Cookie 管理。登录后 Cookie 自动保存,无需重复扫码。"})]}),i.jsxs("div",{id:"admin-content",hidden:!0,children:[i.jsxs("div",{className:"card",style:{boxShadow:"none",background:"var(--color-fill)",marginBottom:"16px",padding:"16px 20px"},children:[i.jsxs("div",{className:"setting-item",style:{padding:"6px 0"},children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"登录状态"}),i.jsx("div",{className:"setting-desc",id:"admin-status-desc",children:"获取中..."})]}),i.jsx("span",{className:"badge",id:"admin-status-badge",children:"-"})]}),i.jsx("div",{className:"setting-item",style:{padding:"6px 0"},children:i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"Cookie 文件"}),i.jsx("div",{className:"setting-desc",id:"admin-cookie-file",children:"-"})]})}),i.jsx("div",{className:"setting-item",style:{padding:"6px 0"},children:i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"Cookie 数量 / 最后更新"}),i.jsx("div",{className:"setting-desc",id:"admin-cookie-time",children:"-"})]})})]}),i.jsxs("div",{className:"detail-actions",children:[i.jsx("button",{className:"btn btn-primary btn-sm",id:"admin-qr-btn",type:"button",children:"📱 生成登录二维码"}),i.jsx("button",{className:"btn btn-danger btn-sm",id:"admin-cookie-delete",type:"button",children:"🗑 删除 Cookie(重新扫码)"}),i.jsx("button",{className:"btn btn-sm",id:"admin-status-refresh",type:"button",children:"刷新状态"})]}),i.jsx("div",{id:"admin-qr-area",hidden:!0,children:i.jsxs("div",{style:{textAlign:"center",padding:"16px 0"},children:[i.jsx("img",{id:"admin-qr-img",alt:"登录二维码",style:{width:"200px",height:"200px",borderRadius:"12px",boxShadow:"var(--color-shadow-heavy)",background:"#fff"}}),i.jsx("div",{className:"hint",id:"admin-qr-status",style:{textAlign:"center",marginTop:"12px"},children:"请使用网易云音乐手机 APP 扫描二维码登录"}),i.jsx("div",{className:"hint",style:{textAlign:"center"},children:"二维码有效期 3 分钟,登录成功后 Cookie 自动保存,下次无需重复扫码。"})]})}),i.jsxs("div",{className:"settings-section",style:{marginTop:"20px"},children:[i.jsxs("div",{className:"settings-section-head",children:[i.jsx("div",{className:"settings-section-title",children:"用户 IP 解析/下载记录"}),i.jsx("button",{className:"btn btn-mini",id:"admin-logs-refresh",type:"button",children:"刷新"})]}),i.jsx("div",{id:"admin-logs-list",style:{maxHeight:"320px",overflowY:"auto"}}),i.jsxs("div",{className:"comment-more",id:"admin-logs-pager",hidden:!0,children:[i.jsx("button",{className:"btn btn-sm",id:"admin-logs-prev",type:"button",children:"‹ 上一页"}),i.jsx("span",{id:"admin-logs-info",style:{margin:"0 12px",color:"var(--color-text-secondary)",fontSize:"13px"},children:"第 1 / 1 页"}),i.jsx("button",{className:"btn btn-sm",id:"admin-logs-next",type:"button",children:"下一页 ›"})]})]})]})]}),i.jsxs("div",{className:"panel"+(c.currentTab==="global"?" active":""),"data-panel":"global",children:[i.jsx("div",{id:"global-gate",children:i.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"12px",alignItems:"stretch"},children:[i.jsxs("div",{className:"hint",id:"global-gate-hint",style:{margin:"0"},children:["全局账号歌单展示系统中全局账号(管理员 ",i.jsx("code",{children:"cookie.txt"}),")收藏的歌单与「我喜欢的音乐」。 当前全局账号未登录或 Cookie 已失效,请先在「管理员设置」扫码登录全局账号。"]}),i.jsxs("div",{style:{display:"flex",gap:"12px",alignItems:"center",flexWrap:"wrap"},children:[i.jsx("button",{className:"btn btn-primary",id:"global-goto-admin",type:"button",children:"🔑 前往管理员设置登录"}),i.jsx("button",{className:"btn",id:"global-refresh",type:"button",children:"刷新状态"})]})]})}),i.jsxs("div",{id:"global-content",hidden:!0,children:[i.jsxs("div",{className:"collection-header",children:[i.jsx("img",{className:"collection-cover collection-cover-round",id:"global-avatar",src:"",alt:"avatar"}),i.jsxs("div",{className:"collection-info",children:[i.jsx("div",{className:"collection-name",id:"global-nickname",style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}}),i.jsx("div",{className:"collection-meta",id:"global-signature"}),i.jsxs("div",{className:"collection-actions",style:{display:"flex",gap:"10px",flexWrap:"wrap"},children:[i.jsx("button",{className:"btn btn-sm",id:"global-playlists-refresh",type:"button",children:"刷新歌单"}),i.jsx("button",{className:"btn btn-sm",id:"global-api-open",type:"button",children:"🔗 公开播放 API 说明"})]})]})]}),i.jsx("div",{className:"divider"}),i.jsxs("div",{className:"card-title",children:["❤️ 我喜欢的音乐 ",i.jsx("span",{className:"count",id:"global-fav-count"})]}),i.jsx("div",{className:"song-list",id:"global-fav-playlists"}),i.jsxs("div",{className:"card-title",children:["收藏的歌单 ",i.jsx("span",{className:"count",id:"global-collect-count"})]}),i.jsx("div",{className:"song-list",id:"global-collect-playlists"}),i.jsxs("div",{id:"global-tracks-wrap",hidden:!0,children:[i.jsx("div",{className:"divider"}),i.jsx("div",{className:"card-title",id:"global-tracks-title",children:"歌单歌曲"}),i.jsx("div",{className:"song-list",id:"global-tracks"}),i.jsxs("div",{className:"comment-more",id:"global-pager",hidden:!0,children:[i.jsx("button",{className:"btn btn-sm",id:"global-prev",type:"button",children:"‹ 上一页"}),i.jsx("span",{style:{margin:"0 12px",color:"var(--color-text-secondary)",fontSize:"13px"},id:"global-page-info",children:"第 1 / 1 页"}),i.jsx("button",{className:"btn btn-sm",id:"global-next",type:"button",children:"下一页 ›"})]}),i.jsxs("div",{style:{marginTop:"12px"},children:[i.jsx("button",{className:"btn btn-success btn-sm",id:"global-download-all",type:"button",children:"⬇ 批量下载全部"}),i.jsx("button",{className:"btn btn-sm btn-primary",id:"global-play-playlist",type:"button",hidden:!0,children:"▶ 播放歌单(公开 API)"})]})]})]})]}),i.jsx("div",{className:"panel"+(c.currentTab==="artist"?" active":""),"data-panel":"artist",children:i.jsxs("div",{className:"input-row",children:[i.jsx("input",{className:"input",id:"artist-input",placeholder:"网易云音乐的分享链接或歌手ID,例如 https://music.163.com/artist?id=6452",autoComplete:"off"}),i.jsx("button",{className:"btn btn-primary",id:"artist-btn",type:"button",children:"解析歌手"})]})}),i.jsxs("div",{className:"panel"+(c.currentTab==="toplist"?" active":""),"data-panel":"toplist",children:[i.jsx("div",{className:"input-row",style:{marginBottom:"16px"},children:i.jsx("span",{style:{color:"var(--color-text-secondary)"},children:"网易云官方实时排行榜,点击卡片即可查看榜单歌曲"})}),i.jsxs("div",{id:"toplist-loading",className:"empty-state",children:[i.jsx("div",{className:"empty-icon",children:"📊"}),i.jsx("div",{children:"加载中..."})]}),i.jsx("div",{className:"toplist-grid",id:"toplist-grid",hidden:!0})]}),i.jsxs("div",{className:"panel"+(c.currentTab==="personal"?" active":""),"data-panel":"personal",children:[i.jsxs("div",{id:"personal-gate",children:[i.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"12px",alignItems:"stretch"},children:[i.jsxs("div",{className:"hint",id:"personal-gate-hint",style:{margin:"0"},children:["扫码登录你自己的网易云账号,即可查看收藏的歌单(包括「我喜欢的音乐」)。 个人登录仅用于获取你的歌单,",i.jsx("b",{children:"解析与下载音乐仍使用管理员全局账号"}),"。"]}),i.jsxs("div",{style:{display:"flex",gap:"12px",alignItems:"center",flexWrap:"wrap"},children:[i.jsx("button",{className:"btn btn-primary",id:"personal-qr-btn",type:"button",children:"📱 扫码登录我的账号"}),i.jsx("button",{className:"btn",id:"personal-refresh",type:"button",children:"刷新状态"})]})]}),i.jsx("div",{id:"personal-qr-area",hidden:!0,children:i.jsxs("div",{style:{textAlign:"center",padding:"16px 0"},children:[i.jsx("img",{id:"personal-qr-img",alt:"登录二维码",style:{width:"200px",height:"200px",borderRadius:"12px",boxShadow:"var(--color-shadow-heavy)",background:"#fff"}}),i.jsx("div",{className:"hint",id:"personal-qr-status",style:{textAlign:"center",marginTop:"12px"},children:"请使用网易云音乐手机 APP 扫描二维码登录"}),i.jsx("div",{className:"hint",style:{textAlign:"center"},children:"二维码有效期 3 分钟,登录后自动保存,下次无需重复扫码。"})]})})]}),i.jsxs("div",{id:"personal-content",hidden:!0,children:[i.jsxs("div",{className:"collection-header",children:[i.jsx("img",{className:"collection-cover collection-cover-round",id:"personal-avatar",src:"",alt:"avatar"}),i.jsxs("div",{className:"collection-info",children:[i.jsx("div",{className:"collection-name",id:"personal-nickname",style:{display:"flex",alignItems:"center",gap:"8px",flexWrap:"wrap"}}),i.jsx("div",{className:"collection-meta",id:"personal-signature"}),i.jsxs("div",{className:"collection-actions",style:{display:"flex",gap:"10px",flexWrap:"wrap"},children:[i.jsx("button",{className:"btn btn-sm",id:"personal-toggle-account",type:"button",children:"切换为个人账号解析"}),i.jsx("button",{className:"btn btn-danger btn-sm",id:"personal-logout",type:"button",children:"退出登录"}),i.jsx("button",{className:"btn btn-sm",id:"personal-playlists-refresh",type:"button",children:"刷新歌单"})]})]})]}),i.jsx("div",{className:"divider"}),i.jsxs("div",{className:"card-title",children:["我的歌单 ",i.jsx("span",{className:"count",id:"personal-playlist-count"})]}),i.jsx("div",{className:"song-list",id:"personal-playlists"}),i.jsxs("div",{id:"personal-tracks-wrap",hidden:!0,children:[i.jsx("div",{className:"divider"}),i.jsx("div",{className:"card-title",id:"personal-tracks-title",children:"歌单歌曲"}),i.jsx("div",{className:"song-list",id:"personal-tracks"}),i.jsxs("div",{className:"comment-more",id:"personal-pager",hidden:!0,children:[i.jsx("button",{className:"btn btn-sm",id:"personal-prev",type:"button",children:"‹ 上一页"}),i.jsx("span",{style:{margin:"0 12px",color:"var(--color-text-secondary)",fontSize:"13px"},id:"personal-page-info",children:"第 1 / 1 页"}),i.jsx("button",{className:"btn btn-sm",id:"personal-next",type:"button",children:"下一页 ›"})]}),i.jsx("div",{style:{marginTop:"12px"},children:i.jsx("button",{className:"btn btn-success btn-sm",id:"personal-download-all",type:"button",children:"⬇ 批量下载全部"})})]})]})]}),i.jsxs("div",{className:"panel"+(c.currentTab==="about"?" active":""),"data-panel":"about",children:[i.jsxs("div",{className:"about-hero",children:[i.jsx("div",{className:"about-logo",children:"♪"}),i.jsxs("div",{children:[i.jsx("div",{className:"about-title",children:"云村小助手"}),i.jsxs("div",{className:"about-sub",children:["基于 Flask + 原生前端的云村小助手 · 当前版本 ",i.jsx("b",{id:"about-version",children:"v2.1.0"})]})]})]}),i.jsx("div",{className:"divider",style:{marginTop:"16px"}}),i.jsx("div",{className:"card-title",children:"项目介绍"}),i.jsxs("p",{className:"about-text",children:["本项目是一个开箱即用的云村小助手,支持",i.jsx("b",{children:"歌曲搜索、单曲 / 歌单 / 专辑 / 歌手解析、官方榜单、个人歌单、播客解析"}),"等完整功能, 提供多音质试听与下载(标准 / 极高 / 无损 / Hi-Res / 沉浸环绕声等)、批量下载与 ZIP 打包、元数据写入、歌词下载(LRC / SRT)、 自定义播放器与逐字歌词、评论区、多账号体系(全局账号 + 个人账号)与下载任务进度管理。 服务端基于 Flask 与网易云官方接口实现,前端零框架原生实现,支持深色模式与响应式布局,可通过 Docker 一键部署。"]}),i.jsx("div",{className:"divider"}),i.jsx("div",{className:"card-title",children:"功能说明"}),i.jsxs("div",{className:"about-grid",children:[i.jsxs("div",{className:"about-card",children:[i.jsx("div",{className:"about-card-title",children:"🔍 多类型搜索"}),i.jsx("div",{className:"about-card-desc",children:"支持按歌曲、歌单、专辑、歌手搜索,结果一键跳转对应功能解析。"})]}),i.jsxs("div",{className:"about-card",children:[i.jsx("div",{className:"about-card-title",children:"🎵 单曲 / 歌单 / 专辑 / 歌手解析"}),i.jsx("div",{className:"about-card-desc",children:"输入链接或ID即可解析,自动按账号实测最高可解析音质输出,含封面、歌词与直链。"})]}),i.jsxs("div",{className:"about-card",children:[i.jsx("div",{className:"about-card-title",children:"🎙️ 播客解析"}),i.jsx("div",{className:"about-card-desc",children:"支持播客电台与单集解析:在线试听、音频直链、单集下载、整台打包 ZIP,热门播客分类浏览。"})]}),i.jsxs("div",{className:"about-card",children:[i.jsx("div",{className:"about-card-title",children:"📊 官方榜单"}),i.jsx("div",{className:"about-card-desc",children:"63 个网易云官方实时排行榜卡片墙,点击即看榜单歌曲。"})]}),i.jsxs("div",{className:"about-card",children:[i.jsx("div",{className:"about-card-title",children:"⬇ 下载能力"}),i.jsx("div",{className:"about-card-desc",children:"单曲 / 批量下载、ZIP 打包、文件命名格式、ffmpeg 元数据写入、LRC / SRT 歌词。"})]}),i.jsxs("div",{className:"about-card",children:[i.jsx("div",{className:"about-card-title",children:"🎧 播放器与歌词"}),i.jsx("div",{className:"about-card-desc",children:"自定义深色播放器、SMTC 系统媒体控制、逐字 KTV 歌词高亮、翻译双行、偏移校准。"})]}),i.jsxs("div",{className:"about-card",children:[i.jsx("div",{className:"about-card-title",children:"👥 多账号体系"}),i.jsx("div",{className:"about-card-desc",children:"全局账号负责解析下载;个人账号扫码登录查看自己的歌单,Cookie 保存在本机浏览器(站点账号登录时管理后台可按需查看)。"})]}),i.jsxs("div",{className:"about-card",children:[i.jsx("div",{className:"about-card-title",children:"🔒 隐私与任务管理"}),i.jsx("div",{className:"about-card-desc",children:"隐私协议 Cookie 偏好、下载任务进度悬浮窗、断线续传与离线暂停恢复、接口统计。"})]})]}),i.jsx("div",{className:"divider"}),i.jsx("div",{className:"card-title",children:"更新日志"}),i.jsx("div",{id:"about-changelog"}),i.jsx("div",{className:"hint",style:{marginTop:"14px"},children:"本工具仅供个人学习交流使用,音频内容版权归网易云音乐及内容创作者所有,请勿用于商业用途。"})]}),i.jsxs("div",{className:"panel"+(c.currentTab==="usercenter"?" active":""),"data-panel":"usercenter",children:[i.jsxs("div",{id:"uc-gate",className:"empty-state",children:[i.jsx("div",{className:"empty-icon",children:"🔒"}),i.jsx("div",{children:"请先登录后查看个人中心"})]}),i.jsxs("div",{id:"uc-content",hidden:!0,children:[i.jsxs("div",{className:"collection-header",children:[i.jsx("div",{className:"user-avatar",id:"uc-avatar",style:{width:"56px",height:"56px",fontSize:"24px"},children:"U"}),i.jsxs("div",{className:"collection-info",children:[i.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"12px",flexWrap:"wrap"},children:[i.jsx("div",{className:"collection-name",id:"uc-username",style:{minWidth:"0"},children:"-"}),i.jsx("button",{className:"btn",id:"uc-logout",type:"button",style:{marginLeft:"auto",flexShrink:"0",borderColor:"var(--color-error)",color:"var(--color-error)"},children:"🚪 退出登录"})]}),i.jsx("div",{className:"collection-meta",id:"uc-role",children:"-"})]})]}),i.jsxs("div",{className:"uc-grid",style:{marginTop:"14px"},children:[i.jsxs("div",{className:"uc-card",children:[i.jsx("div",{className:"uc-card-title",children:"⏳ 剩余次数"}),i.jsx("div",{className:"uc-card-value",id:"uc-duration",children:"-"}),i.jsx("div",{className:"hint",style:{margin:"6px 0 0",fontSize:"12px"},children:"按次计费:一首歌消耗 1 次,歌单打包按歌曲数扣减"})]}),i.jsxs("div",{className:"uc-card",children:[i.jsx("div",{className:"uc-card-title",children:"📮 注册邮箱"}),i.jsx("div",{className:"uc-card-value",id:"uc-email",style:{fontSize:"14px"},children:"-"})]}),i.jsxs("div",{className:"uc-card",children:[i.jsx("div",{className:"uc-card-title",children:"📅 注册时间"}),i.jsx("div",{className:"uc-card-value",id:"uc-created",style:{fontSize:"14px"},children:"-"})]})]}),i.jsxs("div",{className:"uc-section",children:[i.jsx("div",{className:"card-title",children:"🎟️ 卡密充值"}),i.jsxs("div",{className:"input-row",children:[i.jsx("input",{className:"input",id:"uc-card-input",placeholder:"输入次数卡密,例如 VIP-XXXXXXXXXX",autoComplete:"off"}),i.jsx("button",{className:"btn btn-primary",id:"uc-card-redeem",type:"button",children:"充值"})]})]}),i.jsxs("div",{className:"uc-section",children:[i.jsx("div",{className:"card-title",children:"📢 系统公告"}),i.jsx("button",{className:"btn btn-sm",id:"uc-ann-view",type:"button",children:"查看最新公告"})]}),i.jsxs("div",{className:"uc-section",children:[i.jsx("div",{className:"card-title",children:"📋 版本信息"}),i.jsx("div",{id:"uc-changelog"})]})]})]}),i.jsxs("div",{className:"panel"+(c.currentTab==="useradmin"?" active":""),"data-panel":"useradmin",children:[i.jsxs("div",{id:"ua-gate",className:"empty-state",children:[i.jsx("div",{className:"empty-icon",children:"🔒"}),i.jsx("div",{children:"仅管理员可访问管理后台"})]}),i.jsx("div",{id:"ua-content",hidden:!0,children:i.jsxs("div",{className:"admin-layout",children:[i.jsxs("div",{className:"admin-side",id:"admin-side",children:[i.jsx("div",{className:"admin-side-item active","data-view":"users",children:"👥 用户管理"}),i.jsx("div",{className:"admin-side-item","data-view":"cookie",children:"🎵 全局Cookie"}),i.jsx("div",{className:"admin-side-item","data-view":"smtp",children:"📧 邮箱与SMTP"}),i.jsx("div",{className:"admin-side-item","data-view":"logs",children:"📝 日志管理"}),i.jsx("div",{className:"admin-side-item","data-view":"cards",children:"🎟️ 次数卡密"}),i.jsx("div",{className:"admin-side-item","data-view":"announce",children:"📢 公告设置"}),i.jsx("div",{className:"admin-side-item","data-view":"database",children:"🗄️ 数据库管理"}),i.jsx("div",{className:"admin-side-item","data-view":"playkey",children:"🔑 播放API密钥"}),i.jsx("div",{className:"admin-side-sep"}),i.jsx("div",{className:"admin-side-item",id:"ua-back",children:"🎧 返回解析"}),i.jsx("div",{className:"admin-side-item",id:"ua-logout",style:{color:"var(--color-error)"},children:"🚪 退出登录"})]}),i.jsxs("div",{className:"admin-main",children:[i.jsxs("div",{className:"admin-view active","data-aview":"users",children:[i.jsxs("div",{className:"admin-toolbar",children:[i.jsx("button",{className:"btn btn-sm",id:"ua-users-refresh",type:"button",children:"刷新用户列表"}),i.jsxs("span",{className:"hint",style:{margin:"0"},children:["共 ",i.jsx("b",{id:"ua-users-count",children:"0"})," 个用户"]})]}),i.jsx("div",{style:{overflowX:"auto"},children:i.jsxs("table",{className:"site-table",children:[i.jsx("thead",{children:i.jsxs("tr",{children:[i.jsx("th",{children:"ID"}),i.jsx("th",{children:"用户名"}),i.jsx("th",{children:"邮箱"}),i.jsx("th",{children:"角色"}),i.jsx("th",{children:"剩余次数"}),i.jsx("th",{children:"注册IP / 设备"}),i.jsx("th",{children:"网易云Cookie"}),i.jsx("th",{children:"操作"})]})}),i.jsx("tbody",{id:"ua-users-body",children:i.jsx("tr",{children:i.jsx("td",{colSpan:8,children:"加载中..."})})})]})})]}),i.jsxs("div",{className:"admin-view","data-aview":"cookie",children:[i.jsx("div",{className:"hint",style:{marginTop:"0"},children:"全局网易云账号(管理员账号)Cookie 管理:用于全站解析与下载。原「管理员设置」页仍可用。"}),i.jsxs("div",{className:"uc-grid",style:{marginTop:"12px"},children:[i.jsxs("div",{className:"uc-card",children:[i.jsx("div",{className:"uc-card-title",children:"当前状态"}),i.jsx("div",{className:"uc-card-value",id:"ua-cookie-status",style:{fontSize:"14px"},children:"获取中..."}),i.jsx("button",{className:"btn btn-sm",id:"ua-cookie-refresh",type:"button",style:{marginTop:"10px"},children:"刷新状态"})]}),i.jsxs("div",{className:"uc-card",children:[i.jsx("div",{className:"uc-card-title",children:"扫码登录全局账号"}),i.jsx("div",{id:"ua-qr-box",style:{textAlign:"center",minHeight:"60px"}}),i.jsx("div",{className:"hint",id:"ua-qr-tip",style:{margin:"8px 0 0",textAlign:"center"},children:"点击下方按钮生成二维码"}),i.jsx("button",{className:"btn btn-primary btn-sm",id:"ua-qr-create",type:"button",style:{marginTop:"10px",width:"100%"},children:"📱 生成登录二维码"})]}),i.jsxs("div",{className:"uc-card",children:[i.jsx("div",{className:"uc-card-title",children:"危险操作"}),i.jsx("div",{className:"hint",style:{margin:"0 0 10px"},children:"删除后需重新扫码登录才能解析。"}),i.jsx("button",{className:"btn btn-sm",id:"ua-cookie-delete",type:"button",style:{borderColor:"var(--color-error)",color:"var(--color-error)"},children:"🗑 删除全局 Cookie"})]})]})]}),i.jsxs("div",{className:"admin-view","data-aview":"smtp",children:[i.jsx("div",{className:"hint",style:{marginTop:"0"},children:"配置 SMTP 后用户注册需邮箱验证码。常用端口:587(STARTTLS)/ 465(SSL)。邮箱密码一般为「授权码」。"}),i.jsxs("div",{className:"auth-form",style:{maxWidth:"460px"},children:[i.jsx("input",{className:"input",id:"ua-smtp-host",placeholder:"SMTP 服务器,例如 smtp.qq.com"}),i.jsxs("div",{className:"auth-form-row",children:[i.jsx("input",{className:"input",id:"ua-smtp-port",placeholder:"端口(默认587)",type:"number"}),i.jsx("input",{className:"input",id:"ua-smtp-sender",placeholder:"发件邮箱"})]}),i.jsx("input",{className:"input",id:"ua-smtp-pass",placeholder:"邮箱密码 / 授权码",type:"password"}),i.jsxs("div",{className:"auth-form-row",children:[i.jsx("input",{className:"input",id:"ua-smtp-test-to",placeholder:"测试收件邮箱"}),i.jsx("button",{className:"btn",id:"ua-smtp-test",type:"button",style:{flex:"none"},children:"发送测试邮件"})]}),i.jsx("button",{className:"btn btn-primary",id:"ua-smtp-save",type:"button",children:"保存配置"})]})]}),i.jsxs("div",{className:"admin-view","data-aview":"logs",children:[i.jsxs("div",{className:"admin-toolbar",children:[i.jsx("button",{className:"btn btn-sm",id:"ua-log-tab-ok",type:"button",children:"✔ 成功日志"}),i.jsx("button",{className:"btn btn-sm",id:"ua-log-tab-fail",type:"button",children:"✖ 失败日志"}),i.jsx("button",{className:"btn btn-sm",id:"ua-log-refresh",type:"button",children:"刷新"}),i.jsxs("span",{className:"hint",style:{margin:"0"},children:["第 ",i.jsx("b",{id:"ua-log-page",children:"1"})," / ",i.jsx("b",{id:"ua-log-pages",children:"1"})," 页 · 共 ",i.jsx("b",{id:"ua-log-total",children:"0"})," 条"]}),i.jsx("button",{className:"btn btn-sm",id:"ua-log-prev",type:"button",children:"‹ 上一页"}),i.jsx("button",{className:"btn btn-sm",id:"ua-log-next",type:"button",children:"下一页 ›"}),i.jsx("button",{className:"btn btn-sm",id:"ua-log-clear",type:"button",style:{color:"var(--color-error)"},children:"🗑 清除当前日志"})]}),i.jsx("div",{className:"code-box log-list",id:"ua-log-list",children:"加载中..."})]}),i.jsxs("div",{className:"admin-view","data-aview":"cards",children:[i.jsxs("div",{className:"admin-toolbar",children:[i.jsx("input",{className:"input",id:"ua-card-count",type:"number",defaultValue:"10",min:"1",max:"500",placeholder:"张数",title:"生成数量(张)",style:{width:"90px"}}),i.jsx("input",{className:"input",id:"ua-card-prefix",placeholder:"卡密前缀",defaultValue:"VIP",title:"卡密前缀",style:{width:"90px"}}),i.jsxs("select",{className:"select",id:"ua-card-minutes",title:"每张卡密的下载次数",defaultValue:"10",children:[i.jsx("option",{value:"3",children:"体验卡 · 3次"}),i.jsx("option",{value:"10",children:"次卡 · 10次"}),i.jsx("option",{value:"50",children:"次卡 · 50次"}),i.jsx("option",{value:"100",children:"次卡 · 100次"}),i.jsx("option",{value:"500",children:"次卡 · 500次"}),i.jsx("option",{value:"2000",children:"次卡 · 2000次"}),i.jsx("option",{value:"custom",children:"⚙ 自定义次数"})]}),i.jsx("input",{className:"input",id:"ua-card-custom",type:"number",min:"1",placeholder:"自定义次数",hidden:!0,style:{width:"100px"}}),i.jsx("input",{className:"input",id:"ua-card-days",type:"number",defaultValue:"0",min:"0",placeholder:"有效天数",title:"有效天数(0=永久有效)",style:{width:"100px"}}),i.jsx("input",{className:"input",id:"ua-card-note",placeholder:"备注(如:渠道 / 活动名)",style:{flex:"1",minWidth:"140px"}}),i.jsx("button",{className:"btn btn-primary btn-sm",id:"ua-card-gen",type:"button",children:"生成卡密"})]}),i.jsx("div",{className:"code-box",id:"ua-card-codes",hidden:!0}),i.jsx("div",{style:{overflowX:"auto",marginTop:"12px"},children:i.jsxs("table",{className:"site-table",children:[i.jsx("thead",{children:i.jsxs("tr",{children:[i.jsx("th",{children:"卡密"}),i.jsx("th",{children:"次数"}),i.jsx("th",{children:"状态"}),i.jsx("th",{children:"使用者"}),i.jsx("th",{children:"备注"}),i.jsx("th",{children:"有效期至"}),i.jsx("th",{children:"生成日期"}),i.jsx("th",{children:"操作"})]})}),i.jsx("tbody",{id:"ua-cards-body",children:i.jsx("tr",{children:i.jsx("td",{colSpan:8,children:"加载中..."})})})]})}),i.jsx("div",{id:"ua-cards-pager",hidden:!0,style:{display:"flex",gap:"12px",alignItems:"center",marginTop:"10px"}})]}),i.jsx("div",{className:"admin-view","data-aview":"announce",children:i.jsxs("div",{className:"auth-form",style:{maxWidth:"560px"},children:[i.jsx("input",{className:"input",id:"ua-ann-title",placeholder:"公告标题"}),i.jsx("textarea",{className:"input",id:"ua-ann-content",rows:6,placeholder:"公告内容(支持换行)",style:{height:"auto",resize:"vertical",lineHeight:"1.6"}}),i.jsxs("select",{className:"select",id:"ua-ann-mode",defaultValue:"every",children:[i.jsx("option",{value:"off",children:"不弹窗(仅个人中心可看)"}),i.jsx("option",{value:"every",children:"每次登录弹出"}),i.jsx("option",{value:"once",children:"仅弹出一次(更新后再次弹出)"})]}),i.jsx("button",{className:"btn btn-primary",id:"ua-ann-save",type:"button",children:"保存公告"})]})}),i.jsxs("div",{className:"admin-view","data-aview":"database",children:[i.jsxs("div",{className:"admin-toolbar",children:[i.jsx("button",{className:"btn btn-primary btn-sm",id:"ua-db-backup",type:"button",children:"立即备份"}),i.jsx("input",{className:"input",id:"ua-db-hours",type:"number",min:"0",step:"0.5",style:{width:"110px"},title:"自动备份间隔(小时)"}),i.jsx("button",{className:"btn btn-sm",id:"ua-db-auto",type:"button",children:"保存自动备份间隔"}),i.jsxs("label",{className:"btn btn-sm",style:{cursor:"pointer"},children:["上传备份",i.jsx("input",{type:"file",id:"ua-db-upload",accept:".db",hidden:!0})]}),i.jsxs("span",{className:"hint",style:{margin:"0"},children:["数据库大小:",i.jsx("b",{id:"ua-db-size",children:"-"})]})]}),i.jsx("div",{style:{overflowX:"auto"},children:i.jsxs("table",{className:"site-table",children:[i.jsx("thead",{children:i.jsxs("tr",{children:[i.jsx("th",{children:"备份文件"}),i.jsx("th",{children:"大小"}),i.jsx("th",{children:"时间"}),i.jsx("th",{children:"操作"})]})}),i.jsx("tbody",{id:"ua-db-body",children:i.jsx("tr",{children:i.jsx("td",{colSpan:4,children:"加载中..."})})})]})})]}),i.jsxs("div",{className:"admin-view","data-aview":"playkey",children:[i.jsxs("div",{className:"hint",style:{marginTop:"0"},children:["「公开播放 API」(",i.jsx("code",{children:"/api/playlist/play"}),")的访问密钥。无密钥的请求一律拒绝;",i.jsx("b",{children:"刷新后旧密钥立即全部失效"}),"(已签发的音频地址按 36 分钟自然过期)。"]}),i.jsxs("div",{className:"admin-toolbar",style:{alignItems:"center"},children:[i.jsx("input",{className:"input",id:"ua-playkey-value",readOnly:!0,style:{flex:"1",minWidth:"220px",fontFamily:"monospace",letterSpacing:"1px"},placeholder:"点击「显示密钥」查看"}),i.jsx("button",{className:"btn btn-sm",id:"ua-playkey-show",type:"button",children:"显示密钥"}),i.jsx("button",{className:"btn btn-sm",id:"ua-playkey-copy",type:"button",children:"复制"}),i.jsx("button",{className:"btn btn-primary btn-sm",id:"ua-playkey-rotate",type:"button",children:"刷新密钥"})]}),i.jsxs("div",{className:"hint",style:{margin:"4px 0 0"},children:["外部调用示例:",i.jsx("code",{id:"ua-playkey-example",children:"/api/playlist/play?id=歌单ID&key=你的密钥"}),"。刷新密钥前请确认外部使用方能及时更新(旧地址会立即打不开)。"]})]})]})]})})]})]}),i.jsxs("div",{className:"card",id:"search-result",hidden:!0,children:[i.jsxs("div",{className:"card-title",children:["搜索结果 ",i.jsx("span",{className:"count",id:"search-count"})]}),i.jsx("div",{className:"song-list",id:"search-list"})]}),i.jsxs("div",{className:"card",id:"song-result",hidden:!0,children:[i.jsx("div",{className:"card-title",children:"单曲解析结果"}),i.jsxs("div",{className:"song-detail",children:[i.jsx("img",{className:"song-detail-cover",id:"detail-cover",src:"",alt:"cover"}),i.jsxs("div",{className:"song-detail-info",children:[i.jsx("div",{className:"detail-name",id:"detail-name"}),i.jsxs("div",{className:"detail-meta",children:[i.jsx("b",{children:"歌手"}),i.jsx("span",{id:"detail-artist"})]}),i.jsxs("div",{className:"detail-meta",children:[i.jsx("b",{children:"专辑"}),i.jsx("span",{id:"detail-album"})]}),i.jsxs("div",{className:"detail-badges",children:[i.jsx("span",{className:"badge",id:"detail-level"}),i.jsx("span",{className:"badge badge-green",id:"detail-size"})]}),i.jsxs("div",{className:"detail-actions",children:[i.jsx("button",{className:"btn btn-success btn-sm",id:"detail-download",type:"button",children:"⬇ 下载音乐文件"}),i.jsx("button",{className:"btn btn-sm",id:"detail-lyric-download",type:"button",children:"下载歌词"})]}),i.jsx("div",{className:"hint",id:"detail-tip",hidden:!0})]})]}),i.jsxs("div",{className:"player",id:"player",hidden:!0,children:[i.jsxs("div",{className:"player-top",children:[i.jsx("img",{className:"player-cover",id:"player-cover",src:"",alt:""}),i.jsxs("div",{className:"player-track",children:[i.jsx("div",{className:"player-name",id:"player-name"}),i.jsx("div",{className:"player-artist",id:"player-artist"})]}),i.jsxs("div",{className:"player-controls",children:[i.jsx("button",{className:"player-ctrl player-ctrl-sm",id:"player-restart",type:"button",title:"重新播放",children:"↺"}),i.jsx("button",{className:"player-ctrl",id:"player-toggle",type:"button",title:"播放/暂停",children:"▶"})]})]}),i.jsxs("div",{className:"player-bottom",children:[i.jsx("span",{className:"player-time",id:"player-current",children:"00:00"}),i.jsx("div",{className:"progress",id:"player-progress",children:i.jsx("div",{className:"progress-fill",id:"player-progress-fill"})}),i.jsx("span",{className:"player-time",id:"player-duration",children:"00:00"}),i.jsxs("div",{className:"volume-wrap",children:[i.jsx("button",{className:"volume-btn",id:"player-mute",type:"button",title:"静音",children:"🔊"}),i.jsx("div",{className:"volume-slider",id:"player-volume",children:i.jsx("div",{className:"volume-fill",id:"player-volume-fill"})})]})]})]}),i.jsxs("div",{className:"lyric-panel",id:"lyric-panel",hidden:!0,children:[i.jsxs("div",{className:"lyric-panel-title",style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"12px",flexWrap:"wrap",rowGap:"6px"},children:[i.jsx("span",{children:"歌词"}),i.jsxs("span",{className:"lyric-calib",children:[i.jsx("button",{className:"btn btn-mini",id:"lyric-fontsize",type:"button",title:"歌词字号","aria-haspopup":"true","aria-expanded":"false",children:"A±"}),i.jsxs("span",{className:"lyric-fs-pop",id:"lyric-fs-pop",hidden:!0,children:[i.jsx("button",{className:"btn lyric-fs-btn",id:"lyric-fs-dec",type:"button",title:"缩小歌词字号",children:"A−"}),i.jsx("span",{className:"lyric-fs-val",id:"lyric-fs-val",children:"100%"}),i.jsx("button",{className:"btn lyric-fs-btn",id:"lyric-fs-inc",type:"button",title:"放大歌词字号",children:"A+"}),i.jsx("button",{className:"btn lyric-fs-btn",id:"lyric-fs-reset",type:"button",title:"恢复默认字号",children:"↺"})]}),i.jsx("button",{className:"btn btn-mini",id:"lyric-advance",type:"button",title:"歌词提前 0.25 秒",children:"⏱ 提前"}),i.jsx("button",{className:"btn btn-mini",id:"lyric-delay",type:"button",title:"歌词延后 0.25 秒",children:"⏱ 延后"}),i.jsx("span",{className:"lyric-offset-label",id:"lyric-offset-label",children:"偏移 0.00s"})]})]}),i.jsx("div",{className:"lyric-box",id:"lyric-box"})]}),i.jsxs("div",{className:"comment-panel",id:"comment-panel",hidden:!0,children:[i.jsxs("div",{className:"comment-panel-title",children:["评论 ",i.jsx("span",{className:"count",id:"comment-count"})]}),i.jsxs("div",{id:"comment-composer",hidden:!0,children:[i.jsx("textarea",{className:"input",id:"comment-input",rows:2,placeholder:"登录个人账号后,说点什么吧...(140字以内)",style:{width:"100%",height:"auto",resize:"vertical",lineHeight:"1.5"}}),i.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:"8px",gap:"8px",flexWrap:"wrap"},children:[i.jsxs("span",{className:"hint",id:"comment-reply-to",hidden:!0,style:{margin:"0"},children:["回复 @",i.jsx("span",{id:"comment-reply-name",style:{color:"var(--color-primary)"}}),i.jsx("button",{className:"btn-link",id:"comment-reply-cancel",type:"button",style:{border:"none",background:"none",color:"var(--color-error)",cursor:"pointer",fontSize:"12px",padding:"0",marginLeft:"6px"},children:"取消"})]}),i.jsx("button",{className:"btn btn-primary btn-sm",id:"comment-submit",type:"button",children:"发布评论"})]})]}),i.jsx("div",{id:"comment-hot-title",className:"hint",style:{margin:"0 0 4px 8px",fontWeight:"500",color:"var(--color-text-secondary)"},children:"热门评论"}),i.jsx("div",{className:"comment-list",id:"comment-hot-list"}),i.jsx("div",{id:"comment-all-title",className:"hint",style:{margin:"12px 0 4px 8px",fontWeight:"500",color:"var(--color-text-secondary)"},children:"全部评论"}),i.jsx("div",{className:"comment-list",id:"comment-all-list"}),i.jsxs("div",{className:"comment-more",id:"comment-pager",hidden:!0,children:[i.jsx("button",{className:"btn btn-sm",id:"comment-prev",type:"button",children:"‹ 上一页"}),i.jsx("span",{className:"comment-page-info",id:"comment-page-info",style:{margin:"0 12px",color:"var(--color-text-secondary)",fontSize:"13px"},children:"第 1 / 1 页"}),i.jsx("button",{className:"btn btn-sm",id:"comment-next",type:"button",children:"下一页 ›"})]})]})]}),i.jsxs("div",{className:"card",id:"playlist-result",hidden:!0,children:[i.jsx("div",{className:"card-title",children:"歌单解析结果"}),i.jsxs("div",{className:"collection-header",children:[i.jsx("img",{className:"collection-cover",id:"playlist-cover",src:"",alt:"cover"}),i.jsxs("div",{className:"collection-info",children:[i.jsx("div",{className:"collection-name",id:"playlist-name"}),i.jsx("div",{className:"collection-meta",id:"playlist-creator"}),i.jsxs("div",{className:"collection-meta",children:["共 ",i.jsx("b",{id:"playlist-count"})," 首歌"]}),i.jsx("div",{className:"collection-desc",id:"playlist-desc",hidden:!0}),i.jsxs("div",{className:"collection-actions",children:[i.jsx("button",{className:"btn btn-sm",id:"collect-playlist-btn",type:"button",hidden:!0,children:"♡ 收藏歌单"}),i.jsx("button",{className:"btn btn-primary btn-sm",id:"playlist-api-btn",type:"button",children:"🔗 公开播放 API"}),i.jsx("button",{className:"btn btn-success btn-sm",id:"playlist-download-all",type:"button",children:"⬇ 批量下载全部"})]})]})]}),i.jsx("div",{className:"divider"}),i.jsx("div",{className:"song-list",id:"playlist-tracks"}),i.jsxs("div",{className:"comment-more",id:"playlist-pager",hidden:!0,children:[i.jsx("button",{className:"btn btn-sm",id:"playlist-prev",type:"button",children:"‹ 上一页"}),i.jsx("span",{style:{margin:"0 12px",color:"var(--color-text-secondary)",fontSize:"13px"},id:"playlist-page-info",children:"第 1 / 1 页"}),i.jsx("button",{className:"btn btn-sm",id:"playlist-next",type:"button",children:"下一页 ›"})]})]}),i.jsxs("div",{className:"card",id:"album-result",hidden:!0,children:[i.jsx("div",{className:"card-title",children:"专辑解析结果"}),i.jsxs("div",{className:"collection-header",children:[i.jsx("img",{className:"collection-cover",id:"album-cover",src:"",alt:"cover"}),i.jsxs("div",{className:"collection-info",children:[i.jsx("div",{className:"collection-name",id:"album-name"}),i.jsx("div",{className:"collection-meta",id:"album-artist"}),i.jsxs("div",{className:"collection-meta",children:["共 ",i.jsx("b",{id:"album-count"})," 首歌"]}),i.jsx("div",{className:"collection-desc",id:"album-desc",hidden:!0}),i.jsxs("div",{className:"collection-actions",children:[i.jsx("button",{className:"btn btn-sm",id:"collect-album-btn",type:"button",hidden:!0,children:"♡ 收藏专辑"}),i.jsx("button",{className:"btn btn-success btn-sm",id:"album-download-all",type:"button",children:"⬇ 批量下载全部"})]})]})]}),i.jsx("div",{className:"divider"}),i.jsx("div",{className:"song-list",id:"album-tracks"}),i.jsxs("div",{className:"comment-more",id:"album-pager",hidden:!0,children:[i.jsx("button",{className:"btn btn-sm",id:"album-prev",type:"button",children:"‹ 上一页"}),i.jsx("span",{style:{margin:"0 12px",color:"var(--color-text-secondary)",fontSize:"13px"},id:"album-page-info",children:"第 1 / 1 页"}),i.jsx("button",{className:"btn btn-sm",id:"album-next",type:"button",children:"下一页 ›"})]})]}),i.jsxs("div",{className:"card",id:"artist-result",hidden:!0,children:[i.jsx("div",{className:"card-title",children:"歌手解析结果"}),i.jsxs("div",{className:"collection-header",children:[i.jsx("img",{className:"collection-cover collection-cover-round",id:"artist-cover",src:"",alt:"avatar"}),i.jsxs("div",{className:"collection-info",children:[i.jsx("div",{className:"collection-name",id:"artist-name"}),i.jsx("div",{className:"collection-meta",id:"artist-alias"}),i.jsxs("div",{className:"collection-meta",children:["共 ",i.jsx("b",{id:"artist-count"})," 首热门歌曲"]}),i.jsx("div",{className:"collection-desc",id:"artist-desc",hidden:!0}),i.jsx("div",{className:"collection-actions",children:i.jsx("button",{className:"btn btn-success btn-sm",id:"artist-download-all",type:"button",children:"⬇ 批量下载全部"})})]})]}),i.jsx("div",{className:"divider"}),i.jsx("div",{className:"song-list",id:"artist-tracks"}),i.jsxs("div",{className:"comment-more",id:"artist-pager",hidden:!0,children:[i.jsx("button",{className:"btn btn-sm",id:"artist-prev",type:"button",children:"‹ 上一页"}),i.jsx("span",{style:{margin:"0 12px",color:"var(--color-text-secondary)",fontSize:"13px"},id:"artist-page-info",children:"第 1 / 1 页"}),i.jsx("button",{className:"btn btn-sm",id:"artist-next",type:"button",children:"下一页 ›"})]})]})]}),"// 自动转换片段(供手工组装)",i.jsx("div",{className:"drawer-mask"+(Il()?" show":""),id:"drawer-mask"}),"// 自动转换片段(供手工组装)",i.jsxs("aside",{className:"drawer"+(Il()?" show":""),id:"settings-drawer",children:[i.jsxs("div",{className:"drawer-header",children:[i.jsx("div",{className:"drawer-title",children:"个性化设置"}),i.jsx("button",{className:"drawer-close",id:"drawer-close",type:"button",children:"×"})]}),i.jsxs("div",{className:"drawer-body",children:[i.jsxs("div",{className:"settings-section",children:[i.jsx("div",{className:"settings-section-title",children:"外观模式"}),i.jsxs("div",{className:"mode-seg",id:"mode-seg",children:[i.jsx("div",{className:"seg-item",tabIndex:0,role:"button","data-mode":"light",children:"浅色"}),i.jsx("div",{className:"seg-item",tabIndex:0,role:"button","data-mode":"dark",children:"深色"}),i.jsx("div",{className:"seg-item",tabIndex:0,role:"button","data-mode":"system",children:"跟随系统"})]})]}),i.jsxs("div",{className:"settings-section",children:[i.jsx("div",{className:"settings-section-title",children:"主题颜色"}),i.jsx("div",{className:"color-palette",id:"color-palette"})]}),i.jsxs("div",{className:"settings-section",children:[i.jsxs("div",{className:"settings-section-head",children:[i.jsx("div",{className:"settings-section-title",children:"下载配置"}),i.jsx("button",{className:"btn btn-mini",id:"cfg-save-download",type:"button",children:"保存"})]}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"文件命名格式"}),i.jsx("div",{className:"setting-desc",children:"单曲下载的文件名格式"})]}),i.jsxs("select",{className:"select",id:"cfg-filename-format",style:{width:"150px",height:"30px"},children:[i.jsx("option",{value:"artist_song",children:"歌手 - 歌曲名"}),i.jsx("option",{value:"song_artist",children:"歌曲名 - 歌手"}),i.jsx("option",{value:"song",children:"仅歌曲名"})]})]}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"写入元数据"}),i.jsx("div",{className:"setting-desc",children:"写入歌曲名、歌手、专辑、封面等信息"})]}),i.jsx("div",{className:"switch",id:"cfg-write-meta"})]}),i.jsxs("div",{className:"check-grid",id:"cfg-meta-fields-wrap",style:{margin:"6px 0 10px"},children:[i.jsxs("label",{className:"check-item",children:[i.jsx("input",{type:"checkbox","data-field":"name"})," 歌曲名"]}),i.jsxs("label",{className:"check-item",children:[i.jsx("input",{type:"checkbox","data-field":"artist"})," 歌手"]}),i.jsxs("label",{className:"check-item",children:[i.jsx("input",{type:"checkbox","data-field":"album"})," 专辑"]}),i.jsxs("label",{className:"check-item",children:[i.jsx("input",{type:"checkbox","data-field":"cover"})," 封面"]}),i.jsxs("label",{className:"check-item",children:[i.jsx("input",{type:"checkbox","data-field":"lyrics"})," 歌词"]}),i.jsxs("label",{className:"check-item",children:[i.jsx("input",{type:"checkbox","data-field":"date"})," 发布日期"]})]}),i.jsx("div",{className:"setting-desc",style:{fontSize:"12px",color:"var(--color-text-tertiary)",marginBottom:"6px"},children:"仅在「写入元数据」开启时生效。未勾选字段将保持原音频文件中的值不变。批量下载同样遵循此设置。"}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"启用ZIP打包"}),i.jsx("div",{className:"setting-desc",children:"打包音频、歌词、封面、信息文件为一个压缩包"})]}),i.jsx("div",{className:"switch",id:"cfg-zip"})]})]}),i.jsxs("div",{className:"settings-section",children:[i.jsxs("div",{className:"settings-section-head",children:[i.jsx("div",{className:"settings-section-title",children:"批量下载配置"}),i.jsx("button",{className:"btn btn-mini",id:"cfg-save-batch",type:"button",children:"保存"})]}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"写入元数据"}),i.jsx("div",{className:"setting-desc",children:"为批量下载的歌曲写入歌曲名、歌手、封面等信息"})]}),i.jsx("div",{className:"switch",id:"cfg-batch-meta"})]}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"启用ZIP打包"}),i.jsx("div",{className:"setting-desc",children:"批量下载时将所有文件打包为一个压缩包,否则将逐个下载"})]}),i.jsx("div",{className:"switch",id:"cfg-batch-zip"})]})]}),i.jsxs("div",{className:"settings-section",children:[i.jsxs("div",{className:"settings-section-head",children:[i.jsx("div",{className:"settings-section-title",children:"歌词"}),i.jsx("button",{className:"btn btn-mini",id:"cfg-save-lyric",type:"button",children:"保存"})]}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"歌词格式"}),i.jsx("div",{className:"setting-desc",children:"下载歌词 / 打包中歌词的格式"})]}),i.jsxs("select",{className:"select",id:"cfg-lyric-format",style:{width:"110px",height:"30px"},children:[i.jsx("option",{value:"lrc",children:"LRC"}),i.jsx("option",{value:"srt",children:"SRT"})]})]}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"翻译歌词分两行显示"}),i.jsx("div",{className:"setting-desc",children:"开启后播放器歌词原文在上、翻译在下分行展示"})]}),i.jsx("div",{className:"switch",id:"switch-lyric2line"})]}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"逐字歌词(KTV 模式)"}),i.jsx("div",{className:"setting-desc",children:"当前行歌词逐字渐变高亮,无逐字歌词时自动回退普通 LRC"})]}),i.jsx("div",{className:"switch",id:"switch-ktv"})]})]}),i.jsxs("div",{className:"settings-section",children:[i.jsx("div",{className:"settings-section-title",children:"播放"}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"播放进度记忆"}),i.jsx("div",{className:"setting-desc",children:"记住上次播放位置,再次打开时续播"})]}),i.jsx("div",{className:"switch",id:"switch-progress"})]})]}),i.jsxs("div",{className:"settings-section",children:[i.jsx("div",{className:"settings-section-title",children:"其他配置"}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"启用SMTC"}),i.jsx("div",{className:"setting-desc",children:"在系统媒体控制面板(如 Windows 锁屏/音量面板)显示播放信息"})]}),i.jsx("div",{className:"switch",id:"switch-smtc"})]}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"显示评论区"}),i.jsx("div",{className:"setting-desc",children:"关闭后单曲信息下方将不再显示评论区"})]}),i.jsx("div",{className:"switch",id:"switch-comments"})]}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"接口请求统计"}),i.jsx("div",{className:"setting-desc",children:"联动后端 /api/topen 实时获取各接口请求统计,每 10 秒自动刷新"})]}),i.jsxs("div",{style:{display:"flex",gap:"8px",flex:"none"},children:[i.jsx("button",{className:"btn btn-mini",id:"cfg-stats-view",type:"button",children:"查看统计"}),i.jsx("button",{className:"btn btn-mini",id:"cfg-stats-refresh",type:"button",children:"刷新"})]})]}),i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"隐私与协议"}),i.jsx("div",{className:"setting-desc",children:"查看或修改《用户协议》《隐私政策》以及 Cookie 启用情况"})]}),i.jsx("button",{className:"btn btn-mini",id:"cfg-cookie-prefs",type:"button",children:"管理Cookie偏好"})]})]})]}),i.jsxs("div",{className:"drawer-footer",children:[i.jsx("button",{className:"btn btn-primary",id:"settings-save",type:"button",children:"保存设置"}),i.jsx("button",{className:"btn",id:"settings-reset",type:"button",children:"恢复默认"})]})]}),"// 自动转换片段(供手工组装)",i.jsx("div",{className:"modal-mask"+(yt("changelog-modal")?" show":""),id:"changelog-modal",children:i.jsxs("div",{className:"modal",children:[i.jsxs("div",{className:"modal-header",children:[i.jsx("div",{className:"modal-title",children:"更新日志"}),i.jsx("button",{className:"drawer-close",id:"changelog-close",type:"button",children:"×"})]}),i.jsx("div",{className:"modal-body",id:"changelog-body"})]})}),"// 自动转换片段(供手工组装)",i.jsx("div",{className:"modal-mask"+(yt("stats-modal")?" show":""),id:"stats-modal",children:i.jsxs("div",{className:"modal",children:[i.jsxs("div",{className:"modal-header",children:[i.jsx("div",{className:"modal-title",children:"接口请求统计"}),i.jsxs("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[i.jsx("button",{className:"btn btn-mini",id:"stats-refresh-btn",type:"button",children:"刷新"}),i.jsx("button",{className:"drawer-close",id:"stats-close",type:"button",children:"×"})]})]}),i.jsxs("div",{className:"modal-body",children:[i.jsxs("div",{className:"stat-grid",children:[i.jsxs("div",{className:"stat-card",children:[i.jsx("div",{className:"stat-num",id:"stat-total",children:"-"}),i.jsx("div",{className:"stat-label",children:"总请求数"})]}),i.jsxs("div",{className:"stat-card",children:[i.jsx("div",{className:"stat-num",id:"stat-endpoints",children:"-"}),i.jsx("div",{className:"stat-label",children:"不同端点数"})]}),i.jsxs("div",{className:"stat-card",children:[i.jsx("div",{className:"stat-num",id:"stat-max",children:"-"}),i.jsx("div",{className:"stat-label",children:"最高端点请求数"})]})]}),i.jsx("div",{className:"settings-section-title",style:{marginTop:"16px"},children:"按接口端点明细(按请求数倒序)"}),i.jsx("div",{id:"stats-list"}),i.jsxs("div",{className:"stat-refresh-info",children:["数据来源:GET /api/topen · 每 10 秒自动刷新 · 最近刷新:",i.jsx("span",{id:"stats-refresh-time",children:"-"})]})]})]})}),"// 自动转换片段(供手工组装)",i.jsx("div",{className:"modal-mask"+(yt("api-modal")?" show":""),id:"api-modal",children:i.jsxs("div",{className:"modal",children:[i.jsxs("div",{className:"modal-header",children:[i.jsx("div",{className:"modal-title",children:"🔗 公开歌单播放 API"}),i.jsx("button",{className:"drawer-close",id:"api-close",type:"button",children:"×"})]}),i.jsxs("div",{className:"modal-body",children:[i.jsx("div",{className:"hint",style:{margin:"0 0 12px"},children:"公开接口,无需登录即可调用:返回歌单信息 + 每首歌的可播放直链(使用全局账号解析音质)。"}),i.jsxs("div",{className:"setting-item",style:{padding:"6px 0"},children:[i.jsxs("div",{style:{flex:"1"},children:[i.jsx("div",{className:"setting-label",children:"接口地址"}),i.jsx("div",{className:"setting-desc",style:{wordBreak:"break-all"},id:"api-url",children:"-"})]}),i.jsx("button",{className:"btn btn-mini",id:"api-copy-url",type:"button",children:"复制"})]}),i.jsx("div",{className:"setting-item",style:{padding:"6px 0"},children:i.jsxs("div",{children:[i.jsx("div",{className:"setting-label",children:"请求方式"}),i.jsx("div",{className:"setting-desc",children:"GET / POST(均支持表单或 JSON 参数)"})]})}),i.jsx("div",{className:"settings-section-title",style:{marginTop:"14px"},children:"请求参数"}),i.jsxs("div",{style:{fontSize:"13px",color:"var(--color-text-secondary)",lineHeight:"2"},children:[i.jsxs("div",{children:["· ",i.jsx("code",{children:"id"})," ",i.jsx("span",{style:{color:"var(--color-error)"},children:"必填"}),":歌单 ID 或网易云分享链接"]}),i.jsxs("div",{children:["· ",i.jsx("code",{children:"level"})," ",i.jsx("span",{style:{color:"var(--color-text-tertiary)"},children:"选填"}),":音质等级,默认 ",i.jsx("code",{children:"lossless"}),"(standard/exhigh/lossless/hires/sky/jyeffect/jymaster/dolby)"]}),i.jsxs("div",{children:["· ",i.jsx("code",{children:"limit"})," ",i.jsx("span",{style:{color:"var(--color-text-tertiary)"},children:"选填"}),":最多返回歌曲数,默认 ",i.jsx("code",{children:"100"}),",最大 500(0 按封顶 500 计)"]})]}),i.jsx("div",{className:"settings-section-title",style:{marginTop:"14px"},children:"请求示例"}),i.jsx("div",{style:{background:"var(--color-fill)",borderRadius:"8px",padding:"10px 12px",fontSize:"12px",wordBreak:"break-all",lineHeight:"1.7"},id:"api-example",children:"-"}),i.jsx("div",{style:{marginTop:"8px"},children:i.jsx("button",{className:"btn btn-mini",id:"api-copy-example",type:"button",children:"复制示例"})}),i.jsx("div",{className:"settings-section-title",style:{marginTop:"14px"},children:"响应字段"}),i.jsxs("div",{style:{fontSize:"13px",color:"var(--color-text-secondary)",lineHeight:"2"},children:[i.jsxs("div",{children:["· ",i.jsx("code",{children:"playlist"}),":歌单信息(id / name / coverImgUrl / creator / trackCount)"]}),i.jsxs("div",{children:["· ",i.jsx("code",{children:"tracks[]"}),":可播放歌曲列表(id / name / artists / album / url / level / size_formatted)"]}),i.jsxs("div",{children:["· ",i.jsx("code",{children:"total / playable / skipped"}),":总歌曲数 / 可播放数 / 跳过数(版权或无法解析)"]})]})]})]})}),"// 自动转换片段(供手工组装)",i.jsx("div",{className:"modal-mask"+(yt("cookie-modal")?" show":""),id:"cookie-modal",children:i.jsxs("div",{className:"modal",children:[i.jsxs("div",{className:"modal-header",children:[i.jsx("div",{className:"modal-title",children:"隐私与协议设置"}),i.jsx("button",{className:"drawer-close",id:"cookie-close",type:"button",children:"×"})]}),i.jsxs("div",{className:"modal-body",children:[i.jsx("div",{className:"hint",style:{margin:"0 0 12px"},children:"请阅读并同意用户协议与隐私政策,并选择您希望启用的 Cookie 类型。必要 Cookie 无法禁用。"}),i.jsxs("details",{style:{marginBottom:"10px",border:"1px solid var(--color-border-split)",borderRadius:"8px",padding:"10px 14px"},children:[i.jsx("summary",{style:{cursor:"pointer",fontWeight:"500",color:"var(--color-primary)"},children:"查看《用户协议》"}),i.jsxs("div",{style:{fontSize:"13px",color:"var(--color-text-secondary)",lineHeight:"1.8",marginTop:"8px",maxHeight:"220px",overflowY:"auto"},children:[i.jsx("p",{children:'欢迎使用云村小助手(以下简称"本工具")。在使用本工具之前,请您仔细阅读以下条款。点击"我已阅读"即表示您完全理解并接受本协议全部内容。'}),i.jsxs("p",{children:[i.jsx("b",{children:"1. 用途限制"}),":本工具仅供个人学习、研究与交流使用。所有解析的音频及相关数据版权归原作者及网易云音乐所有,未经授权不得用于任何公开传播或商业用途。"]}),i.jsxs("p",{children:[i.jsx("b",{children:"2. 禁止商用"}),":严禁将本工具及解析出的任何内容用于任何形式的商业用途或非法传播,包括但不限于:转售、收费下载、公开播放、二次分发等。"]}),i.jsxs("p",{children:[i.jsx("b",{children:"3. 免责声明"}),":本工具不存储任何音频文件,仅作为网络数据接口的调用和本地展示。因使用本工具而引发的任何版权纠纷或法律责任,由使用者自行承担,工具作者不承担任何连带责任。"]}),i.jsxs("p",{children:[i.jsx("b",{children:"4. 服务变更"}),":我们保留随时修改或中断本工具服务的权利,恕不另行通知。接口可用性、音质支持范围、相关功能可能随时调整。"]})]})]}),i.jsxs("details",{style:{marginBottom:"12px",border:"1px solid var(--color-border-split)",borderRadius:"8px",padding:"10px 14px"},children:[i.jsx("summary",{style:{cursor:"pointer",fontWeight:"500",color:"var(--color-primary)"},children:"查看《隐私政策》"}),i.jsxs("div",{style:{fontSize:"13px",color:"var(--color-text-secondary)",lineHeight:"1.8",marginTop:"8px",maxHeight:"220px",overflowY:"auto"},children:[i.jsx("p",{children:'本工具(以下简称"我们")非常重视您的隐私。本政策说明我们如何收集、使用、存储和保护您的个人信息。请仔细阅读,点击"我已阅读"即表示您完全理解并接受本政策全部内容。'}),i.jsxs("p",{children:[i.jsx("b",{children:"1. 数据收集"}),":本工具不存储任何音频文件,也不上传您的个人隐私信息。所有解析操作仅作为网络数据接口的调用和本地展示,您输入的链接 / 歌曲 ID 仅用于本次请求。"]}),i.jsxs("p",{children:[i.jsx("b",{children:"2. 本地存储"}),":以下信息仅保存在您的本地浏览器中(localStorage / IndexedDB),不会上传至我们的服务器:主题模式、主题色、下载格式等偏好设置;历史搜索 / 解析记录;隐私与 Cookie 偏好选择。"]}),i.jsxs("p",{children:[i.jsx("b",{children:"3. Cookie 使用"}),":根据您的选择,我们可能会使用以下类型的 Cookie:必要 Cookie(CDN 性能监控等保证基本功能所必需,无法禁用);功能性 Cookie(用于解析与下载服务、播放进度记忆、历史记录等)。您可以随时在设置中关闭,关闭后将无法解析与下载音乐。"]}),i.jsxs("p",{children:[i.jsx("b",{children:"4. 第三方服务"}),":本工具调用的所有数据接口由第三方提供,其隐私实践遵循各自的政策。本工具不对第三方服务的隐私行为承担责任。"]}),i.jsxs("p",{children:[i.jsx("b",{children:"5. 数据安全"}),":由于部分数据仅存储在您的本地浏览器中,请妥善保管您的设备,避免他人未经授权访问。建议在公共设备上使用后清除浏览器数据。"]}),i.jsxs("p",{children:[i.jsx("b",{children:"6. 您的权利"}),":您可以随时通过浏览器设置清除本工具存储的所有本地数据,或在设置中修改您的 Cookie 偏好与隐私选择。"]}),i.jsxs("p",{children:[i.jsx("b",{children:"7. 政策变更"}),":本政策可能根据实际需要随时更新,更新后的政策将在本工具中重新发布。继续使用本工具即视为接受变更后的政策。"]})]})]}),i.jsxs("label",{className:"check-item",style:{fontSize:"13px",marginBottom:"10px",display:"flex",gap:"6px"},children:[i.jsx("input",{type:"checkbox",id:"cookie-agree"})," 我已完整阅读并同意《用户协议》和《隐私政策》"]}),i.jsxs("div",{className:"settings-section",style:{marginTop:"8px"},children:[i.jsxs("div",{className:"setting-item",style:{borderBottom:"1px solid var(--color-border-split)"},children:[i.jsxs("div",{children:[i.jsxs("div",{className:"setting-label",children:["必要 Cookie ",i.jsx("span",{className:"tag",style:{marginLeft:"4px"},children:"始终启用"})]}),i.jsx("div",{className:"setting-desc",children:"这些 Cookie 对于网站的基本功能是必需的,无法禁用。"})]}),i.jsx("div",{className:"switch on",style:{opacity:"0.6",cursor:"not-allowed"}})]}),i.jsx("div",{className:"setting-desc",style:{margin:"8px 0 4px"},children:"CDN 性能监控 - 用于资源加载性能统计"})]}),i.jsxs("div",{className:"settings-section",children:[i.jsxs("div",{className:"setting-item",children:[i.jsxs("div",{children:[i.jsxs("div",{className:"setting-label",children:["功能性 Cookie ",i.jsx("span",{className:"tag",id:"cookie-func-tag",style:{marginLeft:"4px"},children:"已启用"})]}),i.jsx("div",{className:"setting-desc",children:"这些 Cookie 用于增强网站功能和个性化体验。"})]}),i.jsx("div",{className:"switch on",id:"switch-cookie-func",tabIndex:0,role:"switch","aria-checked":"true"})]}),i.jsxs("div",{style:{fontSize:"12px",color:"var(--color-text-secondary)",lineHeight:"1.9"},children:[i.jsx("div",{children:"🔓 解析与下载服务 - 启用后才能解析与下载音乐"}),i.jsx("div",{children:"▶️ 播放进度记忆 - 记录上次播放位置"}),i.jsx("div",{children:"🕘 历史记录 - 保存搜索/解析历史"})]}),i.jsx("div",{className:"setting-desc",style:{marginTop:"8px",color:"var(--color-error)"},children:"关闭「功能性 Cookie」将无法解析与下载音乐。"})]})]}),i.jsxs("div",{className:"drawer-footer",children:[i.jsx("button",{className:"btn btn-danger",id:"cookie-withdraw",type:"button",children:"撤回同意"}),i.jsx("button",{className:"btn btn-primary",id:"cookie-save",type:"button",children:"保存设置"}),i.jsx("button",{className:"btn btn-primary",id:"cookie-agree-continue",type:"button",hidden:!0,style:{flex:"1"},children:"同意并继续注册"})]})]})}),"// 自动转换片段(供手工组装)",i.jsx("div",{className:"modal-mask"+(yt("login-modal")?" show":""),id:"login-modal",children:i.jsxs("div",{className:"modal",style:{width:"400px"},children:[i.jsxs("div",{className:"modal-header",children:[i.jsx("div",{className:"modal-title",children:"登录账号"}),i.jsx("button",{className:"icon-btn",id:"login-close",type:"button",style:{padding:"4px 10px"},children:"✕"})]}),i.jsxs("div",{className:"modal-body",children:[i.jsxs("div",{className:"auth-brand",children:[i.jsx("div",{className:"auth-brand-logo",children:"♪"}),i.jsx("div",{className:"auth-brand-name",children:"云村小助手"}),i.jsx("div",{className:"auth-brand-sub",children:"登录后继续解析与下载"})]}),i.jsxs("div",{className:"auth-form",children:[i.jsx("input",{className:"input",id:"login-username",placeholder:"用户名或邮箱",autoComplete:"username"}),i.jsxs("div",{style:{position:"relative"},children:[i.jsx("input",{className:"input",id:"login-password",placeholder:"密码",type:"password",autoComplete:"current-password",style:{paddingRight:"44px"}}),i.jsx("button",{className:"btn btn-sm",id:"login-pwd-eye",type:"button",style:{position:"absolute",right:"6px",top:"50%",transform:"translateY(-50%)",padding:"2px 8px",fontSize:"12px"},children:"显示"})]}),i.jsx("button",{className:"btn btn-primary",id:"login-submit",type:"button",children:"登 录"}),i.jsxs("div",{className:"auth-switch",children:["还没有账号?",i.jsx("a",{id:"goto-register",children:"立即注册"})," · ",i.jsx("a",{id:"goto-forgot",style:{cursor:"pointer"},children:"忘记密码?"})]}),i.jsxs("div",{className:"auth-trial-box",children:["🎁 新用户?",i.jsx("a",{id:"goto-register2",style:{color:"var(--color-primary)",cursor:"pointer"},children:"注册账号"})," 注册即送 ",i.jsx("span",{className:"reg-gift-num",children:"3"})," 次免费下载次数"]}),i.jsxs("div",{id:"forgot-view",hidden:!0,children:[i.jsx("div",{className:"auth-switch",style:{margin:"4px 0"},children:"通过注册邮箱验证码重置密码"}),i.jsx("input",{className:"input",id:"forgot-email",placeholder:"注册邮箱",type:"email"}),i.jsxs("div",{className:"auth-form-row",children:[i.jsx("input",{className:"input",id:"forgot-code",placeholder:"邮箱验证码"}),i.jsx("button",{className:"btn",id:"forgot-send-code",type:"button",style:{flex:"none"},children:"发送验证码"})]}),i.jsxs("div",{style:{position:"relative"},children:[i.jsx("input",{className:"input",id:"forgot-password",placeholder:"新密码(至少8位)",type:"password",autoComplete:"new-password",style:{paddingRight:"44px"}}),i.jsx("button",{className:"btn btn-sm",id:"forgot-pwd-eye",type:"button",style:{position:"absolute",right:"6px",top:"50%",transform:"translateY(-50%)",padding:"2px 8px",fontSize:"12px"},children:"显示"})]}),i.jsx("button",{className:"btn btn-primary",id:"forgot-submit",type:"button",style:{width:"100%",marginTop:"8px"},children:"重置密码"}),i.jsx("div",{className:"hint",id:"forgot-error-line",hidden:!0,style:{margin:"2px 0 0",color:"var(--color-error,#e0483f)"}}),i.jsx("div",{className:"auth-switch",style:{marginTop:"8px"},children:i.jsx("a",{id:"forgot-back-login",children:"返回登录"})})]}),i.jsxs("div",{id:"admin2fa-view",hidden:!0,children:[i.jsxs("div",{className:"auth-switch",style:{margin:"4px 0"},children:["管理员两步验证,绑定邮箱:",i.jsx("b",{id:"a2fa-email-mask",children:"-"})]}),i.jsx("input",{className:"input",id:"a2fa-email",placeholder:"输入管理员绑定邮箱",type:"email",autoComplete:"off"}),i.jsxs("div",{className:"auth-form-row",children:[i.jsx("input",{className:"input",id:"a2fa-code",placeholder:"邮箱验证码",autoComplete:"off"}),i.jsx("button",{className:"btn",id:"a2fa-send",type:"button",style:{flex:"none"},children:"发送验证码"})]}),i.jsx("button",{className:"btn btn-primary",id:"a2fa-submit",type:"button",style:{width:"100%",marginTop:"8px"},children:"验证并登录"}),i.jsx("div",{className:"hint",id:"a2fa-error-line",hidden:!0,style:{margin:"2px 0 0",color:"var(--color-error,#e0483f)"}}),i.jsx("div",{className:"auth-switch",style:{marginTop:"8px"},children:i.jsx("a",{id:"a2fa-back",children:"返回重新登录"})})]})]})]})]})}),"// 自动转换片段(供手工组装)",i.jsx("div",{className:"modal-mask"+(yt("register-modal")?" show":""),id:"register-modal",children:i.jsxs("div",{className:"modal",style:{width:"420px"},children:[i.jsxs("div",{className:"modal-header",children:[i.jsx("div",{className:"modal-title",children:"注册账号"}),i.jsx("button",{className:"icon-btn",id:"register-close",type:"button",style:{padding:"4px 10px"},children:"✕"})]}),i.jsxs("div",{className:"modal-body",children:[i.jsxs("div",{className:"auth-brand",children:[i.jsx("div",{className:"auth-brand-logo",children:"♪"}),i.jsx("div",{className:"auth-brand-name",children:"创建账号"}),i.jsxs("div",{className:"auth-brand-sub",children:["注册即送 ",i.jsx("span",{className:"reg-gift-num",children:"3"})," 次免费下载次数"]})]}),i.jsxs("div",{className:"auth-form",id:"reg-mail-form",children:[i.jsx("input",{className:"input",id:"reg-username",placeholder:"用户名(3-20位,中英文/数字/下划线)",autoComplete:"username"}),i.jsxs("div",{style:{position:"relative"},children:[i.jsx("input",{className:"input",id:"reg-password",placeholder:"密码(至少8位)",type:"password",autoComplete:"new-password",style:{paddingRight:"44px"}}),i.jsx("button",{className:"btn btn-sm",id:"reg-pwd-eye",type:"button",style:{position:"absolute",right:"6px",top:"50%",transform:"translateY(-50%)",padding:"2px 8px",fontSize:"12px"},children:"显示"})]}),i.jsxs("div",{className:"auth-form-row",children:[i.jsx("input",{className:"input",id:"reg-email",placeholder:"邮箱地址",type:"email"}),i.jsx("button",{className:"btn",id:"reg-send-code",type:"button",style:{flex:"none"},children:"发送验证码"})]}),i.jsx("input",{className:"input",id:"reg-code",placeholder:"邮箱验证码",autoComplete:"one-time-code"}),i.jsx("div",{className:"hint",id:"reg-error-line",hidden:!0,style:{margin:"2px 0 0",color:"var(--color-error,#e0483f)"}}),i.jsx("button",{className:"btn btn-primary",id:"reg-submit",type:"button",children:"注 册"}),i.jsxs("div",{className:"auth-switch",children:["已有账号?",i.jsx("a",{id:"goto-login",children:"直接登录"})]}),i.jsxs("div",{className:"auth-trial-box",children:["🎁 注册成功即赠送 ",i.jsxs("b",{children:[i.jsx("span",{className:"reg-gift-num",children:"3"})," 次免费下载次数"]}),"(解析与在线试听免费)"]})]})]})]})}),"// 自动转换片段(供手工组装)",i.jsx("div",{className:"modal-mask"+(yt("announce-modal")?" show":""),id:"announce-modal",children:i.jsxs("div",{className:"modal",style:{width:"480px"},children:[i.jsxs("div",{className:"modal-header",children:[i.jsx("div",{className:"modal-title",id:"announce-title",children:"系统公告"}),i.jsx("button",{className:"icon-btn",id:"announce-close",type:"button",style:{padding:"4px 10px"},children:"✕"})]}),i.jsx("div",{className:"modal-body",children:i.jsx("div",{className:"announce-body",id:"announce-content"})}),i.jsx("div",{className:"drawer-footer",style:{borderTop:"1px solid var(--color-border-split)"},children:i.jsx("button",{className:"btn btn-primary",id:"announce-ok",type:"button",children:"我知道了"})})]})}),"// 自动转换片段(供手工组装)",i.jsx(Pv,{}),"// 自动转换片段(供手工组装)",i.jsxs("div",{className:"queue-float",id:"queue-float",children:[i.jsxs("div",{className:"queue-float-head",children:[i.jsx("span",{className:"queue-float-dot"}),i.jsx("span",{children:"实时排队"})]}),i.jsx("div",{className:"queue-float-num",id:"queue-num",children:"0"}),i.jsx("div",{className:"queue-float-sub",id:"queue-est",children:"预计等待:--"}),i.jsxs("div",{className:"queue-float-sub",children:["下载 ",i.jsx("span",{id:"queue-download",children:"-"})," · 打包 ",i.jsx("span",{id:"queue-batch",children:"-"})]})]}),"// 自动转换片段(供手工组装)",i.jsxs("div",{className:"task-panel",id:"task-panel",children:[i.jsxs("div",{className:"task-panel-head",children:[i.jsxs("span",{className:"tp-title",children:["📥 下载任务 ",i.jsx("span",{className:"tp-count",id:"task-count",children:"0"})]}),i.jsx("button",{className:"tp-close",id:"task-panel-close",type:"button",children:"✕"})]}),i.jsx("div",{className:"task-panel-list",id:"task-list"})]})]})}function Mv(){const e=Mr.useRef(!1);return Mr.useEffect(()=>{e.current||(e.current=!0,Tl(()=>Promise.resolve().then(()=>tp),void 0).then(t=>(t.__legacyBoot(),Tl(()=>import("./auth.js"),[]))).then(t=>t.__authBoot()).catch(t=>{console.error("前端启动失败:",t),(window.__errs=window.__errs||[]).push("BOOT: "+(t&&t.message||String(t)))}))},[]),i.jsx(Iv,{})}Oa.createRoot(document.getElementById("root")).render(i.jsx(Mv,{}));export{Rt as c,xr as o}; +//# sourceMappingURL=app.js.map diff --git a/frontend/dist/assets/app.js.map b/frontend/dist/assets/app.js.map new file mode 100644 index 0000000..3ec191b --- /dev/null +++ b/frontend/dist/assets/app.js.map @@ -0,0 +1 @@ +{"version":3,"mappings":"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","names":["l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","R","S","T","U","V","W","X","react_production_min","reactModule","require$$0","reactJsxRuntime_production_min","jsxRuntimeModule","exports","schedulerModule","aa","ca","require$$1","da","ea","fa","ha","ia","ja","ka","la","ma","oa","pa","qa","ra","sa","ta","ua","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Va","Wa","Xa","Ya","Za","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","ob","pb","qb","rb","sb","tb","ub","vb","wb","xb","yb","zb","Ab","Bb","Cb","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","oc","nc","pc","qc","rc","sc","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","Tc","Uc","Vc","Wc","Xc","Yc","Zc","$c","ad","bd","cd","dd","ed","fd","gd","hd","id","jd","kd","ld","md","nd","od","pd","qd","rd","sd","td","ud","vd","wd","xd","yd","Ad","zd","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Jd","Kd","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","Ud","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","je","ke","le","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Le","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ye","Ze","$e","af","bf","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","of","pf","qf","rf","sf","tf","uf","vf","wf","na","xa","$a","ba","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","If","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","Sg","Tg","Ug","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","fh","gh","hh","ih","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","gi","hi","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","aj","bj","cj","dj","ej","fj","gj","hj","ij","jj","kj","lj","mj","nj","oj","pj","qj","rj","sj","tj","uj","vj","wj","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Kj","Lj","Mj","Nj","Oj","Pj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","Xj","Yj","Zj","ak","bk","ck","dk","ek","fk","gk","hk","ik","jk","kk","lk","mk","nk","ok","Y","Z","pk","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","Qk","Rk","Sk","Tk","Uk","Vk","Wk","Xk","Yk","Zk","$k","al","bl","cl","dl","el","fl","gl","hl","il","jl","kl","ll","ml","nl","ol","pl","ql","rl","sl","tl","ul","vl","reactDom_production_min","checkDCE","err","reactDomModule","client","DEFAULT_SETTINGS","store","version","subs","notify","subscribe","getVersion","useAppVersion","useSyncExternalStore","toastSeq","toasts","toast","msg","type","i","_openStack","_drawer","isModalOpen","key","openModal","closeModal","topmostModal","closeTopmost","top","__vitePreload","legacy","api","isDrawerOpen","openDrawer","closeDrawer","safeAuthExpired","expired","__legacyBoot","$","$$","VIP_QUALITIES","AUTO_LADDER","THEME_COLORS","loadSettings","saveSettings","applyTheme","root","mode","dark","mixRgba","hex","alpha","renderSettingsUI","palette","dot","item","bindSwitch","activate","applySettingsEffects","bindCfgSwitch","fn","saveSettingsToast","okMsg","downloadConfig","fields","updateCommentComposer","loadComments","buildLyricLines","renderLyrics","applyLyricFont","statsTimer","loadStats","apiPost","data","fmtCount","now","list","ep","escapeHtml","openStatsModal","closeStatsModal","_cookieRegMode","_cookieReadTimer","_cookieReadLeft","_cookieTitleDefault","_cookieStopReadTimer","_cookieUpdateContinueBtn","btn","_cookieSetRegMode","isReg","cont","title","openCookieModal","closeCookieModal","_toggleCookieFunc","agreed","rm","un","cookieGate","reg","_drawerPrevFocus","busOpenDrawer","first","busCloseDrawer","consumed","CHANGELOG","renderChangelog","openChangelog","__removePageLoading","_acctGen","renderAccountBar","gen","badge","isUser","label","quals","lv","levelName","note","switchTab","name","setLyricFsPop","input","loadToplists","personalCheckLogin","globalCheckLogin","loadPodcastHot","renderAboutChangelog","extractId","text","str","fmtTime","sec","s","fmtRelative","ts","diff","level","map","url","params","body","attempt","heavy","ctl","timer","retriable","networkLevel","res","requireLogin","setBtnLoading","loading","loadingText","HISTORY_KEY","getHistory","raw","addHistory","renderHistory","row","box","close","tag","parseSong","_searchGen","doSearch","keyword","renderSearchList","result","html","requestSong","renderPersonalToggle","apiResolveLevel","idInput","lvl","ladder","idx","resolve","tryNext","_parseGen","renderSongResult","parseSongById","tip","initLyrics","initPlayer","stopPlayer","lrctrim","lyrics","lines","line","index","matches","minutes","seconds","timestamp","mergeTranslation","lyric","tlyric","trans","usedTrans","best","bestDt","bestIdx","dt","merged","parseYrc","out","start","dur","rest","marks","words","chars","segEnd","wordText","wordLines","covered","lrc","tlrc","yrc","panel","twoLine","cls","inner","base","orig","audio","applyLyricOffset","delta","updateActiveLyric","LYRIC_FONT_MIN","LYRIC_FONT_MAX","LYRIC_FONT_STEP","clampLyricFont","lyricFsPopOpen","open","nudgeLyricFont","dir","findActiveLyric","active","fillKtvLine","spans","sp","applyActiveLyric","j","time","ktvFrame","ktvStart","songId","page","reset","offset","hot","commentHtml","renderCommentPager","pages","cur","composer","setCommentReply","nickname","detail","contentEl","content","isReply","oldText","vip","location","reply","br","rNick","rContent","rDisplay","rShort","replyBtn","playerState","artist","cover","player","oldAudio","updateVolumeUI","updateMuteUI","ensureAudio","togglePlay","last","k2","gq","nx","saved","rect","ratio","downloadSong","doDownload","inFlight","tasks","cfg","taskId","genTaskId","getDeviceId","addTask","lyricToFormat","fmt","srtTime","ms","end","blob","fallbackCopy","_collGen","_collStale","doPlaylist","renderCollection","loadPlaylistById","doAlbum","loadAlbumById","songRowHtml","song","absIndex","PAGE_SIZE","renderPagedTracks","prefix","allTracks","total","slice","pager","dlBtn","info","card","tracks","isPlaylist","updateCollectButtons","doArtist","renderArtist","loadArtistById","songs","_tl","renderToplists","grid","podcastHotCache","podcastRadioCardHtml","renderPodcastCates","bar","cats","_podcastHotBusy","cateId","append","loadingHtml","cid","podcastParse","_podcastGen","podcastShowLoading","podcastRenderRadio","podcastRenderProgram","show","radio","renderPodcastEpisodes","podcastEpisodeRowHtml","serial","meta","programs","_podcastMoreBusy","prevAsc","prevOffset","credits","limit","act","pid","podcastOpenProgram","podcastCopyDirectLink","podcastDownloadEpisode","program","autoplay","badges","openBtn","canPlay","restore","podcastSearch","kw","radios","voices","radioBtn","voiceBtn","ver","adminEnter","adminLoadStatus","loadAdminLogs","desc","parts","adminStopQrPoll","adminQrCreate","svg","dataUri","adminQrPoll","st","adminCookieDelete","adminLogsPage","it","tagCls","personalRenderUser","personalLoadPlaylists","personalResetGate","hasCookie","vipBadgeHtml","vipType","personalRenderPlaylists","personalOpenPlaylist","personalRenderTracks","personalStopQrPoll","personalQrCreate","personalQrPoll","myGen","personalLogout","batchDownloadAll","globalRenderGate","globalRenderUser","globalRenderLists","globalLoadPlaylists","globalPlaylistRowHtml","fav","collect","globalOpenPlaylist","globalRenderTracks","globalPlayPlaylist","openApiModal","playlistId","apiUrl","withKey","closeApiModal","copyText","fallback","globalPlListClick","inList","collectTarget","action","parseBtn","gp","ga","gs","unc","confirmPartialDownload","need","old","mask","checkDownloadQuota","batchDownload","_prechecked","seen","allowed","batchFields","batchMetaFields","ids","okCount","failCount","unknownCount","next","downloadOne","success","done","oneFields","oneMetaFields","_hdr","_hdrScroll","_scrollLockMO","locked","_updBuf","ev","_baseTitle","_nowName","pn","nm","uaL","isTrident","isTooOld","_ua","_inWeChat","_inQQWV","_otherAppWV","_seen","_guide","_wgText","_gclose","sig","txt","_feSeen","_feCount","_feSend","stack","VALID_LEVELS","savedLevel","savedAccount","savedUserCookie","loadMyTasks","_ptw","formatWaitTime","loadQueue","waiting","avg","est","fmtDur","taskPollTimer","task","renderTaskPanel","pollTasks","pct","statusText","cancelBtn","claimBtn","dismissBtn","cancelTask","claimTask","_pollBusy","doneCount","_pollDone","removeTaskLater","onTaskDone","triggerTaskDownload","target","trimEndedTasks","max","ended","extra","eid","sendHeartbeat","hasTasks","my","added","__legacyApi","ToastLayer","jsx","Skeleton","jsxs","Fragment","App","booted","useRef","useEffect","ReactDOM"],"ignoreList":[0,1,2,3,4,5,6,7,8],"sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../node_modules/scheduler/cjs/scheduler.production.min.js","../../node_modules/scheduler/index.js","../../node_modules/react-dom/cjs/react-dom.production.min.js","../../node_modules/react-dom/index.js","../../node_modules/react-dom/client.js","../../src/lib/types.ts","../../src/lib/store.ts","../../src/ui/modalBus.ts","../../src/controllers/legacy.ts","../../src/ui/Skeleton.tsx","../../src/App.tsx","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3\n zipEnabled: boolean\n batchWriteMeta: boolean\n batchZip: boolean\n lyricFormat: 'lrc' | 'srt'\n lyricFont: number\n cookiePrefs: { functional: boolean; accepted: boolean }\n}\n\nexport interface PersonalState {\n authed: boolean\n qrTimer: ReturnType | null\n unikey: string\n user: any | null\n playlists: any[]\n current: { id: string; name: string } | null\n cookie: string\n}\n\nexport interface GlobalState {\n user: any | null\n playlists: any[]\n current: { id: string; name: string } | null\n playQueue: any[]\n playQueueIndex?: number\n}\n\nexport interface PodcastState {\n hotLoaded: boolean\n hotCate: string | null\n hotOffset: number\n radio: any | null\n radioId: string | null\n program: any | null\n offset: number\n count: number\n asc: boolean\n}\n\nexport interface AuthState {\n user: any | null\n checked: boolean\n annSeen: string\n}\n\nexport interface AppState {\n currentSong: any | null\n lyrics: any[]\n lyricsTrans: any[]\n rawLyric: string | null\n rawTlyric: string | null\n rawYrc: string | null\n currentTab: string\n commentOffset: number\n commentTotal: number\n commentHasMore: boolean\n commentPage: number\n commentReply: { id: string; nickname: string } | null\n settings: Settings\n adminAuthed: boolean\n adminPassword: string\n adminQrTimer: ReturnType | null\n adminUnikey: string\n personal: PersonalState\n global: GlobalState\n parseAccount: 'admin' | 'user'\n levelsOk: string[]\n lyricOffset: number\n currentCollection: { type: string; id: any; name: string } | null\n podcast: PodcastState\n auth: AuthState\n /* 运行时附加状态(与旧版一致,动态挂在 state 上) */\n toplistLoaded: boolean\n collGen: Record\n page_playlist?: number\n page_album?: number\n page_artist?: number\n page_personal?: number\n page_global?: number\n tracks_playlist?: any[]\n tracks_album?: any[]\n tracks_artist?: any[]\n tracks_personal?: any[]\n tracks_global?: any[]\n _commentsLoading?: boolean\n _commentGen?: number\n ktvRunning?: boolean\n lastActiveLine?: number\n ktvFillIdx?: number\n ktvWordEls?: NodeListOf | null\n ktvLineEls?: Element[] | null\n _queueNoResume?: boolean\n dark?: boolean\n}\n\nexport const DEFAULT_SETTINGS: Settings = {\n primaryColor: '#1677ff',\n themeMode: 'system',\n ktv: false,\n lyric2line: true,\n progressMemory: true,\n showComments: true,\n smtc: true,\n filenameFormat: 'artist_song',\n writeMeta: true,\n metaFields: { name: true, artist: true, album: true, cover: true, lyrics: false, date: false },\n zipEnabled: false,\n batchWriteMeta: true,\n batchZip: true,\n lyricFormat: 'lrc',\n lyricFont: 1,\n cookiePrefs: { functional: true, accepted: false },\n}\n","/* 轻量全局 store:保持旧版「单一可变 state 对象 + 显式 notify」的心智模型。\n * 组件通过 useAppVersion() 订阅版本号,读取 store 字段渲染;\n * 逻辑层照旧直接改 store 字段后调 notify()——与旧版改 state + render*() 等价。 */\nimport { useSyncExternalStore } from 'react'\nimport type { AppState } from './types'\nimport { DEFAULT_SETTINGS } from './types'\n\nexport const store: AppState = {\n currentSong: null,\n lyrics: [],\n lyricsTrans: [],\n rawLyric: null,\n rawTlyric: null,\n rawYrc: null,\n currentTab: 'search',\n commentOffset: 0,\n commentTotal: 0,\n commentHasMore: false,\n commentPage: 1,\n commentReply: null,\n settings: { ...DEFAULT_SETTINGS, metaFields: { ...DEFAULT_SETTINGS.metaFields }, cookiePrefs: { ...DEFAULT_SETTINGS.cookiePrefs } },\n adminAuthed: false,\n adminPassword: '',\n adminQrTimer: null,\n adminUnikey: '',\n personal: { authed: false, qrTimer: null, unikey: '', user: null, playlists: [], current: null, cookie: '' },\n global: { user: null, playlists: [], current: null, playQueue: [], playQueueIndex: 0 },\n parseAccount: 'admin',\n levelsOk: [],\n lyricOffset: 0,\n currentCollection: null,\n podcast: { hotLoaded: false, hotCate: null, hotOffset: 0, radio: null, radioId: null, program: null, offset: 0, count: 0, asc: true },\n auth: { user: null, checked: false, annSeen: '' },\n toplistLoaded: false,\n collGen: {},\n dark: false,\n}\n\nlet version = 0\nconst subs = new Set<() => void>()\n\nexport function notify() {\n version++\n subs.forEach((f) => f())\n}\n\nfunction subscribe(f: () => void) {\n subs.add(f)\n return () => {\n subs.delete(f)\n }\n}\n\nfunction getVersion() {\n return version\n}\n\n/** 订阅全局 store 版本号;组件内配合直接读 store 字段使用。 */\nexport function useAppVersion(): number {\n return useSyncExternalStore(subscribe, getVersion)\n}\n\n/* ================= Toast ================= */\nexport interface ToastItem {\n id: number\n msg: string\n type: string\n}\n\nlet toastSeq = 0\nexport const toasts: ToastItem[] = []\n\nexport function toast(msg: string, type?: string) {\n const t = type || 'info'\n const id = ++toastSeq\n toasts.push({ id, msg, type: t })\n notify()\n setTimeout(() => {\n const i = toasts.findIndex((x) => x.id === id)\n if (i >= 0) {\n toasts.splice(i, 1)\n notify()\n }\n }, 2900)\n}\n","/* 弹窗/抽屉显隐总线:React 状态驱动的 show 类。\n * 控制器层一律通过 openModal/closeModal 切换,不再直接 classList.add('show')。 */\nimport { notify } from '../lib/store'\n\nexport type ModalKey =\n | 'changelog-modal'\n | 'stats-modal'\n | 'api-modal'\n | 'cookie-modal'\n | 'login-modal'\n | 'register-modal'\n | 'announce-modal'\n\nconst _openStack: ModalKey[] = []\nlet _drawer = false\n\nexport function isModalOpen(key: ModalKey): boolean {\n return _openStack.indexOf(key) !== -1\n}\n\nexport function openModal(key: ModalKey) {\n if (_openStack.indexOf(key) === -1) _openStack.push(key)\n notify()\n}\n\nexport function closeModal(key: ModalKey) {\n const i = _openStack.indexOf(key)\n if (i !== -1) _openStack.splice(i, 1)\n notify()\n}\n\n/** 视觉最上层弹窗(后开在上),无则 null */\nexport function topmostModal(): ModalKey | null {\n return _openStack.length ? _openStack[_openStack.length - 1] : null\n}\n\n/** Escape 通用分支:关掉最上层弹窗(含专用清理钩子),返回是否消费了按键 */\nexport function closeTopmost(): boolean {\n const top = topmostModal()\n if (!top) return false\n if (top === 'stats-modal' || top === 'cookie-modal') {\n // 专用关闭(清轮询定时器/复位注册门槛视图),经 __legacyApi 间接调用\n import('../controllers/legacy').then((m) => {\n const api = (m as any).__legacyApi\n if (top === 'stats-modal') api.closeStatsModal()\n else api.closeCookieModal()\n })\n closeModal(top)\n return true\n }\n closeModal(top)\n return true\n}\n\nexport function isDrawerOpen(): boolean {\n return _drawer\n}\n\nexport function openDrawer() {\n _drawer = true\n notify()\n}\n\nexport function closeDrawer() {\n _drawer = false\n notify()\n}\n\nexport function toggleDrawer() {\n _drawer = !_drawer\n notify()\n}\n","// @ts-nocheck\n/* 主业务控制器(由旧版 templates/index.html 内联脚本逐字移植)。\n * 全局状态 store、弹窗显隐 modalBus、Tab 显隐由 React 接管;\n * 其余动态区域沿用 id + innerHTML 的命令式实现,保证行为一致。\n * 全部副作用包在 __legacyBoot() 中——旧脚本位于 body 末尾可直取 DOM,\n * 模块化后 React 尚未渲染骨架,必须等挂载完成再绑定。 */\nimport { store, notify, toast } from '../lib/store'\nimport { openModal, closeModal, isModalOpen, closeTopmost, openDrawer as busOpenDrawer, closeDrawer as busCloseDrawer, isDrawerOpen } from '../ui/modalBus'\nfunction safeAuthExpired(msg, expired) { if (window.handleAuthExpired) window.handleAuthExpired(msg, expired); else toast(msg, 'warning'); }\nexport function __legacyBoot() {\n /* Promise.finally 老内核 polyfill(MDN 标准实现,ES5 语法)。\n finally 需 Chrome 63+;支持矩阵承诺 Chromium 57-85 可用降级,\n 20 处业务代码的 .finally 依赖此垫片在 57-62 上正常工作 */\n \n\n var $ = function (s) { return document.querySelector(s); };\n var $$ = function (s) { return Array.prototype.slice.call(document.querySelectorAll(s)); };\n\n /* ================= 全局状态 ================= */\n ;\n\n /* VIP 类型 → 名称 / 可解析音质 */\n var VIP_NAME = { 0: '普通用户', 1: '音乐包', 11: '黑胶VIP', 100: '黑胶VIP', 10: '黑胶SVIP', 110: '黑胶SVIP' };\n var VIP_QUALITIES = {\n 0: [['standard', '标准音质'], ['exhigh', '极高音质']],\n 1: [['standard', '标准音质'], ['exhigh', '极高音质'], ['lossless', '无损音质'], ['hires', 'Hi-Res音质']],\n 11: [['standard', '标准音质'], ['exhigh', '极高音质'], ['lossless', '无损音质'], ['hires', 'Hi-Res音质']],\n 100: [['standard', '标准音质'], ['exhigh', '极高音质'], ['lossless', '无损音质'], ['hires', 'Hi-Res音质']],\n 10: [['standard', '标准音质'], ['exhigh', '极高音质'], ['lossless', '无损音质'], ['hires', 'Hi-Res音质'],\n ['sky', '沉浸环绕声'], ['jyeffect', '高清环绕声'], ['jymaster', '超清母带'], ['dolby', '杜比全景声']],\n 110: [['standard', '标准音质'], ['exhigh', '极高音质'], ['lossless', '无损音质'], ['hires', 'Hi-Res音质'],\n ['sky', '沉浸环绕声'], ['jyeffect', '高清环绕声'], ['jymaster', '超清母带'], ['dolby', '杜比全景声']]\n };\n var AUTO_LADDER = ['jymaster', 'jyeffect', 'sky', 'hires', 'lossless', 'exhigh', 'standard'];\n\n /* ================= 设置 ================= */\n var THEME_COLORS = [\n { name: '默认蓝', color: '#1677ff' },\n { name: '红色', color: '#f5222d' },\n { name: '橙色', color: '#fa8c16' },\n { name: '火山', color: '#d4380d' },\n { name: '青色', color: '#13c2c2' },\n { name: '绿色', color: '#52c41a' },\n { name: '粉红', color: '#eb2f96' },\n { name: '紫罗兰', color: '#722ed1' }\n ];\n\n function loadSettings() {\n // 可读部分先应用;单条目损坏不阻断整体恢复;\n // primaryColor 校验为合法 #rrggbb(数值等坏值不再炸 applyTheme)\n var s = {};\n try { s = JSON.parse(localStorage.getItem('netease_settings') || '{}') || {}; } catch (e) { s = {}; }\n if (typeof s !== 'object') s = {};\n // 一次性迁移:批量下载默认改为 ZIP 打包(老用户未主动开启过打包也升级,之后可在设置中关闭)\n // 迁移结果必须持久化(原实现只写完成标志,第二次加载回退旧值)\n try {\n if (!localStorage.getItem('netease_batchzip_migrated')) {\n if (s.batchZip !== true) { delete s.batchZip; }\n localStorage.setItem('netease_settings', JSON.stringify(s));\n localStorage.setItem('netease_batchzip_migrated', '1');\n }\n } catch (e) {}\n if (typeof s.primaryColor === 'string' && /^#[0-9a-fA-F]{6}$/.test(s.primaryColor)) {\n store.settings.primaryColor = s.primaryColor;\n }\n if (s.themeMode) store.settings.themeMode = s.themeMode;\n ['ktv', 'lyric2line', 'progressMemory', 'showComments', 'smtc', 'writeMeta',\n 'batchWriteMeta', 'batchZip', 'zipEnabled'].forEach(function (k) {\n if (typeof s[k] === 'boolean') store.settings[k] = s[k];\n });\n if (s.filenameFormat) store.settings.filenameFormat = s.filenameFormat;\n if (s.lyricFormat) store.settings.lyricFormat = s.lyricFormat;\n if (typeof s.lyricFont === 'number' && isFinite(s.lyricFont)) {\n // 歌词字号:限幅 0.7–1.6 并按 5% 步进取整(坏值/超范围自动收回)\n store.settings.lyricFont = Math.max(0.7, Math.min(1.6, Math.round(s.lyricFont * 20) / 20));\n }\n if (s.metaFields && typeof s.metaFields === 'object') {\n Object.keys(store.settings.metaFields).forEach(function (k) {\n if (typeof s.metaFields[k] === 'boolean') store.settings.metaFields[k] = s.metaFields[k];\n });\n }\n if (s.cookiePrefs && typeof s.cookiePrefs === 'object') {\n if (typeof s.cookiePrefs.functional === 'boolean') store.settings.cookiePrefs.functional = s.cookiePrefs.functional;\n if (typeof s.cookiePrefs.accepted === 'boolean') store.settings.cookiePrefs.accepted = s.cookiePrefs.accepted;\n }\n }\n\n function saveSettings() {\n // 返回是否真的持久化成功(调用方据此给出准确提示,不再一律\"已保存\")\n try {\n localStorage.setItem('netease_settings', JSON.stringify(store.settings));\n return true;\n } catch (e) { return false; }\n }\n\n function applyTheme() {\n var root = document.documentElement;\n // 主题切换平滑过渡:切换期间短暂启用全变量颜色过渡\n root.classList.add('theme-fading');\n setTimeout(function () { root.classList.remove('theme-fading'); }, 320);\n var mode = store.settings.themeMode;\n var dark = mode === 'dark' || (mode === 'system' &&\n window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches);\n root.classList.toggle('dark', dark);\n root.style.setProperty('--color-primary', store.settings.primaryColor);\n root.style.setProperty('--color-primary-bg', mixRgba(store.settings.primaryColor, 0.12));\n root.style.setProperty('--color-primary-hover', mixRgba(store.settings.primaryColor, 0.9));\n root.style.setProperty('--color-primary-active', mixRgba(store.settings.primaryColor, 0.7));\n $('#theme-toggle').innerHTML = dark ? '☀️ 浅色' : '🌙 深色';\n }\n\n function mixRgba(hex, alpha) {\n var r = parseInt(hex.slice(1, 3), 16);\n var g = parseInt(hex.slice(3, 5), 16);\n var b = parseInt(hex.slice(5, 7), 16);\n // alpha > 0.5 视为向白色混合得到 hover/active 色,否则返回半透明色\n if (alpha > 0.5) {\n var k = 1 - alpha;\n return 'rgb(' + Math.round(r + (255 - r) * k) + ',' +\n Math.round(g + (255 - g) * k) + ',' +\n Math.round(b + (255 - b) * k) + ')';\n }\n return 'rgba(' + r + ',' + g + ',' + b + ',' + alpha + ')';\n }\n\n function renderSettingsUI() {\n // 主题色\n var palette = $('#color-palette');\n palette.innerHTML = THEME_COLORS.map(function (c) {\n return '
';\n }).join('');\n // 外观模式\n $$('#mode-seg .seg-item').forEach(function (el) {\n el.classList.toggle('active', el.getAttribute('data-mode') === store.settings.themeMode);\n });\n // 开关\n $('#switch-ktv').classList.toggle('on', store.settings.ktv);\n $('#switch-lyric2line').classList.toggle('on', store.settings.lyric2line);\n $('#switch-progress').classList.toggle('on', store.settings.progressMemory);\n $('#switch-comments').classList.toggle('on', store.settings.showComments);\n $('#switch-smtc').classList.toggle('on', store.settings.smtc);\n // 下载配置\n $('#cfg-filename-format').value = store.settings.filenameFormat;\n $('#cfg-write-meta').classList.toggle('on', store.settings.writeMeta);\n $('#cfg-zip').classList.toggle('on', store.settings.zipEnabled);\n $('#cfg-batch-meta').classList.toggle('on', store.settings.batchWriteMeta);\n $('#cfg-batch-zip').classList.toggle('on', store.settings.batchZip);\n $('#cfg-lyric-format').value = store.settings.lyricFormat;\n // 写入字段复选框\n $$('#cfg-meta-fields-wrap input[type=checkbox]').forEach(function (cb) {\n cb.checked = !!store.settings.metaFields[cb.getAttribute('data-field')];\n cb.disabled = !store.settings.writeMeta;\n });\n // 功能性 Cookie\n $('#switch-cookie-func').classList.toggle('on', store.settings.cookiePrefs.functional);\n $('#switch-cookie-func').setAttribute('aria-checked', store.settings.cookiePrefs.functional ? 'true' : 'false');\n $('#cookie-func-tag').textContent = store.settings.cookiePrefs.functional ? '已启用' : '已禁用';\n // 主题色点键盘可达(同型——动态生成后统一补属性)\n $$('#color-palette .color-dot').forEach(function (el) {\n el.setAttribute('tabindex', '0');\n el.setAttribute('role', 'button');\n });\n }\n\n $('#color-palette').addEventListener('click', function (e) {\n var dot = e.target.closest('.color-dot');\n if (!dot) return;\n store.settings.primaryColor = dot.getAttribute('data-color');\n renderSettingsUI();\n applyTheme();\n });\n // 主题色点 Enter/空格激活\n $('#color-palette').addEventListener('keydown', function (e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n var dot = e.target.closest ? e.target.closest('.color-dot') : null;\n if (!dot) return;\n e.preventDefault();\n dot.click();\n });\n\n $('#mode-seg').addEventListener('click', function (e) {\n var item = e.target.closest('.seg-item');\n if (!item) return;\n store.settings.themeMode = item.getAttribute('data-mode');\n renderSettingsUI();\n applyTheme();\n });\n // 外观模式分段键盘可达\n $('#mode-seg').addEventListener('keydown', function (e) {\n if (e.key !== 'Enter' && e.key !== ' ') return;\n var item = e.target.closest ? e.target.closest('.seg-item') : null;\n if (!item) return;\n e.preventDefault();\n item.click();\n });\n\n function bindSwitch(id, key) {\n var el = $(id);\n if (!el) return;\n // 自定义开关补全键盘语义(tabindex/role/aria + Enter/空格激活)\n el.setAttribute('tabindex', '0');\n el.setAttribute('role', 'switch');\n var activate = function () {\n store.settings[key] = !store.settings[key];\n renderSettingsUI();\n applySettingsEffects();\n };\n el.addEventListener('click', activate);\n el.addEventListener('keydown', function (e) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n activate();\n }\n });\n }\n bindSwitch('#switch-ktv', 'ktv');\n bindSwitch('#switch-lyric2line', 'lyric2line');\n bindSwitch('#switch-progress', 'progressMemory');\n bindSwitch('#switch-comments', 'showComments');\n bindSwitch('#switch-smtc', 'smtc');\n\n // 配置区开关同样支持键盘操作\n function bindCfgSwitch(id, fn) {\n var el = $(id);\n if (!el) return;\n el.setAttribute('tabindex', '0');\n el.setAttribute('role', 'switch');\n el.addEventListener('click', fn);\n el.addEventListener('keydown', function (e) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n fn();\n }\n });\n }\n\n // 下载/批量/歌词 配置控件\n $('#cfg-filename-format').addEventListener('change', function () {\n store.settings.filenameFormat = this.value;\n });\n bindCfgSwitch('#cfg-write-meta', function () {\n store.settings.writeMeta = !store.settings.writeMeta;\n renderSettingsUI();\n });\n bindCfgSwitch('#cfg-zip', function () {\n store.settings.zipEnabled = !store.settings.zipEnabled;\n renderSettingsUI();\n });\n bindCfgSwitch('#cfg-batch-meta', function () {\n store.settings.batchWriteMeta = !store.settings.batchWriteMeta;\n renderSettingsUI();\n });\n bindCfgSwitch('#cfg-batch-zip', function () {\n store.settings.batchZip = !store.settings.batchZip;\n renderSettingsUI();\n });\n $('#cfg-lyric-format').addEventListener('change', function () {\n store.settings.lyricFormat = this.value;\n });\n $('#cfg-meta-fields-wrap').addEventListener('change', function (e) {\n var cb = e.target;\n if (cb.getAttribute('type') !== 'checkbox') return;\n store.settings.metaFields[cb.getAttribute('data-field')] = cb.checked;\n });\n // 各分区保存按钮\n // 保存提示反映真实持久化结果(存储被禁/配额满时不再谎报成功)\n function saveSettingsToast(okMsg) {\n toast(saveSettings() ? okMsg : '设置未能保存(浏览器存储不可用),仅本次生效', 'warning');\n }\n $('#cfg-save-download').addEventListener('click', function () { saveSettingsToast('下载配置已保存'); });\n $('#cfg-save-batch').addEventListener('click', function () { saveSettingsToast('批量下载配置已保存'); });\n $('#cfg-save-lyric').addEventListener('click', function () { saveSettingsToast('歌词配置已保存'); });\n\n // 下载配置参数构建(供解析/下载请求使用)\n function downloadConfig() {\n var fields = Object.keys(store.settings.metaFields).filter(function (k) {\n return store.settings.metaFields[k];\n });\n return {\n filename_format: store.settings.filenameFormat,\n write_meta: store.settings.writeMeta ? 'true' : 'false',\n meta_fields: store.settings.writeMeta && fields.length ? fields.join(',') : '__none__',\n lyric_format: store.settings.lyricFormat,\n zip: store.settings.zipEnabled ? 'true' : 'false'\n };\n }\n\n function applySettingsEffects() {\n // 评论区显隐\n $('#comment-panel').hidden = !(store.settings.showComments && store.currentSong);\n updateCommentComposer();\n // 评论从关到开时,为当前歌曲补加载评论(原来只显示面板,\n // 可能展示旧歌评论或空白)\n if (store.settings.showComments && store.currentSong\n && !store.commentTotal && !store._commentsLoading) {\n loadComments(store.currentSong.id, 1, true);\n }\n // KTV 从开到关时终止已启动的动画帧循环(原来旧帧继续更新并排下一帧)\n if (!store.settings.ktv && store.ktvRunning) {\n store.ktvRunning = false;\n }\n // 重绘歌词(KTV / 翻译分行模式)\n if (store.rawLyric != null) {\n store.lyrics = buildLyricLines();\n renderLyrics();\n }\n }\n\n $('#settings-save').addEventListener('click', function () {\n saveSettingsToast('设置已保存');\n closeDrawer();\n });\n $('#settings-reset').addEventListener('click', function () {\n store.settings = {\n primaryColor: '#1677ff',\n themeMode: 'system',\n ktv: false,\n lyric2line: true,\n progressMemory: true,\n showComments: true,\n smtc: true,\n filenameFormat: 'artist_song',\n writeMeta: true,\n metaFields: { name: true, artist: true, album: true, cover: true, lyrics: false, date: false },\n zipEnabled: false,\n batchWriteMeta: true,\n batchZip: true, // 批量下载默认 ZIP 打包(任务面板有进度,一次下载一个包)\n lyricFormat: 'lrc',\n lyricFont: 1, // 恢复默认设置时字号一并回 100%\n cookiePrefs: { functional: true, accepted: false } // 新用户默认未同意\n };\n renderSettingsUI();\n applyTheme();\n applySettingsEffects();\n applyLyricFont();\n saveSettings();\n toast('已恢复默认设置', 'info');\n });\n\n /* ================= 接口请求统计 ================= */\n var statsTimer = null;\n function loadStats() {\n apiPost('/api/topen', {})\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '获取统计失败');\n var d = data.data;\n $('#stat-total').textContent = fmtCount(d.total);\n $('#stat-endpoints').textContent = d.endpoint_count;\n $('#stat-max').textContent = fmtCount(d.max_count);\n var now = new Date();\n $('#stats-refresh-time').textContent =\n String(now.getHours()).padStart(2, '0') + ':' +\n String(now.getMinutes()).padStart(2, '0') + ':' +\n String(now.getSeconds()).padStart(2, '0');\n var list = d.endpoints || [];\n $('#stats-list').innerHTML = list.map(function (ep, i) {\n return '
' +\n '#' + (i + 1) + '' +\n '
' +\n '
' + escapeHtml(ep.name) + '
' +\n '
' + escapeHtml(ep.path) + '
' +\n '
' +\n '' + escapeHtml(String(fmtCount(ep.count))) + '次 (' + escapeHtml(String(ep.percent)) + '%)' +\n '
';\n }).join('') || '
暂无请求记录
';\n })\n .catch(function (err) {\n toast(err.message || '获取统计失败', 'error');\n });\n }\n function openStatsModal() {\n openModal('stats-modal');\n loadStats();\n if (statsTimer) clearInterval(statsTimer);\n statsTimer = setInterval(loadStats, 10000);\n }\n function closeStatsModal() {\n closeModal('stats-modal');\n if (statsTimer) { clearInterval(statsTimer); statsTimer = null; }\n }\n $('#cfg-stats-view').addEventListener('click', openStatsModal);\n $('#cfg-stats-refresh').addEventListener('click', openStatsModal);\n $('#stats-refresh-btn').addEventListener('click', loadStats);\n $('#stats-close').addEventListener('click', closeStatsModal);\n $('#stats-modal').addEventListener('click', function (e) { if (e.target === this) closeStatsModal(); });\n\n /* ================= 隐私与协议(Cookie 偏好) ================= */\n // mode='register' 为注册门槛模式——打开即自动计时 16 秒强制阅读,\n // 计时归零且勾选同意后才允许「同意并继续注册」进入注册弹窗(同意一次永久记住,\n // 撤回/清浏览器数据后重新计时)。普通模式(首访/设置入口)行为不变。\n var _cookieRegMode = false;\n var _cookieReadTimer = null;\n var _cookieReadLeft = 0;\n var _cookieTitleDefault = null;\n function _cookieStopReadTimer() {\n if (_cookieReadTimer) { clearInterval(_cookieReadTimer); _cookieReadTimer = null; }\n }\n function _cookieUpdateContinueBtn() {\n var btn = $('#cookie-agree-continue');\n if (!btn) return;\n if (_cookieReadLeft > 0) {\n btn.disabled = true;\n btn.textContent = '请阅读协议(' + _cookieReadLeft + 's)';\n return;\n }\n btn.textContent = '同意并继续注册';\n btn.disabled = !$('#cookie-agree').checked;\n }\n function _cookieSetRegMode(isReg) {\n _cookieRegMode = isReg;\n $('#cookie-withdraw').hidden = isReg;\n $('#cookie-save').hidden = isReg;\n var cont = $('#cookie-agree-continue');\n if (cont) cont.hidden = !isReg;\n var title = $('#cookie-modal .modal-title');\n if (title) {\n if (_cookieTitleDefault === null) _cookieTitleDefault = title.textContent;\n title.textContent = isReg ? '注册前请阅读并同意协议' : _cookieTitleDefault;\n }\n }\n function openCookieModal(mode) {\n // 反向叠窗守卫——公告先开时 Cookie 窗(强制同意门)\n // 优先,收起公告弹窗再开(游客 once 模式已在打开时记已读,属可接受取舍)\n var _am = document.getElementById('announce-modal');\n if (isModalOpen('announce-modal')) closeModal('announce-modal');\n var isReg = mode === 'register' && !store.settings.cookiePrefs.accepted;\n $('#cookie-agree').checked = store.settings.cookiePrefs.accepted;\n renderSettingsUI();\n _cookieSetRegMode(isReg);\n var m = $('#cookie-modal');\n openModal('cookie-modal');\n _cookieStopReadTimer();\n if (isReg) {\n // 16 秒强制阅读:弹窗被任何方式关闭(Escape/遮罩/关闭钮)由 tick\n // 自检停止——不碰 MutationObserver(渲染器活锁教训)\n _cookieReadLeft = 16;\n _cookieUpdateContinueBtn();\n _cookieReadTimer = setInterval(function () {\n if (!isModalOpen('cookie-modal')) { _cookieStopReadTimer(); return; }\n _cookieReadLeft = Math.max(0, _cookieReadLeft - 1);\n _cookieUpdateContinueBtn();\n if (_cookieReadLeft <= 0) _cookieStopReadTimer();\n }, 1000);\n }\n }\n function closeCookieModal() {\n _cookieStopReadTimer();\n _cookieReadLeft = 0;\n closeModal('cookie-modal');\n _cookieSetRegMode(false); // 复位为常规 footer,普通入口打开状态正确\n }\n $('#cfg-cookie-prefs').addEventListener('click', function () { openCookieModal(); }); // 显式包裹,避免事件对象被误当 mode 实参\n $('#cookie-close').addEventListener('click', closeCookieModal);\n $('#cookie-modal').addEventListener('click', function (e) { if (e.target === this) closeCookieModal(); });\n $('#cookie-agree').addEventListener('change', function () {\n if (_cookieRegMode) _cookieUpdateContinueBtn();\n });\n\n var _toggleCookieFunc = function () {\n store.settings.cookiePrefs.functional = !store.settings.cookiePrefs.functional;\n renderSettingsUI();\n toast(store.settings.cookiePrefs.functional ? '功能性 Cookie 已启用' : '功能性 Cookie 已禁用(解析与下载将不可用)', 'warning');\n };\n $('#switch-cookie-func').addEventListener('click', _toggleCookieFunc);\n // 功能性 Cookie 开关键盘可达\n $('#switch-cookie-func').addEventListener('keydown', function (e) {\n if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); _toggleCookieFunc(); }\n });\n\n $('#cookie-save').addEventListener('click', function () {\n var agreed = $('#cookie-agree').checked;\n if (!agreed) {\n toast('请先勾选已阅读并同意《用户协议》和《隐私政策》', 'warning');\n return;\n }\n store.settings.cookiePrefs.accepted = true;\n saveSettings();\n closeCookieModal();\n toast('Cookie 偏好已保存', 'success');\n });\n // 注册门槛模式的「同意并继续注册」——保存同意与功能性偏好,\n // 关闭本弹窗并放行进入注册弹窗(聚焦用户名框)\n $('#cookie-agree-continue').addEventListener('click', function () {\n if (this.disabled) return;\n if (!$('#cookie-agree').checked) {\n toast('请先勾选已阅读并同意《用户协议》和《隐私政策》', 'warning');\n return;\n }\n store.settings.cookiePrefs.accepted = true;\n saveSettings();\n renderSettingsUI();\n closeCookieModal();\n toast('已同意《用户协议》与《隐私政策》,请继续注册', 'success');\n var rm = $('#register-modal');\n if (rm) {\n openModal('register-modal');\n var un = $('#reg-username');\n if (un) { try { un.focus(); } catch (e) {} }\n }\n });\n $('#cookie-withdraw').addEventListener('click', function () {\n store.settings.cookiePrefs = { functional: true, accepted: false };\n saveSettings();\n renderSettingsUI();\n closeCookieModal();\n toast('已撤回同意', 'info');\n });\n\n // 功能性 Cookie 关闭时禁止解析/下载;mode='register' 时只强制协议同意\n // (功能性 Cookie 不拦注册——注册本身不依赖它,拦解析/下载时再报)\nfunction cookieGate(mode) {\n if (!store.settings.cookiePrefs.accepted) {\n var reg = mode === 'register';\n toast(reg ? '注册前请先阅读并同意《用户协议》与《隐私政策》' : '请先阅读并同意《用户协议》和《隐私政策》', 'warning');\n openCookieModal(reg ? 'register' : undefined);\n return false;\n }\n if (mode !== 'register' && !store.settings.cookiePrefs.functional) {\n toast('功能性 Cookie 已关闭,无法解析与下载音乐,请在「设置 → 隐私与协议」中开启', 'warning');\n openCookieModal();\n return false;\n }\n return true;\n}\n// 暴露给 site_auth.js——注册提交前强制隐私同意(未同意则弹协议窗并中止)\nwindow.SITE_COOKIE_GATE = cookieGate;\n\n var _drawerPrevFocus = null;\n function openDrawer() {\n // 打开抽屉时把焦点移入抽屉(键盘/读屏用户不再滞留在页面背后)\n _drawerPrevFocus = document.activeElement;\n busOpenDrawer();\n busOpenDrawer();\n var first = $('#settings-drawer').querySelector('button, [href], input, select, [tabindex]:not([tabindex=\"-1\"])');\n if (first) try { first.focus(); } catch (e) {}\n }\n function closeDrawer() {\n busCloseDrawer();\n busCloseDrawer();\n // 关闭后把焦点还给触发控件\n if (_drawerPrevFocus && typeof _drawerPrevFocus.focus === 'function') {\n try { _drawerPrevFocus.focus(); } catch (e) {}\n }\n _drawerPrevFocus = null;\n }\n // Escape 关闭抽屉/弹窗(键盘可达性)——弹窗栈由 modalBus 管理\n document.addEventListener('keydown', function (e) {\n if (e.key !== 'Escape') return;\n var consumed = closeTopmost();\n if (consumed) return;\n // 无弹窗时 Escape 仍关抽屉(弹窗优先于抽屉的顺序修正)\n if (isDrawerOpen()) busCloseDrawer();\n });\n $('#btn-settings').addEventListener('click', openDrawer);\n $('#drawer-close').addEventListener('click', closeDrawer);\n $('#drawer-mask').addEventListener('click', closeDrawer);\n\n /* ================= 更新日志 ================= */\n var CHANGELOG = [\n { v: '2.4.0', date: '2026-09-21', items: ['修复:解析结果在快速连续解析两首歌时可能互相覆盖(串台)的问题', '修复:超长曲目(100 分钟以上)歌词第 100 分钟起丢失的问题', '修复:连播切歌后歌词/评论区仍显示上一首的问题', '修复:歌名含特殊字符时下载领取失败的问题', '修复:老内核浏览器(Chrome 57-62)操作按钮卡加载的问题', '安全:登录失败次数过多临时锁定;公网错误信息不再暴露内部细节', '优化:下载结果保留期与「领取」入口统一为 35 分钟'] },\n { v: '2.1.0', date: '2026-08-28', items: ['调整:计费改为按次计费,一首歌消耗 1 次,歌单打包下载按歌曲数量扣减(如 100 首歌单打包 = 100 次)', '调整:免费试用改为 3 次(3 首歌),注册页领取,每台设备限领一次', '调整:卡密升级为次数卡,后台可生成 3/10/50/100/500/2000 次卡'] },\n { v: '1.6.0', date: '2026-08-28', items: ['新增:账号系统(强制登录):邮箱验证码注册、免费体验5分钟(设备识别防重复)、使用时长管理', '新增:管理后台:用户管理(删除/时长修改/网易云Cookie查看)、全局Cookie管理、SMTP邮箱配置、成功/失败日志、次数卡密生成、公告设置、数据库备份/下载/上传恢复/定时备份', '新增:个人中心:剩余时长、卡密充值、公告查看、版本日志、联系方式、退出登录', '新增:导航栏登录/注册按钮,登录后显示头像,管理员/普通用户角色识别与定向跳转', '调整:全局账号歌单仅管理员可见;解析功能需登录后使用'] },\n { v: '1.5.0', date: '2026-08-28', items: ['新增:播客解析模块,支持电台/单集链接与ID解析、在线试听、音频直链获取', '新增:播客下载方式:单集服务器下载(ZIP 可选)、整台播客打包下载,接入任务进度悬浮窗', '新增:播客搜索与热门播客分类卡片墙', '新增:「关于网站」菜单:项目介绍、功能说明、更新日志与作者信息'] },\n { v: '1.4.8', date: '2026-08-05', items: ['新增:单曲解析结果下方新增「下载歌词」按钮', '新增:播放器新增「播放进度记忆」功能', '优化:歌词下载自动过滤 YRC/LRC 头部的 JSON 元数据行'] },\n { v: '1.4.7', date: '2026-07-22', items: ['新增:设置「下载配置」分类中加入「写入字段」勾选区', '优化:未勾选字段不会覆盖原音频文件中的值'] },\n { v: '1.4.6', date: '2026-07-21', items: ['新增:单曲解析结果新增「自定义元数据」开关', '优化:每次解析新歌曲时自动重置自定义元数据'] },\n { v: '1.4.5', date: '2026-07-20', items: ['新增:逐字歌词(KTV 模式),支持逐字渐变高亮', '优化:歌词头部元数据(作词/作曲/编曲等)自动识别展示'] },\n { v: '1.4.4', date: '2026-07-19', items: ['新增:沉浸环绕声(sky)支持子类型 c51 / ste / aac', '优化:兼容网易云逐字歌词(YRC)'] },\n { v: '1.4.3', date: '2026-07-13', items: ['新增:歌手解析 Tab,支持热门 / 全部歌曲', '优化:更新日志改为独立页面'] },\n { v: '1.4.2', date: '2026-07-13', items: ['新增:8 种主题颜色,应用到全站强调色', '新增:独立「歌词」分类设置', '优化:榜单改为响应式卡片网格'] },\n { v: '1.4.1', date: '2026-07-05', items: ['新增:GitHub Issues 同步页', '新增:API 请求失败通知'] },\n { v: '1.4.0', date: '2026-07-02', items: ['重构:设置 / 统计由右侧 Drawer 改为独立页面'] },\n { v: '1.3.9', date: '2026-06-21', items: ['重构:移除 APlayer,自研全新 AudioPlayer', '优化:LRC 歌词毫秒精度高亮、点击歌词行跳转'] },\n { v: '1.3.8', date: '2026-06-20', items: ['新增:单曲信息下方评论区,支持分页加载', '优化:评论显示 VIP / SVIP / 音乐包标识、IP 归属地'] },\n { v: '1.3.6', date: '2026-05-24', items: ['新增:所有官方榜单全量支持', '新增:歌单 / 专辑批量下载本页'] },\n { v: '1.2.0', date: '2026-03-29', items: ['修复部分歌曲解析失败的问题', '优化界面交互体验'] }\n ];\n\n function renderChangelog() {\n $('#changelog-body').innerHTML = CHANGELOG.map(function (v) {\n return '
' +\n '
v' + v.v + '' +\n '' + v.date + '
' +\n '
    ' + v.items.map(function (i) {\n return '
  • ' + escapeHtml(i) + '
  • ';\n }).join('') + '
';\n }).join('');\n }\n function openChangelog() { renderChangelog(); openModal('changelog-modal'); }\n $('#btn-changelog').addEventListener('click', openChangelog);\n $('#changelog-close').addEventListener('click', function () { closeModal('changelog-modal'); });\n $('#changelog-modal').addEventListener('click', function (e) {\n if (e.target === this) closeModal('changelog-modal');\n });\n\n /* ================= 页面加载 ================= */\n function __removePageLoading() {\n setTimeout(function () {\n var el = $('#page-loading');\n if (el) el.remove();\n }, 300);\n }\n if (document.readyState === 'complete') __removePageLoading();\n else window.addEventListener('load', __removePageLoading);\n\n /* ================= Toast ================= */\n \n\n /* ================= 深色模式(顶部按钮) ================= */\n $('#theme-toggle').addEventListener('click', function () {\n store.settings.themeMode = document.documentElement.classList.contains('dark') ? 'light' : 'dark';\n renderSettingsUI();\n applyTheme();\n saveSettings();\n });\n\n /* ================= 解析账号栏 ================= */\n var _acctGen = 0; // 账号栏代次令牌——连点刷新/快速切账号时迟到响应不再覆盖新状态\n function renderAccountBar() {\n // 个人账号时携带本机保存的个人 Cookie(原实现只发 account:user,\n // 后端拿不到个人凭据,永远显示\"未登录\")\n var gen = ++_acctGen;\n apiPost('/account/vip', {\n account: store.parseAccount,\n user_cookie: store.parseAccount === 'user' ? store.personal.cookie : ''\n })\n .then(function (data) {\n if (gen !== _acctGen) return; // 已有新一轮刷新,丢弃迟到响应\n if (data.status !== 200) throw new Error(data.message || '获取账号信息失败');\n var d = data.data || {};\n var badge = $('#account-vip-badge');\n var isUser = d.account === 'user';\n var label = (isUser ? '个人账号' : '全局账号') + ' · ' + (d.vip_name || '未知');\n badge.textContent = label;\n if (isUser) {\n badge.style.borderColor = 'var(--color-warning)';\n badge.style.color = 'var(--color-warning)';\n badge.style.background = 'rgba(250,173,20,0.12)';\n } else {\n badge.style.borderColor = 'var(--color-primary)';\n badge.style.color = 'var(--color-primary)';\n badge.style.background = 'var(--color-primary-bg)';\n }\n // 可解析音质列表:优先使用接口实测结果\n var quals = [];\n if (d.levels_ok && d.levels_ok.length) {\n store.levelsOk = d.levels_ok;\n quals = d.levels_ok.map(function (lv) { return [lv, levelName(lv)]; });\n } else {\n store.levelsOk = [];\n quals = VIP_QUALITIES[d.vip_type] || VIP_QUALITIES[0];\n }\n $('#account-qualities').textContent = '可解析:' + quals.map(function (q) { return q[1]; }).join('、');\n // 提示\n var note = $('#account-note');\n if (isUser && !d.logged_in) {\n note.innerHTML = '⚠️ 个人账号未登录,当前仍使用全局账号解析。可在「个人歌单」扫码登录你自己的账号。';\n } else if (isUser) {\n note.innerHTML = '💡 当前使用个人账号解析与下载(' + escapeHtml(d.nickname || '') + ' · ' + escapeHtml(d.vip_name || '') + ')。可在「个人歌单」随时切换回全局账号。';\n } else if (!d.logged_in) {\n note.innerHTML = '💡 小提示:可在「个人歌单」登录你自己的 SVIP 网易云音乐账号,并切换为个人账号解析,即可下载/试听更高音质。' +\n (d.note ? '
⚠️ ' + escapeHtml(d.note) +\n ';当前检测为「' + escapeHtml(d.vip_name || '普通用户') + '」。可在「管理员设置」重新扫码登录全局账号。'\n : '
⚠️ 全局 Cookie 未关联有效账号信息,可在「管理员设置」重新扫码登录。');\n } else {\n note.innerHTML = '💡 小提示:可在「个人歌单」登录你自己的 SVIP 网易云音乐账号,并切换为个人账号解析,即可下载/试听更高音质。';\n }\n })\n .catch(function (err) {\n if (gen !== _acctGen) return;\n $('#account-vip-badge').textContent = '获取失败';\n // 探测失败清空 levelsOk——避免 auto 音质阶梯继续用\n // 旧账号(全局↔个人切换窗口)的能力列表逐级白试\n store.levelsOk = [];\n toast(err.message || '获取账号信息失败', 'error');\n });\n }\n $('#account-refresh').addEventListener('click', renderAccountBar);\n\n /* ================= Tab 切换 ================= */\n \n\n function switchTab(name) {\n store.currentTab = name;\n notify();\n // 切页签(含键盘回车激活,不产生 click)时关掉字号弹层,\n // 否则 fs-pop-open 卡在 html 上,排队/任务浮窗在其他页签一直隐藏\n if (typeof setLyricFsPop === 'function') setLyricFsPop(false);\n \n \n setTimeout(function () {\n var input = {\n search: '#search-input',\n song: '#song-input',\n playlist: '#playlist-input',\n album: '#album-input',\n artist: '#artist-input',\n admin: '#admin-password'\n }[name];\n if (input) {\n var el = $(input);\n if (el && !el.value) el.focus();\n }\n }, 60);\n // 进入榜单 Tab 时按需加载\n if (name === 'toplist' && !store.toplistLoaded) loadToplists();\n // 进入管理员设置:未验证则停留在密码门禁\n if (name === 'admin' && !store.adminAuthed) {\n $('#admin-gate').hidden = false;\n $('#admin-content').hidden = true;\n }\n // 进入个人歌单:检查登录状态\n if (name === 'personal') personalCheckLogin();\n // 进入全局账号歌单:检查登录状态\n if (name === 'global') globalCheckLogin();\n // 进入播客:首次加载热门播客\n if (name === 'podcast' && !store.podcast.hotLoaded) loadPodcastHot();\n // 进入关于网站:渲染更新日志\n if (name === 'about' && !$('#about-changelog').innerHTML) renderAboutChangelog();\n // 进入个人中心:需登录\n if (name === 'usercenter' && window.renderSITEUserCenter) window.renderSITEUserCenter();\n // 进入管理后台:权限门由 site_auth.js 的 uaShowGate 处理\n //(原这里调用不存在的 renderUserAdmin(),浏览器抛 ReferenceError)\n if (name === 'useradmin' && window.renderSITEUserCenter) window.renderSITEUserCenter();\n }\n\n $('#brand-home').addEventListener('click', function () {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n switchTab('search');\n });\n\n /* ================= 工具函数 ================= */\n function extractId(text) {\n text = (text || '').trim();\n if (!text) return '';\n if (text.indexOf('163cn.tv') !== -1) return text;\n var m = text.match(/[?&]id=(\\d+)/);\n if (m) return m[1];\n var n = text.match(/\\b\\d{4,}\\b/);\n if (n) return n[0];\n return text;\n }\n\n function escapeHtml(str) {\n return String(str == null ? '' : str)\n .replace(/&/g, '&').replace(//g, '>')\n .replace(/\"/g, '"').replace(/'/g, ''');\n }\n\n function fmtTime(sec) {\n if (isNaN(sec) || sec < 0) sec = 0;\n var m = Math.floor(sec / 60);\n var s = Math.floor(sec % 60);\n return (m < 10 ? '0' : '') + m + ':' + (s < 10 ? '0' : '') + s;\n }\n\n function fmtCount(n) {\n n = n || 0;\n if (n >= 1e8) return (n / 1e8).toFixed(1) + '亿';\n if (n >= 1e4) return (n / 1e4).toFixed(1) + '万';\n return String(n);\n }\n\n function fmtRelative(ts) {\n if (!ts) return '';\n var diff = Math.floor(Date.now() / 1000 - ts / 1000);\n if (diff < 60) return '刚刚';\n if (diff < 3600) return Math.floor(diff / 60) + ' 分钟前';\n if (diff < 86400) return Math.floor(diff / 3600) + ' 小时前';\n if (diff < 86400 * 30) return Math.floor(diff / 86400) + ' 天前';\n var d = new Date(ts);\n return d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0') + '-' +\n String(d.getDate()).padStart(2, '0');\n }\n\n function levelName(level) {\n if (level === 'auto') return '最高音质(自动)';\n var map = {\n standard: '标准音质', exhigh: '极高音质', lossless: '无损音质',\n hires: 'Hi-Res音质', sky: '沉浸环绕声', jyeffect: '高清环绕声',\n jymaster: '超清母带', dolby: '杜比全景声'\n };\n return map[level] || level;\n }\n\n function apiPost(url, params) {\n var body = Object.keys(params).map(function (k) {\n return encodeURIComponent(k) + '=' + encodeURIComponent(params[k] == null ? '' : params[k]);\n }).join('&');\n var attempt = function () {\n // 请求超时:常规 15 秒;歌单/专辑/歌手/播客解析这类重端点放宽到 45 秒\n // (大歌单服务端处理较久);AbortController 老内核缺失时优雅降级为无超时\n var heavy = /\\/(playlist|album|artist_songs|podcast\\/parse)$/.test(url);\n var ctl = (typeof AbortController !== 'undefined') ? new AbortController() : null;\n var timer = null;\n if (ctl) timer = setTimeout(function () { try { ctl.abort(); } catch (e) {} }, heavy ? 45000 : 15000);\n return fetch(url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' },\n body: body,\n signal: ctl ? ctl.signal : undefined\n }).then(function (r) {\n // 超时计时器在\"响应正文读完\"之后再清除\n //(原实现在 r.json() 之前 clear,正文读取阶段失去超时保护)\n return r.json().catch(function () { throw new Error('服务响应异常'); })\n .then(function (data) { if (timer) clearTimeout(timer); return data; },\n function (err) { if (timer) clearTimeout(timer); throw err; });\n }, function (err) {\n if (timer) clearTimeout(timer);\n throw err;\n }).then(function (data) {\n // 统一处理强制登录:未登录 / 次数耗尽时弹出登录框\n if (data && data.status === 401 && (data.error_code === 'unauthorized' || data.error_code === 'expired')) {\n if (url.indexOf('/auth/') !== 0) {\n safeAuthExpired(data.message || '请先登录', data.error_code === 'expired');\n }\n }\n return data;\n });\n };\n // 网络层失败自动重试 1 次(丢包/断流/超时):\n // 仅限幂等查询端点——下载提交/任务操作/评论/收藏/Cookie/扫码/登录一律不重试,\n // 防止写操作重复执行;服务端有明确响应(4xx/5xx)不重试。\n var retriable = url.indexOf('download') === -1\n && url.indexOf('/auth/') !== 0\n && url.indexOf('/api/task') === -1\n && url.indexOf('/user/') === -1\n && url.indexOf('/comments') === -1;\n return attempt().catch(function (err) {\n var networkLevel = err && (err.name === 'TypeError' || err.name === 'AbortError' ||\n err.message === '服务响应异常');\n if (retriable && networkLevel) {\n return new Promise(function (res) { setTimeout(res, 700); }).then(attempt);\n }\n throw err;\n });\n }\n\n /* 登录前置检查:未登录时弹窗提示并打开登录框(状态由 site_auth.js 同步) */\n function requireLogin() {\n if (window.SITE_LOGGED_IN) return true;\n if (window.handleAuthExpired) {\n window.handleAuthExpired('解析功能需要登录后才能使用', false);\n } else {\n toast('解析功能需要登录后才能使用', 'warning');\n }\n return false;\n }\n\n function setBtnLoading(btn, loading, loadingText?: string) {\n if (!btn) return;\n if (loading) {\n // 重入保护——已在加载中不覆盖原始标签(重复提交后原标签丢失)\n if (!btn.dataset.originText) btn.dataset.originText = btn.textContent;\n btn.dataset.loadingCount = String((parseInt(btn.dataset.loadingCount, 10) || 0) + 1);\n btn.disabled = true;\n btn.innerHTML = ' ' + escapeHtml(loadingText || '处理中...');\n } else {\n var n = (parseInt(btn.dataset.loadingCount, 10) || 1) - 1;\n if (n > 0) { btn.dataset.loadingCount = String(n); return; } // 还有在途请求,保持加载态\n btn.disabled = false;\n delete btn.dataset.loadingCount;\n if (btn.dataset.originText) {\n btn.textContent = btn.dataset.originText;\n delete btn.dataset.originText;\n }\n }\n }\n\n /* ================= 解析历史 ================= */\n var HISTORY_KEY = 'netease_parse_history';\n function getHistory() {\n // 结构校验——null/对象/坏成员一律回退为空数组,\n // 损坏历史不再中断页面初始化或播放器更新\n var raw = null;\n try { raw = JSON.parse(localStorage.getItem(HISTORY_KEY) || '[]'); } catch (e) { return []; }\n if (!Array.isArray(raw)) return [];\n return raw.filter(function (h) {\n return h && typeof h === 'object' && h.id != null && typeof h.name !== 'undefined';\n }).map(function (h) {\n return { id: String(h.id), name: String(h.name == null ? h.id : h.name), t: Number(h.t) || 0 };\n });\n }\n function addHistory(id, name) {\n var list = getHistory();\n list = list.filter(function (h) { return String(h.id) !== String(id); });\n list.unshift({ id: String(id), name: name || String(id), t: Date.now() });\n if (list.length > 8) list.length = 8;\n try { localStorage.setItem(HISTORY_KEY, JSON.stringify(list)); } catch (e) {}\n renderHistory();\n }\n function renderHistory() {\n var list = getHistory();\n var row = $('#history-row');\n var box = $('#history-list');\n if (!list.length) { row.hidden = true; return; }\n row.hidden = false;\n box.innerHTML = list.map(function (h) {\n return '' +\n '' + escapeHtml(h.name) + '' +\n '×';\n }).join(' ');\n }\n $('#history-list').addEventListener('click', function (e) {\n var close = e.target.closest('.tag-close');\n if (close) {\n var id = close.getAttribute('data-close');\n var list = getHistory().filter(function (h) { return String(h.id) !== id; });\n try { localStorage.setItem(HISTORY_KEY, JSON.stringify(list)); } catch (err) {}\n renderHistory();\n return;\n }\n var tag = e.target.closest('.tag');\n if (tag) {\n $('#song-input').value = tag.getAttribute('data-id');\n switchTab('song');\n parseSong();\n }\n });\n renderHistory();\n\n /* ================= 搜索 ================= */\n var _searchGen = 0;\n function doSearch() {\n if (!requireLogin()) return;\n var keyword = $('#search-input').value.trim();\n if (!keyword) { toast('请输入搜索关键词', 'warning'); $('#search-input').focus(); return; }\n var btn = $('#search-btn');\n var gen = ++_searchGen; // 代次守卫——回车入口绕过按钮禁用,迟到响应不得覆盖新结果\n setBtnLoading(btn, true, '搜索中...');\n apiPost('/search', {\n keyword: keyword,\n limit: $('#search-limit').value,\n type: $('#search-type').value\n }).then(function (data) {\n if (gen !== _searchGen) return; // 迟到响应丢弃\n if (data.status !== 200) throw new Error(data.message || '搜索失败');\n renderSearchList(data.data || []);\n }).catch(function (err) {\n if (gen !== _searchGen) return;\n toast(err.message || '搜索失败,请重试', 'error');\n }).finally(function () {\n // setBtnLoading 是重入计数器——Enter 连发时两次\n // 调用各自 +1,finally 必须无条件配对复位,否则旧代次被 gen 拦下后\n // 计数永远无法归零、按钮永久卡死;代次条件只保留在 then/catch 的状态写入\n setBtnLoading(btn, false);\n });\n }\n\n function renderSearchList(list) {\n var box = $('#search-list');\n var result = $('#search-result');\n if (!list || !list.length) {\n result.hidden = false;\n $('#search-count').textContent = '共 0 条';\n box.innerHTML = '
🎵
未找到相关内容
';\n return;\n }\n $('#search-count').textContent = '共 ' + list.length + ' 条';\n box.innerHTML = list.map(function (item) {\n var html = '';\n if (item.type === 'song') {\n html = '
' +\n '\"\"' +\n '
' +\n '
' + escapeHtml(item.name) +\n '' + escapeHtml(item.album || '') + '
' +\n '
' + escapeHtml(item.artists || '') + '
' +\n '
' +\n '
' +\n '' +\n '' +\n '
';\n } else if (item.type === 'playlist') {\n html = '
' +\n '\"\"' +\n '
' +\n '
' + escapeHtml(item.name) + '歌单
' +\n '
by ' + escapeHtml(item.creator || '未知') + ' · ' + fmtCount(item.trackCount) + ' 首
' +\n '
' +\n '
';\n } else if (item.type === 'album') {\n html = '
' +\n '\"\"' +\n '
' +\n '
' + escapeHtml(item.name) + '专辑
' +\n '
' + escapeHtml(item.artists || '') + '
' +\n '
' +\n '
';\n } else if (item.type === 'artist') {\n html = '
' +\n '\"\"' +\n '
' +\n '
' + escapeHtml(item.name) + '歌手
' +\n '
' + escapeHtml(item.alias || '') + '
' +\n '
' +\n '
';\n }\n return html;\n }).join('');\n result.hidden = false;\n }\n\n $('#search-btn').addEventListener('click', doSearch);\n $('#search-input').addEventListener('keydown', function (e) { if (e.key === 'Enter') doSearch(); });\n\n /* ================= 单曲解析 ================= */\n function requestSong(params) {\n // 附带解析账号;个人账号失效时自动回退全局账号\n params.account = store.parseAccount;\n if (store.parseAccount === 'user') params.user_cookie = store.personal.cookie;\n return apiPost('/song', params).then(function (data) {\n if (data.status === 401 && store.parseAccount === 'user') {\n store.parseAccount = 'admin';\n try { localStorage.setItem('netease_parse_account', 'admin'); } catch (e) {}\n renderAccountBar();\n renderPersonalToggle();\n toast('个人账号未登录或已失效,已自动切换为全局账号解析', 'warning');\n params.account = 'admin';\n return apiPost('/song', params);\n }\n return data;\n });\n }\n\n function apiResolveLevel(idInput) {\n // 'auto':按账号实测可解析列表从高到低尝试,返回首个可解析的音质\n var lvl = $('#global-level').value;\n if (lvl !== 'auto') return Promise.resolve(lvl);\n var ladder = store.levelsOk && store.levelsOk.length ? store.levelsOk : AUTO_LADDER;\n var idx = 0;\n return new Promise(function (resolve) {\n (function tryNext() {\n if (idx >= ladder.length) { resolve('standard'); return; }\n requestSong({ url: idInput, level: ladder[idx], type: 'url' })\n .then(function (d) {\n // 返回的音质必须与请求一致才算真正解析成功(否则视为降级,继续尝试)\n if (d.status === 200 && d.data && d.data.url && d.data.level === ladder[idx]) {\n resolve(ladder[idx]);\n } else { idx++; tryNext(); }\n })\n .catch(function () { idx++; tryNext(); });\n })();\n });\n }\n\n var _parseGen = 0; // 单曲解析代次令牌(家族补漏——回车/搜索行/历史标签\n // 三个入口绕过按钮禁用,连点两首歌时迟到响应覆盖新结果)\n function parseSong() {\n if (!requireLogin()) return;\n var raw = $('#song-input').value.trim();\n if (!raw) { toast('请输入歌曲ID或网易云音乐链接', 'warning'); $('#song-input').focus(); return; }\n if (!cookieGate()) return;\n var btn = $('#parse-btn');\n var gen = ++_parseGen;\n setBtnLoading(btn, true, '解析中...');\n // 新解析一旦提交即收起上一首的结果——但 #player/#lyric-panel/\n // #comment-panel 都嵌套在 #song-result 卡片内部,整卡隐藏会把正在播放的\n // 旧歌播放器条一起藏掉(失败路径音频\"隐身\"继续播)。改为只藏 .song-detail\n // 信息块(旧歌封面/名称/下载按钮),播放器照常可见可操作,歌词/评论照旧收起\n $('#song-result .song-detail').hidden = true;\n $('#lyric-panel').hidden = true;\n $('#comment-panel').hidden = true;\n store.lyrics = [];\n apiResolveLevel(raw)\n .then(function (level) {\n return requestSong({ url: raw, level: level, type: 'json' });\n })\n .then(function (data) {\n if (gen !== _parseGen) return; // 已有更新的解析,丢弃迟到响应\n if (data.status !== 200) throw new Error((data.data && data.data.msg) || data.message || '解析失败');\n renderSongResult(data.data);\n })\n .catch(function (err) {\n if (gen !== _parseGen) return;\n toast(err.message || '解析失败,请检查歌曲ID或链接', 'error');\n })\n .then(function () { setBtnLoading(btn, false); },\n function () { setBtnLoading(btn, false); });\n }\n\n function parseSongById(id, name) {\n $('#song-input').value = id;\n switchTab('song');\n $('#song-input').focus();\n if (name) toast('正在解析:' + name, 'info');\n parseSong();\n }\n\n function renderSongResult(d) {\n store.currentSong = d;\n store.global.playQueue = []; // 单曲解析时清空播放歌单队列,避免串歌\n store.global.playQueueIndex = 0;\n store.lyrics = [];\n store.rawLyric = null;\n store.rawTlyric = null;\n store.commentPage = 1;\n store.commentTotal = 0;\n store.commentReply = null; // 切歌清掉旧评论回复对象(防跨歌错配)\n $('#detail-cover').src = d.pic || '';\n $('#detail-name').textContent = d.name || '未知歌曲';\n $('#detail-artist').textContent = d.ar_name || '未知歌手';\n $('#detail-album').textContent = d.al_name || '未知专辑';\n $('#detail-level').textContent = '音质:' + levelName(d.level);\n $('#detail-size').textContent = d.size || '大小未知';\n\n var tip = $('#detail-tip');\n if (!d.url) {\n tip.hidden = false;\n tip.textContent = '⚠️ 当前音质无法获取下载链接,可能是版权限制或音质不支持,请尝试其他音质。';\n } else {\n tip.hidden = true;\n }\n\n $('#song-result').hidden = false;\n $('#song-result .song-detail').hidden = false; // 恢复提交时收起的信息块\n window.scrollTo({ top: $('#song-result').offsetTop - 80, behavior: 'smooth' });\n\n // 重置歌词偏移校准\n store.lyricOffset = 0;\n $('#lyric-offset-label').textContent = '偏移 0.00s';\n\n addHistory(d.id, d.name);\n\n // 歌词\n initLyrics(d.lyric || '', d.tlyric || '', d.yrc || '');\n\n // 播放器\n if (d.url) {\n initPlayer(d.url, d.name || '', d.ar_name || '', d.pic || '');\n } else {\n stopPlayer();\n }\n\n // 评论区\n if (store.settings.showComments) {\n $('#comment-panel').hidden = false;\n updateCommentComposer();\n loadComments(d.id, 1, true);\n } else {\n $('#comment-panel').hidden = true;\n }\n }\n\n $('#parse-btn').addEventListener('click', parseSong);\n $('#song-input').addEventListener('keydown', function (e) { if (e.key === 'Enter') parseSong(); });\n\n /* ================= 歌词处理 ================= */\n function lrctrim(lyrics) {\n var lines = String(lyrics || '').split('\\n');\n var data = [];\n lines.forEach(function (line, index) {\n // 分钟放宽到 3 位(同型漏网——后端 SRT 当年修了,\n // 前端没修:超 100 分钟曲目第 100 分钟起歌词行全部丢失)\n var matches = line.match(/\\[(\\d{1,3}):(\\d{1,2}[.:]?\\d*)]/);\n if (matches) {\n var minutes = parseInt(matches[1], 10);\n var seconds = parseFloat(matches[2].replace(':', '.')) || 0;\n var timestamp = minutes * 60 + seconds;\n var text = line.replace(/\\[\\d{1,3}:\\d{1,2}[.:]?\\d*]/g, '').trim();\n text = text.replace(/\\s\\s+/g, ' ');\n if (text) data.push({ time: timestamp, text: text, index: index });\n }\n });\n data.sort(function (a, b) { return a.time - b.time; });\n return data;\n }\n\n function mergeTranslation(lyric, tlyric) {\n var trans = lrctrim(tlyric);\n if (!trans.length) return lyric;\n // 精确匹配优先,其次取时间最近者;每条译文只配一行原文,\n // 不再被\"第一个邻近\"遮蔽精确配对或重复使用\n var usedTrans = {};\n return lyric.map(function (l) {\n var best = null, bestDt = Infinity, bestIdx = -1;\n for (var i = 0; i < trans.length; i++) {\n if (usedTrans[i]) continue;\n var dt = Math.abs(trans[i].time - l.time);\n if (dt > 0.5) {\n if (trans[i].time > l.time + 0.5) break;\n continue;\n }\n if (dt < bestDt - 1e-9) { bestDt = dt; best = trans[i]; bestIdx = i; }\n if (dt === 0) break; // 精确命中立即采用\n }\n if (best && best.text) {\n usedTrans[bestIdx] = true;\n // 保留纯原文——渲染层还原原文时不再依赖对拼接串做正则截断\n //(原文/译文本身含 \" (翻译:\" 时贪婪正则会吃掉原文尾部)\n var merged = { time: l.time, end: l.end, words: l.words, trans: best.text, index: l.index, orig: l.text };\n if (store.settings.lyric2line) {\n merged.text = l.text + '\\n' + best.text;\n } else {\n merged.text = l.text + ' (翻译:' + best.text + ')';\n }\n return merged;\n }\n return l;\n });\n }\n\n // 解析网易云 YRC 逐字歌词:行头 [startMs,durMs],每字 (startMs,durMs,0)字\n // 字与字之间的正文允许包含半角括号——只把\"合法时间标记\"当分隔符,\n // 不再把 (world) 这类正文当标记吃掉\n function parseYrc(text) {\n var out = [];\n String(text || '').split('\\n').forEach(function (line) {\n var m = line.match(/^\\[(\\d+),(\\d+)\\]/);\n if (!m) return;\n var start = parseInt(m[1], 10) / 1000, dur = parseInt(m[2], 10) / 1000;\n if (dur <= 0) return; // [0,0] 元数据行\n var rest = line.slice(m[0].length);\n var marks = [];\n var re = /\\((\\d+),(\\d+)(?:,\\d+)?\\)/g, w;\n while ((w = re.exec(rest)) !== null) {\n marks.push({ s: parseInt(w[1], 10) / 1000, d: parseInt(w[2], 10) / 1000, start: w.index, end: w.index + w[0].length });\n }\n var words = [], chars = '';\n for (var i = 0; i < marks.length; i++) {\n // 字的正文 = 本标记之后到下一标记之前(保留其中的一切字符,含括号)\n var segEnd = (i + 1 < marks.length) ? marks[i + 1].start : rest.length;\n var wordText = rest.slice(marks[i].end, segEnd);\n if (!wordText) continue;\n words.push({ c: wordText, s: marks[i].s, d: marks[i].d });\n chars += wordText;\n }\n chars = chars.replace(/\\s\\s+/g, ' ').trim();\n if (!words.length || !chars) return;\n out.push({ time: start, end: start + dur, text: chars, words: words, index: out.length });\n });\n // YRC 时间轴排序,覆盖已排序 LRC 前先规范时间轴\n out.sort(function (a, b) { return a.time - b.time; });\n out.forEach(function (l, i) { l.index = i; });\n return out;\n }\n\n // 由原始歌词构建行数据:LRC 为底,YRC 逐字轴覆盖过半时替换,\n // 未被覆盖的 LRC 行保留(不再整体丢弃剩余歌词行),再合并翻译\n function buildLyricLines() {\n var lines = lrctrim(store.rawLyric || '');\n var wordLines = parseYrc(store.rawYrc || '');\n if (wordLines.length && wordLines.length >= Math.max(1, Math.ceil(lines.length * 0.5))) {\n // 把 LRC 里没有被 YRC 覆盖(±1s 内无对应行)的行补回来\n var merged = wordLines.slice();\n lines.forEach(function (l) {\n var covered = wordLines.some(function (w) { return Math.abs(w.time - l.time) <= 1; });\n if (!covered) merged.push(l);\n });\n merged.sort(function (a, b) { return a.time - b.time; });\n merged.forEach(function (l, i) { l.index = i; });\n lines = merged;\n }\n if (store.rawTlyric) lines = mergeTranslation(lines, store.rawTlyric);\n return lines;\n }\n\n function initLyrics(lrc, tlrc, yrc) {\n store.rawLyric = lrc || '';\n store.rawTlyric = tlrc || '';\n store.rawYrc = yrc || '';\n store.lyrics = buildLyricLines();\n renderLyrics();\n var panel = $('#lyric-panel');\n panel.hidden = false;\n if (!store.lyrics.length) {\n $('#lyric-box').innerHTML = '
暂无歌词
';\n }\n }\n\n function renderLyrics() {\n var box = $('#lyric-box');\n if (!store.lyrics.length) {\n box.innerHTML = '
暂无歌词
';\n return;\n }\n var twoLine = store.settings.lyric2line;\n box.innerHTML = store.lyrics.map(function (l, i) {\n var text = l.text || '♪';\n var cls = store.settings.ktv ? 'lyric-line ktv' : 'lyric-line';\n var inner;\n if (store.settings.ktv && l.words && l.words.length) {\n // 逐字行:每字一个 span,由 rAF 按真实字级时间轴推进高亮\n cls += ' kw-line';\n inner = l.words.map(function (w) { return '' + escapeHtml(w.c) + ''; }).join('');\n if (twoLine && l.trans) inner += '
' + escapeHtml(l.trans) + '';\n else if (l.trans) inner += ' (翻译:' + escapeHtml(l.trans) + ')';\n } else {\n // 译文统一走 .ktr 弱化样式(与 KTV 分支同构,所有模式层级一致)。\n // 数据层把译文并进了 text(双行\"原文\\n译文\"/单行\"原文 (翻译:…)\"),\n // 优先用 mergeTranslation 保留的纯原文 orig,避免正则截断的边角误伤\n if (l.trans) {\n var base = l.orig || text;\n var orig = twoLine ? base.split('\\n')[0] : base.replace(/ \\(翻译:.*\\)$/, '');\n inner = escapeHtml(orig);\n if (twoLine) inner += '
' + escapeHtml(l.trans) + '';\n else inner += ' (翻译:' + escapeHtml(l.trans) + ')';\n } else {\n inner = twoLine ? escapeHtml(text).replace(/\\n/g, '
') : escapeHtml(text);\n }\n }\n return '
' + inner + '
';\n }).join('');\n // 新歌歌词从顶部开始,避免残留上一首歌的滚动位置\n box.scrollTop = 0;\n // 重绘后行元素已重建,KTV 填充缓存与行高亮状态一并重置\n // 行元素随重绘缓存——applyActiveLyric 由 rAF 以 60fps 调用,\n // 原实现每帧 querySelectorAll 全部歌词行(百行 × 60fps),低端机无谓 CPU\n store.lastActiveLine = -1;\n store.ktvFillIdx = -1;\n store.ktvWordEls = null;\n store.ktvLineEls = Array.prototype.slice.call(box.children);\n }\n\n $('#lyric-box').addEventListener('click', function (e) {\n var line = e.target.closest('.lyric-line');\n if (!line) return;\n var i = parseInt(line.getAttribute('data-i'), 10);\n var audio = $('#player audio');\n if (audio && audio.src && store.lyrics[i]) {\n // 点击定位与高亮使用互逆变换——高亮是 currentTime+offset,\n // 定位就必须 currentTime = 行时间 - offset(原实现同向相加,点哪句跳错句)\n audio.currentTime = Math.max(0, store.lyrics[i].time - store.lyricOffset);\n // 裸 play() 的 Promise 拒绝会喂错误上报(token 过期后点歌词必现)\n if (audio.paused) audio.play().catch(function () {});\n }\n });\n\n // 歌词偏移校准\n function applyLyricOffset(delta) {\n store.lyricOffset = Math.max(-30, Math.min(30, Math.round((store.lyricOffset + delta) * 100) / 100));\n $('#lyric-offset-label').textContent = '偏移 ' + (store.lyricOffset > 0 ? '+' : '') + store.lyricOffset.toFixed(2) + 's';\n toast('歌词偏移:' + (store.lyricOffset > 0 ? '+' : '') + store.lyricOffset.toFixed(2) + ' 秒', 'info');\n var audio = $('#player audio');\n if (audio && !audio.paused) updateActiveLyric(audio.currentTime);\n }\n $('#lyric-delay').addEventListener('click', function () { applyLyricOffset(0.25); });\n $('#lyric-advance').addEventListener('click', function () { applyLyricOffset(-0.25); });\n\n // 歌词字号调节(A± 弹层):0.7–1.6 倍、5% 步进,立即生效并持久化;\n // 缩放通过 CSS 变量 --lyric-fs 挂在 #lyric-box 上,歌词重绘(切歌/切开关)后依然有效\n var LYRIC_FONT_MIN = 0.7, LYRIC_FONT_MAX = 1.6, LYRIC_FONT_STEP = 0.05;\n function clampLyricFont(v) {\n if (typeof v !== 'number' || !isFinite(v)) return 1;\n return Math.max(LYRIC_FONT_MIN, Math.min(LYRIC_FONT_MAX, Math.round(v * 20) / 20));\n }\n function applyLyricFont() {\n store.settings.lyricFont = clampLyricFont(store.settings.lyricFont);\n $('#lyric-box').style.setProperty('--lyric-fs', String(store.settings.lyricFont));\n $('#lyric-fs-val').textContent = Math.round(store.settings.lyricFont * 100) + '%';\n $('#lyric-fs-dec').disabled = store.settings.lyricFont <= LYRIC_FONT_MIN;\n $('#lyric-fs-inc').disabled = store.settings.lyricFont >= LYRIC_FONT_MAX;\n }\n function lyricFsPopOpen() { return !$('#lyric-fs-pop').hidden; }\n function setLyricFsPop(open) {\n $('#lyric-fs-pop').hidden = !open;\n $('#lyric-fontsize').setAttribute('aria-expanded', open ? 'true' : 'false');\n // 弹层开着时隐藏排队/任务浮窗,贴顶场景不再被盖住\n document.documentElement.classList.toggle('fs-pop-open', open);\n if (open) applyLyricFont();\n }\n function nudgeLyricFont(dir) {\n store.settings.lyricFont = clampLyricFont(store.settings.lyricFont + dir * LYRIC_FONT_STEP);\n applyLyricFont();\n saveSettings();\n }\n $('#lyric-fontsize').addEventListener('click', function () { setLyricFsPop(lyricFsPopOpen() ? false : true); });\n $('#lyric-fs-inc').addEventListener('click', function () { nudgeLyricFont(1); });\n $('#lyric-fs-dec').addEventListener('click', function () { nudgeLyricFont(-1); });\n $('#lyric-fs-reset').addEventListener('click', function () {\n store.settings.lyricFont = 1;\n applyLyricFont();\n saveSettings();\n toast('歌词字号已恢复默认', 'info');\n });\n // 点弹层与触发按钮以外的任意位置关闭(捕获期,不干扰歌词行点击等其他处理器)\n document.addEventListener('click', function (e) {\n if (!lyricFsPopOpen()) return;\n if (e.target.closest('#lyric-fs-pop') || e.target.closest('#lyric-fontsize')) return;\n setLyricFsPop(false);\n }, true);\n // 捕获期监听(先于冒泡处理器执行)——抽屉/模态开着时让上层\n // 先消费 Escape 并跳过,避免同一次按键把键盘焦点偷换到遮罩后面的 A± 按钮\n document.addEventListener('keydown', function (e) {\n if (e.key === 'Escape' && lyricFsPopOpen()) {\n if (document.querySelector('.drawer.show, .modal-mask.show')) return;\n setLyricFsPop(false);\n $('#lyric-fontsize').focus();\n }\n }, true);\n\n function findActiveLyric(t) {\n var active = -1;\n for (var i = 0; i < store.lyrics.length; i++) {\n if (store.lyrics[i].time <= t + 0.2) active = i;\n else break;\n }\n return active;\n }\n\n // KTV 填充:有逐字轴的行按字推进(唱到哪个字填到哪个字);\n // 无 YRC 的行不再做仿逐字整行渐变(owner 2026-09-22 拍板撤销),仅普通高亮,无需逐帧写 --p\n function fillKtvLine(el, idx, t) {\n var line = store.lyrics[idx];\n if (!el || !line) return;\n if (line.words && line.words.length) {\n if (store.ktvFillIdx !== idx) {\n store.ktvFillIdx = idx;\n store.ktvWordEls = el.querySelectorAll('.kw');\n }\n var spans = store.ktvWordEls;\n for (var i = 0; i < line.words.length; i++) {\n var w = line.words[i], sp = spans[i];\n if (!sp) break;\n if (t >= w.s + w.d) {\n if (!sp.classList.contains('on')) { sp.classList.add('on'); sp.classList.remove('cur'); }\n } else if (t >= w.s) {\n if (!sp.classList.contains('cur')) { sp.classList.add('cur'); sp.classList.remove('on'); }\n sp.style.setProperty('--pw', Math.min(100, (t - w.s) / w.d * 100) + '%');\n } else if (sp.classList.contains('on') || sp.classList.contains('cur')) {\n sp.classList.remove('on');\n sp.classList.remove('cur');\n }\n }\n }\n }\n\n function applyActiveLyric(active, t) {\n // 优先用缓存行(renderLyrics 时重建),缓存缺失(外部清空 lyric-box 等)才回退查询\n var lines = store.ktvLineEls && store.ktvLineEls.length ? store.ktvLineEls\n : Array.prototype.slice.call($('#lyric-box').children);\n for (var j = 0; j < lines.length; j++) {\n lines[j].classList.toggle('active', j === active);\n }\n if (active >= 0 && store.settings.ktv) fillKtvLine(lines[active], active, t);\n if (active >= 0 && active !== store.lastActiveLine) {\n store.lastActiveLine = active;\n var box = $('#lyric-box');\n var el = lines[active];\n if (el) {\n var top = el.offsetTop - box.clientHeight / 2 + el.clientHeight / 2;\n box.scrollTo({ top: Math.max(0, top), behavior: 'smooth' });\n }\n }\n }\n\n function updateActiveLyric(time) {\n var t = time + store.lyricOffset;\n applyActiveLyric(findActiveLyric(t), t);\n }\n\n // KTV 帧循环:播放中按 60fps 平滑推进填充(timeupdate 仅约 4Hz,直接驱动会显得卡顿)\n function ktvFrame() {\n if (!store.ktvRunning) return;\n var audio = $('#player audio');\n if (!audio || audio.paused) { store.ktvRunning = false; return; }\n var t = audio.currentTime + store.lyricOffset;\n applyActiveLyric(findActiveLyric(t), t);\n requestAnimationFrame(ktvFrame);\n }\n function ktvStart() {\n if (!store.ktvRunning && store.settings.ktv) {\n store.ktvRunning = true;\n requestAnimationFrame(ktvFrame);\n }\n }\n\n /* ================= 评论区(分页,10条/页) ================= */\n function loadComments(songId, page, reset) {\n if (reset) {\n page = 1;\n store.commentPage = 1;\n store.commentTotal = 0;\n }\n var offset = (page - 1) * 10;\n store._commentsLoading = true; // 防止评论开关快速切换时重复加载\n // 评论翻页代次守卫——快速连点下一页时迟到旧页响应\n // 不得把页码与内容一起回滚(只防了切歌,这里补同歌翻页)\n store._commentGen = (store._commentGen || 0) + 1;\n var gen = store._commentGen;\n apiPost('/comments', { id: songId, limit: 10, offset: offset })\n .then(function (data) {\n if (gen !== store._commentGen) return; // 迟到响应丢弃\n if (data.status !== 200) throw new Error(data.message || '获取评论失败');\n // 迟到响应不得覆盖已切歌的评论区(评论对象以 songId 为准)\n if (store.currentSong && String(store.currentSong.id) !== String(songId)) return;\n var d = data.data;\n store.commentTotal = d.total || 0;\n $('#comment-count').textContent = store.commentTotal ? ('(' + fmtCount(store.commentTotal) + ')') : '';\n\n if (page === 1) {\n var hot = d.hotComments || [];\n $('#comment-hot-title').hidden = !hot.length;\n $('#comment-hot-list').innerHTML = hot.length ? hot.map(commentHtml).join('') :\n '
暂无热门评论
';\n }\n\n var list = d.comments || [];\n $('#comment-all-list').innerHTML = list.length ? list.map(commentHtml).join('') :\n '
暂无评论
';\n\n store.commentPage = page;\n renderCommentPager();\n })\n .catch(function (err) {\n if (gen !== store._commentGen) return; // 迟到响应丢弃(与 then 同口径)\n toast(err.message || '获取评论失败', 'error');\n })\n .then(function () { if (gen === store._commentGen) store._commentsLoading = false; },\n function () { if (gen === store._commentGen) store._commentsLoading = false; });\n }\n\n function renderCommentPager() {\n var pages = Math.max(1, Math.ceil(store.commentTotal / 10));\n var cur = store.commentPage;\n $('#comment-page-info').textContent = '第 ' + cur + ' / ' + pages + ' 页';\n $('#comment-prev').disabled = cur <= 1;\n $('#comment-next').disabled = cur >= pages;\n $('#comment-pager').hidden = store.commentTotal <= 10;\n }\n\n $('#comment-prev').addEventListener('click', function () {\n if (store.currentSong && store.commentPage > 1) {\n loadComments(store.currentSong.id, store.commentPage - 1, false);\n }\n });\n $('#comment-next').addEventListener('click', function () {\n if (store.currentSong) {\n loadComments(store.currentSong.id, store.commentPage + 1, false);\n }\n });\n\n /* ================= 发布评论 / 回复评论(个人账号) ================= */\n store.commentReply = null; // {id, nickname}\n\n function updateCommentComposer() {\n var composer = $('#comment-composer');\n if (!composer) return;\n composer.hidden = !store.personal.authed;\n if (!store.personal.authed) {\n store.commentReply = null;\n $('#comment-reply-to').hidden = true;\n return;\n }\n $('#comment-input').placeholder = store.commentReply\n ? '回复 @' + store.commentReply.nickname + '...' : '说点什么吧...(140字以内)';\n }\n\n function setCommentReply(id, nickname) {\n store.commentReply = { id: id, nickname: nickname };\n $('#comment-reply-name').textContent = nickname;\n $('#comment-reply-to').hidden = false;\n updateCommentComposer();\n $('#comment-input').focus();\n }\n\n $('#comment-reply-cancel').addEventListener('click', function () {\n store.commentReply = null;\n $('#comment-reply-to').hidden = true;\n updateCommentComposer();\n });\n\n document.addEventListener('click', function (e) {\n var rb = e.target.closest('.comment-reply-btn');\n if (rb) {\n setCommentReply(rb.getAttribute('data-id'), rb.getAttribute('data-nickname'));\n }\n // 回复内容「详情」按钮:展开/收起完整内容\n var detail = e.target.closest('.cr-detail');\n if (detail) {\n var contentEl = detail.closest('.comment-reply').querySelector('.cr-content');\n if (!contentEl) return;\n if (detail.classList.contains('expanded')) {\n detail.classList.remove('expanded');\n detail.textContent = '详情';\n contentEl.textContent = contentEl.getAttribute('data-short');\n contentEl.style.whiteSpace = 'nowrap';\n contentEl.style.overflow = 'hidden';\n } else {\n detail.classList.add('expanded');\n detail.textContent = '收起';\n contentEl.textContent = contentEl.getAttribute('data-full');\n contentEl.style.whiteSpace = 'normal';\n contentEl.style.overflow = 'visible';\n contentEl.style.wordBreak = 'break-word';\n }\n }\n });\n\n $('#comment-submit').addEventListener('click', function () {\n if (!store.personal.authed || !store.personal.cookie) {\n toast('请先在「个人歌单」扫码登录你的账号后再评论', 'warning');\n switchTab('personal');\n return;\n }\n if (!store.currentSong) { toast('请先解析一首歌曲', 'warning'); return; }\n var content = $('#comment-input').value.trim();\n if (!content) { toast('评论内容不能为空', 'warning'); $('#comment-input').focus(); return; }\n if (content.length > 140) { toast('评论内容不能超过 140 字', 'warning'); return; }\n\n var btn = $('#comment-submit');\n var isReply = !!store.commentReply;\n var oldText = btn.textContent;\n btn.disabled = true;\n btn.textContent = '发布中...';\n apiPost('/user/comment', {\n song_id: store.currentSong.id,\n content: content,\n action: isReply ? 2 : 1,\n comment_id: isReply ? store.commentReply.id : '',\n user_cookie: store.personal.cookie\n })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '评论失败');\n toast(isReply ? '✅ 回复成功' : '✅ 评论成功', 'success');\n $('#comment-input').value = '';\n store.commentReply = null;\n $('#comment-reply-to').hidden = true;\n updateCommentComposer();\n loadComments(store.currentSong.id, 1, true); // 刷新评论\n })\n .catch(function (err) {\n toast(err.message || '评论失败', 'error');\n })\n .finally(function () {\n btn.disabled = false;\n btn.textContent = oldText;\n });\n });\n\n function commentHtml(c) {\n var u = c.user || {};\n var vip = '';\n if (u.vipType === 11 || u.vipType === 100) vip = '黑胶VIP';\n else if (u.vipType === 10 || u.vipType === 110) vip = '黑胶SVIP';\n else if (u.vipType === 1) vip = '音乐包';\n var location = u.location ? (' · ' + escapeHtml(u.location)) : '';\n // 被回复信息显示(昵称蓝色、内容10字内省略 + 详情按钮悬浮/点击查看完整)\n var reply = '';\n if (c.beReplied && c.beReplied.length) {\n var br = c.beReplied[0] || {};\n var rNick = br.nickname || '';\n var rContent = br.content || '';\n if (rNick || rContent) {\n var rDisplay = rNick || '已删除用户';\n var rShort = rContent.length > 10 ? rContent.slice(0, 10) + '…' : rContent;\n reply = '
' +\n '回复' +\n '@' + escapeHtml(rDisplay) + '' +\n '' + escapeHtml(rShort) + '' +\n (rContent.length > 10\n ? ''\n : '') +\n '
';\n }\n }\n // 回复按钮(个人账号登录后显示)\n var replyBtn = store.personal.authed\n ? ''\n : '';\n return '
' +\n '\"\"' +\n '
' +\n '
' +\n '' + escapeHtml(u.nickname || '匿名') + '' + vip +\n '' + fmtRelative(c.time) + location + '' +\n '
' +\n '
' + escapeHtml(c.content || '') + '
' + reply +\n '
👍 ' + fmtCount(c.likedCount) + '' +\n replyBtn + '
' +\n '
';\n }\n\n\n /* ================= 播放器 ================= */\n var playerState = {};\n\n function initPlayer(url, name, artist, cover) {\n var player = $('#player');\n player.hidden = false;\n // 与播客试听互斥——开播音乐先停播客音频(反向在 podcastRenderProgram 处理)\n try {\n var pa = $('#podcast-audio');\n if (pa && !pa.paused) pa.pause();\n } catch (e) {}\n // 关键:先停止并清空上一个音频,避免播放旧歌曲导致歌词与歌曲不对应\n var oldAudio = player.querySelector('audio');\n if (oldAudio) {\n oldAudio.pause();\n oldAudio.removeAttribute('src');\n oldAudio.load();\n }\n $('#player-cover').src = cover;\n $('#player-name').textContent = name;\n $('#player-artist').textContent = artist;\n $('#player-toggle').textContent = '▶';\n $('#player-duration').textContent = '00:00';\n $('#player-current').textContent = '00:00';\n $('#player-progress-fill').style.width = '0%';\n playerState.url = url;\n // 保留用户上一次的音量/静音选择(原实现每次切歌都重置为 0.9/取消静音)\n if (typeof playerState.volume !== 'number') { playerState.volume = 0.9; playerState.muted = false; }\n updateVolumeUI();\n updateMuteUI();\n // SMTC:系统媒体控制面板显示播放信息\n if (store.settings.smtc && 'mediaSession' in navigator && 'MediaMetadata' in window) {\n try {\n navigator.mediaSession.metadata = new MediaMetadata({\n title: name,\n artist: artist,\n album: (store.currentSong && store.currentSong.al_name) || '',\n artwork: cover ? [{ src: cover, sizes: '512x512' }] : []\n });\n // 系统媒体的 play/pause 分别对应明确的播放/暂停(toggle 不幂等,\n // 面板点\"暂停\"曾被切换成继续播放)\n navigator.mediaSession.setActionHandler('play', function () {\n var a = ensureAudio();\n if (a && a.paused) togglePlay();\n });\n navigator.mediaSession.setActionHandler('pause', function () {\n var a = ensureAudio();\n if (a && !a.paused) togglePlay();\n });\n navigator.mediaSession.setActionHandler('seekto', function (d) {\n var a = ensureAudio();\n if (a && d.seekTime != null) a.currentTime = d.seekTime;\n });\n } catch (e) {}\n } else if ('mediaSession' in navigator) {\n // 关闭 SMTC 设置时撤销既有处理器\n try {\n navigator.mediaSession.setActionHandler('play', null);\n navigator.mediaSession.setActionHandler('pause', null);\n navigator.mediaSession.setActionHandler('seekto', null);\n } catch (e) {}\n }\n $('#player').onclick = function (e) {\n if (e.target.closest('.player-ctrl') || e.target.closest('.progress') ||\n e.target.closest('.volume-btn') || e.target.closest('.volume-slider')) return;\n togglePlay();\n };\n }\n\n function stopPlayer() {\n var player = $('#player');\n player.hidden = true;\n var audio = player.querySelector('audio');\n if (audio) { audio.pause(); audio.removeAttribute('src'); audio.load(); }\n }\n\n function ensureAudio() {\n var player = $('#player');\n var audio = player.querySelector('audio');\n if (!audio) {\n audio = document.createElement('audio');\n audio.preload = 'metadata';\n player.appendChild(audio);\n\n audio.addEventListener('timeupdate', function () {\n $('#player-current').textContent = fmtTime(audio.currentTime);\n if (audio.duration) {\n $('#player-progress-fill').style.width =\n (audio.currentTime / audio.duration * 100) + '%';\n }\n updateActiveLyric(audio.currentTime);\n ktvStart(); // 兜底:中途开启 KTV 开关也能启动帧循环\n if (store.settings.progressMemory && store.currentSong) {\n try {\n var key = 'netease_progress_' + store.currentSong.id;\n var last = parseFloat(localStorage.getItem(key) || '0');\n if (Math.abs(audio.currentTime - last) > 5) {\n localStorage.setItem(key, audio.currentTime);\n // 进度键无界清理(跳过场景永不删,长期用户无限累积)\n // 超过 100 个键时清掉当前曲之外的全部(进度记忆为锦上添花)\n var pk = [];\n for (var i = 0; i < localStorage.length; i++) {\n var k = localStorage.key(i);\n if (k && k.indexOf('netease_progress_') === 0 && k !== key) pk.push(k);\n }\n if (pk.length >= 100) {\n pk.forEach(function (k2) { localStorage.removeItem(k2); });\n }\n }\n } catch (e) {}\n }\n });\n audio.addEventListener('play', function () { ktvStart(); });\n\n audio.addEventListener('loadedmetadata', function () {\n $('#player-duration').textContent = fmtTime(audio.duration);\n try {\n if ('mediaSession' in navigator) {\n navigator.mediaSession.setPositionState({\n duration: audio.duration || 0,\n playbackRate: 1,\n position: audio.currentTime || 0\n });\n }\n } catch (e) {}\n });\n audio.addEventListener('ended', function () {\n $('#player-toggle').textContent = '▶';\n $('#player-progress-fill').style.width = '0%';\n $('#player-current').textContent = '00:00';\n try { if ('mediaSession' in navigator) navigator.mediaSession.playbackState = 'none'; } catch (e) {}\n if (store.currentSong) {\n try { localStorage.removeItem('netease_progress_' + store.currentSong.id); } catch (e) {}\n }\n // 播放歌单(公开播放 API 队列)自动连播下一首\n var gq = store.global && store.global.playQueue;\n if (gq && gq.length) {\n store.global.playQueueIndex = (store.global.playQueueIndex || 0) + 1;\n if (store.global.playQueueIndex < gq.length) {\n var nx = gq[store.global.playQueueIndex];\n // 连播切歌同步 currentSong/进度键——原实现 currentSong\n // 仍是上一首,B 的播放进度会写进 A 的存储键\n store.currentSong = { id: nx.id, name: nx.name, ar_name: nx.artists || '', al_name: nx.album || '' };\n initPlayer(nx.url || '', nx.name || '', nx.artists || '', nx.picUrl || '');\n // 连播不带歌词/评论数据——清空旧歌词与评论区(原实现\n // 第二首起歌词还是上一首且 KTV 错位高亮、评论区不换)\n store.rawLyric = null;\n store.rawTlyric = null;\n store.rawYrc = null;\n store.lyrics = [];\n renderLyrics();\n $('#comment-panel').hidden = true;\n // 连播换歌同样清评论计数并重置歌词偏移——否则 A 的旧\n // commentTotal 挡住补加载(开关一扳就复活 A 的评论区),\n // A 校准过的偏移也会带进 B 造成整片高亮错位\n store.commentTotal = 0;\n store.commentPage = 1;\n $('#comment-count').textContent = '';\n $('#comment-hot-list').innerHTML = '
暂无热门评论
';\n $('#comment-all-list').innerHTML = '
暂无评论
';\n store.lyricOffset = 0;\n $('#lyric-offset-label').textContent = '偏移 0.00s';\n // 连播语义=顺序完整播放,跳过该曲的历史进度续播\n // (一次性标志,togglePlay 内消费;用户进度键保留不动)\n store._queueNoResume = true;\n toast('▶ 正在播放:' + (nx.name || ''), 'info');\n togglePlay();\n store._queueNoResume = false;\n } else {\n store.global.playQueue = [];\n store.global.playQueueIndex = 0;\n }\n }\n });\n audio.addEventListener('play', function () {\n $('#player-toggle').textContent = '⏸';\n try { if ('mediaSession' in navigator) navigator.mediaSession.playbackState = 'playing'; } catch (e) {}\n });\n audio.addEventListener('pause', function () {\n $('#player-toggle').textContent = '▶';\n try { if ('mediaSession' in navigator) navigator.mediaSession.playbackState = 'paused'; } catch (e) {}\n });\n audio.addEventListener('error', function () {\n toast('音频播放失败:可能是链接失效或该格式不支持在线播放', 'error');\n $('#player-toggle').textContent = '▶';\n });\n }\n return audio;\n }\n\n function togglePlay() {\n var audio = ensureAudio();\n var key = 'netease_progress_' + (store.currentSong ? store.currentSong.id : '');\n if (audio.paused && !audio.src) {\n audio.src = playerState.url;\n if (store.settings.progressMemory && !store._queueNoResume) {\n // 连播场景(_queueNoResume)跳过续播,从头完整播放\n try {\n var saved = parseFloat(localStorage.getItem(key));\n if (saved > 0) audio.currentTime = saved; // 续播:恢复到上次播放位置\n } catch (e) {}\n }\n audio.volume = playerState.volume;\n audio.muted = playerState.muted;\n }\n if (audio.paused) {\n audio.play().catch(function () { toast('播放失败,请稍后重试', 'error'); });\n } else {\n audio.pause();\n if (store.settings.progressMemory) {\n try { localStorage.setItem(key, audio.currentTime); } catch (e) {}\n }\n }\n }\n\n $('#player-toggle').addEventListener('click', function (e) {\n e.stopPropagation();\n togglePlay();\n });\n\n $('#player-restart').addEventListener('click', function (e) {\n e.stopPropagation();\n var audio = ensureAudio();\n if (audio.src) {\n audio.currentTime = 0;\n // 裸 play() 同样会喂 unhandledrejection 上报\n if (audio.paused) audio.play().catch(function () {});\n } else {\n togglePlay();\n }\n });\n\n $('#player-progress').addEventListener('click', function (e) {\n var rect = this.getBoundingClientRect();\n var ratio = (e.clientX - rect.left) / rect.width;\n var audio = ensureAudio();\n if (audio.src && audio.duration) {\n audio.currentTime = ratio * audio.duration;\n }\n });\n\n function updateVolumeUI() {\n $('#player-volume-fill').style.width = (playerState.volume * 100) + '%';\n }\n function updateMuteUI() {\n $('#player-mute').textContent = playerState.muted ? '🔇' : '🔊';\n var audio = $('#player audio');\n if (audio) { audio.muted = playerState.muted; audio.volume = playerState.volume; }\n }\n $('#player-volume').addEventListener('click', function (e) {\n var rect = this.getBoundingClientRect();\n playerState.volume = Math.max(0, Math.min(1, (e.clientX - rect.left) / rect.width));\n playerState.muted = false;\n updateVolumeUI();\n updateMuteUI();\n });\n $('#player-mute').addEventListener('click', function (e) {\n e.stopPropagation();\n playerState.muted = !playerState.muted;\n updateMuteUI();\n });\n\n /* ================= 下载 ================= */\n function downloadSong(id, name) {\n if (!id) { toast('无法获取音乐ID', 'error'); return; }\n if (!cookieGate()) return;\n apiResolveLevel(id)\n .then(function (level) {\n toast('正在准备下载:' + (name || id) + '(' + levelName(level) + ')...', 'info');\n doDownload(id, name, level);\n });\n }\n\n function doDownload(id, name, level) {\n // 同曲在途去重——双击「下载」会提交两个任务扣两次费\n // (批量入口当年做了去重,单曲入口漏了同型)\n var inFlight = tasks.some(function (t) {\n return t.label === ('单曲 · ' + (name || id)) &&\n (t.status === 'queued' || t.status === 'running' || t.status === 'paused');\n });\n if (inFlight) { toast('这首歌已在下载队列中,请勿重复提交', 'warning'); return; }\n var cfg = downloadConfig();\n var taskId = genTaskId();\n apiPost('/download', {\n id: id,\n quality: level,\n task_id: taskId,\n device_id: getDeviceId(),\n account: store.parseAccount,\n user_cookie: store.parseAccount === 'user' ? store.personal.cookie : '',\n filename_format: cfg.filename_format,\n write_meta: cfg.write_meta,\n meta_fields: cfg.meta_fields,\n lyric_format: cfg.lyric_format,\n zip: cfg.zip\n }).then(function (data) {\n if (data.status === 401 && store.parseAccount === 'user') {\n store.parseAccount = 'admin';\n try { localStorage.setItem('netease_parse_account', 'admin'); } catch (e) {}\n renderAccountBar();\n renderPersonalToggle();\n toast('个人账号未登录或已失效,已自动切换为全局账号下载', 'warning');\n doDownload(id, name, level);\n return;\n }\n if (data.status !== 200) {\n toast(data.message || '下载提交失败', 'error');\n return;\n }\n // 加入任务悬浮窗,完成后自动下载文件并通知\n addTask({\n id: taskId, type: 'single',\n label: '单曲 · ' + (name || id),\n total: 1, done: 0, status: 'queued'\n });\n }).catch(function () {\n toast('下载提交失败,请检查网络', 'error');\n });\n }\n\n /* ================= 下载歌词 ================= */\n function lyricToFormat(lines, fmt) {\n // lines: [{time, text}];fmt: lrc | srt\n if (fmt === 'srt') {\n function srtTime(t) {\n var h = Math.floor(t / 3600);\n var m = Math.floor((t % 3600) / 60);\n var s = Math.floor(t % 60);\n var ms = Math.round((t - Math.floor(t)) * 1000);\n if (ms >= 1000) ms = 999;\n return String(h).padStart(2, '0') + ':' + String(m).padStart(2, '0') + ':' +\n String(s).padStart(2, '0') + ',' + String(ms).padStart(3, '0');\n }\n return lines.map(function (l, i) {\n var end = lines[i + 1] ? lines[i + 1].time : l.time + 5;\n // 同时间多行给 1 秒最小区间(前端同型漏网——\n // 后端当年修了倒挂区间,前端 lyricToFormat 没修,部分播放器拒收)\n if (end <= l.time) end = l.time + 1;\n // SRT 支持块内多行——双行模式原文/译文各占一行,不再删换行粘连\n return (i + 1) + '\\n' + srtTime(l.time) + ' --> ' + srtTime(end) + '\\n' + l.text + '\\n';\n }).join('\\n');\n }\n return lines.map(function (l) {\n var m = Math.floor(l.time / 60);\n var s = l.time - m * 60;\n var ms = Math.round((s - Math.floor(s)) * 1000);\n // 双行模式换行改为\" / \"分隔(原实现直接删除,原文译文无缝粘连)\n return '[' + String(m).padStart(2, '0') + ':' + String(Math.floor(s)).padStart(2, '0') +\n '.' + String(Math.min(ms, 999)).padStart(3, '0') + ']' + l.text.replace(/\\n/g, ' / ');\n }).join('\\n');\n }\n\n $('#detail-lyric-download').addEventListener('click', function () {\n if (!store.currentSong || !store.lyrics.length) {\n toast('暂无歌词可下载', 'warning');\n return;\n }\n var fmt = store.settings.lyricFormat === 'srt' ? 'srt' : 'lrc';\n var content = lyricToFormat(store.lyrics, fmt);\n var blob = new Blob([content], { type: 'text/plain;charset=utf-8' });\n var url = URL.createObjectURL(blob);\n var a = document.createElement('a');\n a.href = url;\n a.download = (store.currentSong.name || 'lyric') + '.' + fmt;\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n setTimeout(function () { URL.revokeObjectURL(url); }, 3000);\n toast('歌词已下载(' + fmt.toUpperCase() + ')', 'success');\n });\n\n function fallbackCopy(text) {\n var ta = document.createElement('textarea');\n ta.value = text;\n document.body.appendChild(ta);\n ta.select();\n // execCommand 返回 false 也是失败(原实现只在抛异常时报错,静默失败仍提示成功)\n try {\n var ok = document.execCommand('copy');\n if (ok) toast('已复制到剪贴板', 'success');\n else toast('复制失败,请手动复制', 'error');\n }\n catch (e) { toast('复制失败,请手动复制', 'error'); }\n document.body.removeChild(ta);\n }\n\n /* ================= 歌单解析 ================= */\n // 合集渲染代次守卫——快速切换解析目标时,迟到的旧响应不再覆盖新页面\n function _collGen(type) {\n store.collGen = store.collGen || {};\n store.collGen[type] = (store.collGen[type] || 0) + 1;\n return store.collGen[type];\n }\n function _collStale(type, gen) {\n return store.collGen[type] !== gen;\n }\n function doPlaylist() {\n if (!requireLogin()) return;\n var raw = $('#playlist-input').value.trim();\n var id = extractId(raw);\n if (!id) { toast('请输入歌单ID或链接', 'warning'); $('#playlist-input').focus(); return; }\n var btn = $('#playlist-btn');\n var gen = _collGen('playlist');\n setBtnLoading(btn, true, '解析中...');\n apiPost('/playlist', { id: id })\n .then(function (data) {\n if (_collStale('playlist', gen)) return;\n if (data.status !== 200) throw new Error((data.data && data.data.msg) || data.message || '歌单解析失败');\n renderCollection('playlist', data.data.playlist);\n })\n .catch(function (err) {\n if (_collStale('playlist', gen)) return;\n toast(err.message || '歌单解析失败', 'error');\n })\n .then(function () { setBtnLoading(btn, false); }, function () { setBtnLoading(btn, false); });\n }\n\n function loadPlaylistById(id, name) {\n $('#playlist-input').value = id;\n switchTab('playlist');\n $('#playlist-input').focus();\n if (name) toast('正在解析歌单:' + name, 'info');\n doPlaylist();\n }\n\n /* ================= 专辑解析 ================= */\n function doAlbum() {\n if (!requireLogin()) return;\n var raw = $('#album-input').value.trim();\n var id = extractId(raw);\n if (!id) { toast('请输入专辑ID或链接', 'warning'); $('#album-input').focus(); return; }\n var btn = $('#album-btn');\n var gen = _collGen('album');\n setBtnLoading(btn, true, '解析中...');\n apiPost('/album', { id: id })\n .then(function (data) {\n if (_collStale('album', gen)) return;\n if (data.status !== 200) throw new Error((data.data && data.data.msg) || data.message || '专辑解析失败');\n renderCollection('album', data.data.album);\n })\n .catch(function (err) {\n if (_collStale('album', gen)) return;\n toast(err.message || '专辑解析失败', 'error');\n })\n .then(function () { setBtnLoading(btn, false); }, function () { setBtnLoading(btn, false); });\n }\n\n function loadAlbumById(id, name) {\n $('#album-input').value = id;\n switchTab('album');\n $('#album-input').focus();\n if (name) toast('正在解析专辑:' + name, 'info');\n doAlbum();\n }\n\n /* 歌曲行 HTML(absIndex 为绝对序号) */\n function songRowHtml(song, absIndex) {\n return '
' +\n '' + absIndex + '' +\n '\"\"' +\n '
' +\n '
' + escapeHtml(song.name) +\n '' + escapeHtml(song.album || '') + '
' +\n '
' + escapeHtml(song.artists || '') + '
' +\n '
' +\n '
' +\n '' +\n '' +\n '
';\n }\n\n /* 通用歌曲列表分页(10条/页),prefix 对应各区域 id 前缀 */\n var PAGE_SIZE = 10;\n function renderPagedTracks(prefix, allTracks, page) {\n allTracks = allTracks || [];\n var total = allTracks.length;\n var pages = Math.max(1, Math.ceil(total / PAGE_SIZE));\n page = Math.max(1, Math.min(page || 1, pages));\n var start = (page - 1) * PAGE_SIZE;\n var slice = allTracks.slice(start, start + PAGE_SIZE);\n\n var box = $('#' + prefix + '-tracks');\n if (!slice.length) {\n box.innerHTML = '
📄
暂无歌曲(可能为受版权保护的歌曲)
';\n } else {\n box.innerHTML = slice.map(function (song, i) {\n return songRowHtml(song, start + i + 1);\n }).join('');\n }\n\n var pager = $('#' + prefix + '-pager');\n if (pager) {\n pager.hidden = total <= PAGE_SIZE;\n $('#' + prefix + '-page-info').textContent = '第 ' + page + ' / ' + pages + ' 页';\n $('#' + prefix + '-prev').disabled = page <= 1;\n $('#' + prefix + '-next').disabled = page >= pages;\n }\n var dlBtn = $('#' + prefix + '-download-all');\n if (dlBtn && total) dlBtn.textContent = '⬇ 批量下载全部(共 ' + total + ' 首)';\n store['page_' + prefix] = page;\n store['tracks_' + prefix] = allTracks;\n return page;\n }\n\n /* 绑定各区域分页按钮 */\n ['playlist', 'album', 'artist', 'personal', 'global'].forEach(function (p) {\n $('#' + p + '-prev').addEventListener('click', function () {\n renderPagedTracks(p, store['tracks_' + p], store['page_' + p] - 1);\n });\n $('#' + p + '-next').addEventListener('click', function () {\n renderPagedTracks(p, store['tracks_' + p], store['page_' + p] + 1);\n });\n });\n\n function renderCollection(type, info) {\n if (!info) { toast('解析结果为空', 'error'); return; }\n var prefix = type;\n ['playlist', 'album', 'artist'].forEach(function (t) { $('#' + t + '-result').hidden = true; });\n var card = $('#' + prefix + '-result');\n card.hidden = false;\n\n var tracks = info.tracks || info.songs || [];\n var isPlaylist = prefix === 'playlist';\n // 残缺歌单显式提示(后端标记 trackIds 与实际拿到的曲目数不一致)\n if (info.incomplete && info.missing) {\n toast('注意:该歌单不完整,缺少 ' + info.missing + ' 首(可能版权受限或接口失败)', 'warning');\n }\n\n // 记录当前歌单/专辑(供收藏按钮使用)\n store.currentCollection = { type: prefix, id: info.id, name: info.name };\n\n $('#' + prefix + '-cover').src = info.coverImgUrl || '';\n $('#' + prefix + '-name').textContent = info.name || '未知';\n if (isPlaylist) {\n $('#playlist-creator').textContent = 'by ' + (info.creator || '未知');\n $('#playlist-count').textContent = info.trackCount != null ? info.trackCount : tracks.length;\n $('#playlist-desc').hidden = !(info.description && info.description.trim());\n if (!$('#playlist-desc').hidden) $('#playlist-desc').textContent = info.description;\n } else {\n $('#album-artist').textContent = info.artist ? ('歌手:' + info.artist) : '';\n $('#album-count').textContent = tracks.length;\n $('#album-desc').hidden = !(info.description && info.description.trim());\n if (!$('#album-desc').hidden) $('#album-desc').textContent = info.description;\n }\n\n renderPagedTracks(prefix, tracks, 1);\n updateCollectButtons();\n window.scrollTo({ top: card.offsetTop - 80, behavior: 'smooth' });\n }\n\n $('#playlist-btn').addEventListener('click', doPlaylist);\n $('#playlist-input').addEventListener('keydown', function (e) { if (e.key === 'Enter') doPlaylist(); });\n $('#album-btn').addEventListener('click', doAlbum);\n $('#album-input').addEventListener('keydown', function (e) { if (e.key === 'Enter') doAlbum(); });\n\n /* ================= 歌手解析 ================= */\n function doArtist() {\n if (!requireLogin()) return;\n var raw = $('#artist-input').value.trim();\n var id = extractId(raw);\n if (!id) { toast('请输入歌手ID或链接', 'warning'); $('#artist-input').focus(); return; }\n var btn = $('#artist-btn');\n var gen = _collGen('artist');\n setBtnLoading(btn, true, '解析中...');\n apiPost('/artist_songs', { id: id })\n .then(function (data) {\n if (_collStale('artist', gen)) return;\n if (data.status !== 200) throw new Error((data.data && data.data.msg) || data.message || '歌手解析失败');\n renderArtist(data.data);\n })\n .catch(function (err) {\n if (_collStale('artist', gen)) return;\n toast(err.message || '歌手解析失败', 'error');\n })\n .then(function () { setBtnLoading(btn, false); }, function () { setBtnLoading(btn, false); });\n }\n\n function loadArtistById(id, name) {\n $('#artist-input').value = id;\n switchTab('artist');\n $('#artist-input').focus();\n if (name) toast('正在解析歌手:' + name, 'info');\n doArtist();\n }\n\n function renderArtist(data) {\n ['playlist', 'album', 'artist'].forEach(function (t) { $('#' + t + '-result').hidden = true; });\n var card = $('#artist-result');\n card.hidden = false;\n var artist = data.artist || {};\n var songs = data.songs || [];\n $('#artist-cover').src = artist.picUrl || '';\n $('#artist-name').textContent = artist.name || '未知歌手';\n $('#artist-alias').textContent = artist.alias || '';\n $('#artist-count').textContent = artist.musicSize != null ? artist.musicSize : songs.length;\n $('#artist-desc').hidden = !(artist.briefDesc && artist.briefDesc.trim());\n if (!$('#artist-desc').hidden) $('#artist-desc').textContent = artist.briefDesc;\n\n if (!songs.length) {\n $('#artist-tracks').innerHTML = '
🎤
该歌手暂无热门歌曲
';\n } else {\n renderPagedTracks('artist', songs, 1);\n }\n window.scrollTo({ top: card.offsetTop - 80, behavior: 'smooth' });\n }\n\n $('#artist-btn').addEventListener('click', doArtist);\n $('#artist-input').addEventListener('keydown', function (e) { if (e.key === 'Enter') doArtist(); });\n\n /* ================= 榜单 ================= */\n store.toplistLoaded = false;\n\n function loadToplists() {\n if (!requireLogin()) {\n var _tl = document.getElementById('toplist-loading');\n if (_tl) { _tl.innerHTML = '
🔒
请先登录后查看榜单
'; }\n return;\n }\n if (store.toplistLoaded) return;\n $('#toplist-loading').hidden = false;\n $('#toplist-grid').hidden = true;\n apiPost('/toplist', {})\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '获取榜单失败');\n var list = data.data || [];\n // 空结果也标记为已加载(原文案\"暂无榜单\"可见即可),\n // 但 loading/error 节点在完成后不再被 finally 一律隐藏\n store.toplistLoaded = true;\n renderToplists(list);\n })\n .catch(function (err) {\n // 失败态保持可见(错误信息 + 重试按钮),不被 finally 藏起来\n $('#toplist-loading').hidden = false;\n $('#toplist-loading').innerHTML = '
📊
' + escapeHtml(err.message || '获取榜单失败') + '
';\n });\n }\n\n function renderToplists(list) {\n var grid = $('#toplist-grid');\n if (!list || !list.length) {\n grid.hidden = true;\n $('#toplist-loading').hidden = false;\n $('#toplist-loading').innerHTML = '
📊
暂无榜单数据
';\n return;\n }\n $('#toplist-loading').hidden = true; // 有数据时才隐藏提示区\n grid.hidden = false;\n grid.innerHTML = list.map(function (t) {\n return '
' +\n '\"\"' +\n '
' + escapeHtml(t.name) + '
' +\n '
' + escapeHtml(t.updateFrequency || '') +\n (t.playCount ? ' · 播放 ' + fmtCount(t.playCount) : '') + '
' +\n '
';\n }).join('');\n }\n\n $('#toplist-grid').addEventListener('click', function (e) {\n var card = e.target.closest('.toplist-card');\n if (!card) return;\n var id = card.getAttribute('data-id');\n var name = card.getAttribute('data-name');\n toast('正在加载榜单:' + name, 'info');\n $('#playlist-input').value = id;\n switchTab('playlist');\n doPlaylist();\n });\n document.addEventListener('click', function (e) {\n if (e.target.closest('#toplist-retry')) {\n // 重试必须重置\"已加载\"标志(原实现标志仍真,重试是空操作)\n store.toplistLoaded = false;\n $('#toplist-loading').innerHTML = '';\n loadToplists();\n }\n });\n\n /* ================= 播客(电台 / 单集声音) ================= */\n var podcastHotCache = { categories: [] }; // 播客分类缓存\n\n function podcastRadioCardHtml(r) {\n return '
' +\n '\"\"' +\n '
' + escapeHtml(r.name) + '
' +\n '
' + escapeHtml(r.category || '播客') +\n (r.program_count ? ' · ' + escapeHtml(r.program_count) + ' 集' : '') +\n (r.sub_count_text && r.sub_count_text !== '0' ? ' · 订阅 ' + escapeHtml(r.sub_count_text) : '') + '
' +\n '
';\n }\n\n function renderPodcastCates() {\n var bar = $('#podcast-cate-bar');\n var cats = [{ id: null, name: '热门推荐' }].concat(podcastHotCache.categories);\n bar.innerHTML = cats.map(function (c) {\n var active = (c.id == null && !store.podcast.hotCate) || String(c.id) === String(store.podcast.hotCate || '');\n return '' + escapeHtml(c.name) + '';\n }).join('');\n }\n\n var _podcastHotBusy = false;\n function loadPodcastHot(cateId, append) {\n var grid = $('#podcast-hot-grid');\n // 在途请求锁——双击\"加载更多\"不再用同一 offset 重复请求\n if (append && _podcastHotBusy) return;\n var loadingHtml = '
🎙️
加载中...
';\n if (!append) grid.innerHTML = loadingHtml;\n _podcastHotBusy = true;\n apiPost('/podcast/hot', { limit: 30, offset: append ? store.podcast.hotOffset : 0, cate_id: cateId || '' })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '获取热门播客失败');\n var d = data.data || {};\n if (d.categories && d.categories.length) podcastHotCache.categories = d.categories;\n store.podcast.hotLoaded = true;\n store.podcast.hotCate = cateId || null;\n store.podcast.hotOffset = (append ? store.podcast.hotOffset : 0) + (d.radios || []).length;\n renderPodcastCates();\n var html = (d.radios || []).map(podcastRadioCardHtml).join('');\n if (append) grid.insertAdjacentHTML('beforeend', html);\n else grid.innerHTML = html || '
🎙️
该分类暂无热门播客
';\n // 按服务端 has_more 显隐(空页/短页没有更多)\n $('#podcast-hot-more-wrap').hidden = !(d.radios || []).length || !d.has_more;\n })\n .catch(function (err) {\n if (!append) grid.innerHTML = '
😕
' + escapeHtml(err.message || '加载失败') + '
';\n toast(err.message || '获取热门播客失败', 'error');\n })\n .then(function () { _podcastHotBusy = false; }, function () { _podcastHotBusy = false; });\n }\n\n $('#podcast-cate-bar').addEventListener('click', function (e) {\n var item = e.target.closest('.podcast-cate-item');\n if (!item) return;\n var cid = item.getAttribute('data-cate-id');\n loadPodcastHot(cid || null, false);\n });\n $('#podcast-hot-more').addEventListener('click', function () {\n loadPodcastHot(store.podcast.hotCate, true);\n });\n $('#podcast-hot-grid').addEventListener('click', function (e) {\n var card = e.target.closest('.toplist-card');\n if (!card) return;\n $('#podcast-input').value = card.getAttribute('data-radio-id');\n podcastParse();\n });\n\n /* ---- 解析入口 ---- */\n var _podcastGen = 0;\n function podcastParse() {\n if (!requireLogin()) return;\n if (!cookieGate()) return; // 播客入口补齐撤回闸(原音乐四入口有、播客三入口漏)\n var raw = $('#podcast-input').value.trim();\n if (!raw) { toast('请输入播客电台/单集链接或ID', 'warning'); return; }\n var btn = $('#podcast-btn');\n var gen = ++_podcastGen; // 代次守卫——回车绕过按钮禁用,迟到响应不得覆盖新解析\n setBtnLoading(btn, true, '解析中...');\n podcastShowLoading(true);\n $('#podcast-radio-result').hidden = true;\n $('#podcast-program-result').hidden = true;\n apiPost('/podcast/parse', { id: raw, quality: $('#podcast-quality').value })\n .then(function (data) {\n if (gen !== _podcastGen) return; // 迟到响应丢弃\n if (data.status !== 200) throw new Error(data.message || '解析失败');\n var d = data.data || {};\n if (d.kind === 'radio') podcastRenderRadio(d);\n else podcastRenderProgram(d.program, true);\n })\n .catch(function (err) {\n if (gen !== _podcastGen) return;\n toast(err.message || '解析失败', 'error');\n })\n .finally(function () {\n // 按钮无条件配对复位(重入计数器,见 doSearch);\n // 全局 spinner 保持代次门——旧请求不提前收起新请求的 loading\n setBtnLoading(btn, false);\n if (gen === _podcastGen) podcastShowLoading(false);\n });\n }\n function podcastShowLoading(show) { $('#podcast-loading').hidden = !show; }\n\n $('#podcast-btn').addEventListener('click', podcastParse);\n $('#podcast-input').addEventListener('keydown', function (e) { if (e.key === 'Enter') podcastParse(); });\n\n /* ---- 电台渲染 ---- */\n function podcastRenderRadio(d) {\n var radio = d.radio || {};\n store.podcast.radio = radio;\n store.podcast.radioId = radio.id;\n store.podcast.offset = (d.programs || []).length;\n store.podcast.count = d.count || 0;\n store.podcast.asc = true;\n $('#podcast-radio-cover').src = radio.pic_url || '';\n $('#podcast-radio-name').textContent = radio.name || '';\n $('#podcast-radio-meta').textContent =\n '主播:' + (radio.dj_name || '未知') +\n (radio.category ? ' · 分类:' + radio.category : '') +\n (radio.program_count ? ' · 共 ' + radio.program_count + ' 集' : '') +\n (radio.sub_count_text && radio.sub_count_text !== '0' ? ' · 订阅 ' + radio.sub_count_text : '');\n $('#podcast-radio-desc').textContent = radio.desc || '';\n $('#podcast-radio-desc').hidden = !radio.desc;\n $('#podcast-radio-order').textContent = '⇅ 最新在前';\n renderPodcastEpisodes(d.programs || [], false);\n $('#podcast-radio-result').hidden = false;\n $('#podcast-program-result').hidden = true;\n $('#podcast-search-result').hidden = true;\n }\n\n function podcastEpisodeRowHtml(p, idx) {\n var serial = p.serial_num || (idx + 1);\n var meta = [];\n if (p.duration_text) meta.push(p.duration_text);\n if (p.create_date) meta.push(p.create_date);\n if (p.listener_count_text && p.listener_count_text !== '0') meta.push('收听 ' + p.listener_count_text);\n return '
' +\n '
' + escapeHtml(serial) + '
' +\n '
' +\n '
' + escapeHtml(p.name) + '
' +\n '
' + escapeHtml(meta.join(' · ')) + '
' +\n '
' +\n '
' +\n '' +\n '' +\n '' +\n '
' +\n '
';\n }\n\n function renderPodcastEpisodes(programs, append) {\n var box = $('#podcast-episodes');\n var html = programs.map(podcastEpisodeRowHtml).join('');\n if (append) box.insertAdjacentHTML('beforeend', html);\n else box.innerHTML = html || '
该电台暂无单集
';\n $('#podcast-episode-count').textContent = store.podcast.count ? store.podcast.count + ' 集' : '';\n $('#podcast-more-wrap').hidden = !store.podcast.count || store.podcast.offset >= store.podcast.count;\n }\n\n var _podcastMoreBusy = false;\n $('#podcast-more').addEventListener('click', function () {\n // 在途请求锁——双击\"加载更多\"不再用同一 offset 发两次请求\n //(原实现两次 append 相同页后 offset 跳两页,漏掉一页)\n if (_podcastMoreBusy) return;\n _podcastMoreBusy = true;\n apiPost('/podcast/programs', {\n radio_id: store.podcast.radioId,\n limit: 30, offset: store.podcast.offset, asc: store.podcast.asc\n }).then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '加载失败');\n var d = data.data || {};\n store.podcast.offset += (d.programs || []).length;\n renderPodcastEpisodes(d.programs || [], true);\n }).catch(function (err) { toast(err.message || '加载更多失败', 'error'); })\n .then(function () { _podcastMoreBusy = false; }, function () { _podcastMoreBusy = false; });\n });\n\n $('#podcast-radio-order').addEventListener('click', function () {\n var prevAsc = store.podcast.asc, prevOffset = store.podcast.offset;\n store.podcast.asc = !store.podcast.asc;\n this.textContent = store.podcast.asc ? '⇅ 最新在前' : '⇅ 第1集在前';\n store.podcast.offset = 0;\n apiPost('/podcast/programs', {\n radio_id: store.podcast.radioId,\n limit: 30, offset: 0, asc: store.podcast.asc\n }).then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '加载失败');\n var d = data.data || {};\n store.podcast.offset = (d.programs || []).length;\n renderPodcastEpisodes(d.programs || [], false);\n }).catch(function (err) {\n // 排序失败回滚状态与按钮文案(原实现失败后界面方向与数据不一致)\n store.podcast.asc = prevAsc;\n store.podcast.offset = prevOffset;\n // 原实现的 [0] 取值恒为 undefined 导致短路,恢复文案从未生效\n $('#podcast-radio-order').textContent =\n store.podcast.asc ? '⇅ 最新在前' : '⇅ 第1集在前';\n toast(err.message || '切换排序失败', 'error');\n });\n });\n\n /* ---- 整台打包 ---- */\n $('#podcast-radio-zip').addEventListener('click', function () {\n if (!cookieGate()) return; // 整台打包补齐撤回闸\n if (!store.podcast.radioId) return;\n var name = (store.podcast.radio && store.podcast.radio.name) || store.podcast.radioId;\n var credits = (window.getSITECredits && window.getSITECredits()) || 0;\n // 预检上限取 min(实际集数, 200)——原实现固定按 200 集比较,\n // 3 集的小电台也会误报\"不足以打包全部单集\"\n var limit = Math.min(500, store.podcast.count || 200); // 与后端 500 上限对齐(原 200 使 201-500 集电台永远打不满)\n if (credits < 0) {\n // 未登录明确拦截(原实现游客 -1 穿过预检,提交后才吃 401)\n if (window.handleAuthExpired) window.handleAuthExpired('请先登录后再使用打包下载', false);\n return;\n }\n if (credits >= 0) {\n if (credits <= 0) { if (window.handleAuthExpired) window.handleAuthExpired('', true); return; }\n if (credits < limit) {\n if (!window.confirm('您的剩余下载次数为 ' + credits + ' 次,不足以打包全部单集。\\n确定后将仅打包前 ' + credits + ' 集,是否继续?')) return;\n limit = credits;\n }\n }\n if (!window.confirm('将下载「' + name + '」的单集(最多 ' + limit + ' 集)并打包为 ZIP,大电台耗时较长,确认开始?')) return;\n var taskId = genTaskId();\n apiPost('/podcast/download/batch_zip', {\n radio_id: store.podcast.radioId,\n limit: limit,\n quality: $('#podcast-quality').value,\n task_id: taskId,\n device_id: getDeviceId()\n }).then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '提交失败');\n addTask({ id: taskId, type: 'batch', label: '播客打包 · ' + name, total: 0, done: 0, status: 'queued' });\n toast('打包任务已提交,可在进度悬浮窗查看', 'success');\n }).catch(function (err) { toast(err.message || '打包提交失败', 'error'); });\n });\n\n /* ---- 单集列表操作(事件委托) ---- */\n $('#podcast-episodes').addEventListener('click', function (e) {\n var btn = e.target.closest('button[data-act]');\n if (!btn) return;\n var act = btn.getAttribute('data-act');\n var pid = btn.getAttribute('data-id');\n var name = btn.getAttribute('data-name');\n if (act === 'detail') podcastOpenProgram(pid, name, true, btn);\n else if (act === 'direct') podcastCopyDirectLink(pid, name, btn);\n else if (act === 'download') podcastDownloadEpisode(pid, name);\n });\n\n /* ---- 单集详情 / 试听 ---- */\n function podcastRenderProgram(program, autoplay) {\n store.podcast.program = program;\n $('#podcast-program-cover').src = program.cover_url || '';\n $('#podcast-program-name').textContent = program.name || '';\n $('#podcast-program-radio').textContent = program.radio_name || '-';\n $('#podcast-program-dj').textContent = program.dj_name || '-';\n var meta = [];\n if (program.duration_text) meta.push('时长 ' + program.duration_text);\n if (program.create_date) meta.push('发布 ' + program.create_date);\n if (program.serial_num) meta.push('第 ' + program.serial_num + ' 集');\n $('#podcast-program-meta').textContent = meta.join(' · ') || '-';\n var audio = program.audio;\n var badges = $('#podcast-program-badges');\n var openBtn = $('#podcast-program-open');\n var canPlay = audio && audio.url;\n badges.innerHTML = canPlay\n ? '' + escapeHtml(audio.level_name || audio.level || '标准') + '' +\n '' + escapeHtml((audio.type || 'mp3').toUpperCase()) + ' · ' + escapeHtml(audio.size_formatted || '') + '' +\n (audio.br ? '' + Math.round(audio.br / 1000) + ' kbps' : '')\n : '未获取到音频直链';\n var player = $('#podcast-audio');\n if (canPlay) {\n // 与音乐播放器互斥——开播播客先暂停音乐\n try {\n var ma = $('#player audio');\n if (ma && !ma.paused) ma.pause();\n } catch (e) {}\n player.src = audio.url;\n player.hidden = false;\n // 试听音量随主播放器(原实现原生控件独立,主播放器调低音量后\n // 切播客试听仍 100% 首响)\n try {\n if (typeof playerState.volume === 'number') {\n player.volume = playerState.volume;\n player.muted = !!playerState.muted;\n }\n } catch (e) {}\n openBtn.href = audio.url;\n openBtn.hidden = false;\n // 试听链接 36 分钟过期(=35 分钟保留期+60s),失效时给出明确指引(重新解析即可刷新)\n player.onerror = function () {\n toast('试听链接已过期或失效,请重新点击「试听」刷新', 'warning');\n };\n if (autoplay) { player.play().catch(function () { /* 自动播放被拦截时忽略 */ }); }\n } else {\n player.removeAttribute('src');\n player.hidden = true;\n openBtn.hidden = true;\n }\n $('#podcast-program-tip').hidden = !!canPlay;\n $('#podcast-program-tip').textContent = '该单集暂无可用音频(可能已下架或受版权限制)';\n $('#podcast-program-result').hidden = false;\n $('#podcast-radio-result').hidden = true;\n }\n\n function podcastOpenProgram(pid, name, autoplay, btn) {\n var restore = function () { if (btn) setBtnLoading(btn, false); };\n if (btn) setBtnLoading(btn, true, '...');\n podcastShowLoading(true);\n apiPost('/podcast/parse', { id: pid, quality: $('#podcast-quality').value })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '解析失败');\n podcastRenderProgram((data.data || {}).program, autoplay);\n })\n .catch(function (err) { toast(err.message || '解析失败', 'error'); })\n .finally(function () { podcastShowLoading(false); restore(); });\n }\n\n /* ---- 直链复制 ---- */\n function podcastCopyDirectLink(pid, name, btn) {\n var restore = function () { if (btn) setBtnLoading(btn, false); };\n if (btn) setBtnLoading(btn, true, '...');\n apiPost('/podcast/parse', { id: pid, quality: $('#podcast-quality').value })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '解析失败');\n var audio = ((data.data || {}).program || {}).audio;\n if (!audio || !audio.url) throw new Error('未获取到音频直链');\n try {\n navigator.clipboard.writeText(audio.url)\n .then(function () { toast('直链已复制:' + name, 'success'); })\n .catch(function () { fallbackCopy(audio.url); });\n } catch (e2) { fallbackCopy(audio.url); }\n })\n .catch(function (err) { toast(err.message || '获取直链失败', 'error'); })\n .finally(restore);\n }\n\n /* ---- 单集下载 ---- */\n function podcastDownloadEpisode(pid, name) {\n if (!requireLogin()) return;\n if (!cookieGate()) return; // 单集下载补齐撤回闸\n var taskId = genTaskId();\n apiPost('/podcast/download', {\n id: pid,\n quality: $('#podcast-quality').value,\n task_id: taskId,\n device_id: getDeviceId()\n }).then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '提交失败');\n addTask({ id: taskId, type: 'single', label: '播客 · ' + (name || pid), total: 1, done: 0, status: 'queued' });\n toast('下载任务已提交:' + name, 'success');\n }).catch(function (err) { toast(err.message || '下载提交失败', 'error'); });\n }\n\n /* ---- 单集详情卡片按钮 ---- */\n $('#podcast-program-download').addEventListener('click', function () {\n var p = store.podcast.program;\n if (!p) return;\n podcastDownloadEpisode(p.id, p.name);\n });\n\n /* ---- 播客搜索 ---- */\n function podcastSearch() {\n if (!requireLogin()) return;\n var kw = $('#podcast-search-input').value.trim();\n if (!kw) { toast('请输入搜索关键词', 'warning'); return; }\n var btn = $('#podcast-search-btn');\n setBtnLoading(btn, true, '搜索中...');\n apiPost('/podcast/search', { keyword: kw, limit: 20, type: 'all' })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '搜索失败');\n var d = data.data || {};\n var radios = d.radios || [];\n var voices = d.voices || [];\n var html = radios.map(function (r) {\n var meta = [];\n if (r.dj_name) meta.push('主播 ' + r.dj_name);\n if (r.program_count) meta.push(r.program_count + ' 集');\n if (r.sub_count_text && r.sub_count_text !== '0') meta.push('订阅 ' + r.sub_count_text);\n return '
' +\n '\"\"' +\n '
' +\n '
' + escapeHtml(r.name) + '
' +\n '
' + escapeHtml(meta.join(' · ')) + '
' +\n '
' +\n '
' +\n '' +\n '
';\n }).join('');\n html += voices.map(function (v) {\n var meta = [];\n if (v.radio_name) meta.push('来自「' + v.radio_name + '」');\n if (v.duration_text) meta.push(v.duration_text);\n if (v.create_date) meta.push(v.create_date);\n return '
' +\n '\"\"' +\n '
' +\n '
' + escapeHtml(v.name) + '
' +\n '
' + escapeHtml(meta.join(' · ')) + '
' +\n '
' +\n '
' +\n '' +\n '
';\n }).join('');\n $('#podcast-search-list').innerHTML = html ||\n '
未找到相关播客
';\n $('#podcast-search-count').textContent = (radios.length + voices.length) + ' 条';\n var tip = $('#podcast-search-tip');\n if (!voices.length && radios.length) {\n tip.textContent = '💡 受网易接口限制,单集(声音)搜索可能无结果;可先解析电台后浏览全部单集。';\n tip.hidden = false;\n } else tip.hidden = true;\n $('#podcast-search-result').hidden = false;\n })\n .catch(function (err) { toast(err.message || '搜索失败', 'error'); })\n .finally(function () { setBtnLoading(btn, false); });\n }\n $('#podcast-search-btn').addEventListener('click', podcastSearch);\n $('#podcast-search-input').addEventListener('keydown', function (e) { if (e.key === 'Enter') podcastSearch(); });\n $('#podcast-search-list').addEventListener('click', function (e) {\n var radioBtn = e.target.closest('button[data-search-radio]');\n if (radioBtn) {\n $('#podcast-input').value = radioBtn.getAttribute('data-search-radio');\n podcastParse();\n window.scrollTo({ top: 0, behavior: 'smooth' });\n return;\n }\n var voiceBtn = e.target.closest('button[data-search-voice]');\n if (voiceBtn) podcastOpenProgram(voiceBtn.getAttribute('data-search-voice'), voiceBtn.getAttribute('data-voice-name'), true, voiceBtn);\n });\n\n /* ================= 关于网站 ================= */\n function renderAboutChangelog() {\n // 版本号与更新日志联动(原实现写死 v1.5.0,与日志最新 2.1.0 不一致)\n var ver = $('#about-version');\n if (ver && CHANGELOG[0]) ver.textContent = 'v' + CHANGELOG[0].v;\n $('#about-changelog').innerHTML = CHANGELOG.map(function (v) {\n return '
' +\n '
v' + v.v + '' +\n '' + v.date + '
' +\n '
    ' + v.items.map(function (i) {\n return '
  • ' + escapeHtml(i) + '
  • ';\n }).join('') + '
';\n }).join('');\n }\n\n /* ================= 管理员设置(二维码登录 / Cookie 管理) ================= */\n // 旧版前端写死口令已废除——本面板全部接口仅认站点管理员会话;\n // 入口改为直接用会话探测(管理员已登录 site_uid 即放行,否则引导去管理后台)\n\n function adminEnter() {\n apiPost('/admin/cookie/status', {})\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '需要管理员权限');\n store.adminAuthed = true;\n $('#admin-gate').hidden = true;\n $('#admin-content').hidden = false;\n toast('验证成功,欢迎进入管理员设置', 'success');\n adminLoadStatus();\n loadAdminLogs();\n })\n .catch(function (err) {\n toast('请先用管理员账号登录站点,管理功能已并入「管理后台」页签', 'error');\n });\n }\n\n function adminLoadStatus() {\n apiPost('/admin/cookie/status', {})\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '获取状态失败');\n var info = data.data || {};\n var badge = $('#admin-status-badge');\n var desc = $('#admin-status-desc');\n if (info.is_valid) {\n badge.textContent = '有效';\n badge.style.borderColor = 'var(--color-success)';\n badge.style.color = 'var(--color-success)';\n badge.style.background = 'rgba(82,196,26,0.1)';\n desc.textContent = '已登录,Cookie 自动保存,无需重复扫码。';\n } else {\n badge.textContent = '未登录';\n badge.style.borderColor = 'var(--color-error)';\n badge.style.color = 'var(--color-error)';\n badge.style.background = 'rgba(255,77,79,0.1)';\n desc.textContent = info.file_exists ?\n 'Cookie 文件存在但缺少关键字段,建议重新扫码登录。' :\n '尚未配置 Cookie,请扫码登录。';\n }\n $('#admin-cookie-file').textContent = info.file_path || '-';\n var parts = [];\n if (info.cookie_count != null) parts.push('Cookie ' + info.cookie_count + ' 个');\n if (info.last_modified) parts.push('最后更新 ' + info.last_modified);\n if (info.important_cookies_present && info.important_cookies_present.length) {\n parts.push('包含 ' + info.important_cookies_present.join(', '));\n }\n $('#admin-cookie-time').textContent = parts.join(' · ') || '-';\n })\n .catch(function (err) {\n toast(err.message || '获取 Cookie 状态失败', 'error');\n });\n }\n\n function adminStopQrPoll() {\n if (store.adminQrTimer) {\n clearInterval(store.adminQrTimer);\n store.adminQrTimer = null;\n }\n }\n\n function adminQrCreate() {\n if (!store.adminAuthed) return;\n setBtnLoading($('#admin-qr-btn'), true, '生成中...');\n apiPost('/admin/qr/create', {})\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '生成二维码失败');\n var d = data.data;\n store.adminUnikey = d.unikey;\n var svg = d.qr_svg || '';\n var dataUri = 'data:image/svg+xml;base64,' + btoa(unescape(encodeURIComponent(svg)));\n $('#admin-qr-img').src = dataUri;\n $('#admin-qr-area').hidden = false;\n $('#admin-qr-status').textContent = '请使用网易云音乐手机 APP 扫描二维码登录';\n $('#admin-qr-status').style.color = '';\n toast('二维码已生成,请用手机扫码', 'info');\n adminStopQrPoll();\n // 换新码即作废旧 unikey 的在途 check 响应(代次令牌)\n store.adminQrGen = (store.adminQrGen || 0) + 1;\n store.adminQrTimer = setInterval(adminQrPoll, 3000);\n })\n .catch(function (err) {\n toast(err.message || '生成二维码失败', 'error');\n })\n .finally(function () { setBtnLoading($('#admin-qr-btn'), false); });\n }\n\n function adminQrPoll() {\n if (!store.adminUnikey) { adminStopQrPoll(); return; }\n // 代次令牌——删除 Cookie/重新生成二维码后,旧 unikey 的\n // 在途 check 响应不得杀掉新一轮轮询或误报「登录成功,Cookie 已自动保存」\n store.adminQrGen = (store.adminQrGen || 0) + 1;\n var gen = store.adminQrGen;\n apiPost('/admin/qr/check', { unikey: store.adminUnikey })\n .then(function (data) {\n if (gen !== store.adminQrGen) return; // 迟到响应丢弃\n if (data.status !== 200) {\n adminStopQrPoll();\n $('#admin-qr-status').textContent = data.message || '检查登录状态失败';\n $('#admin-qr-status').style.color = 'var(--color-error)';\n return;\n }\n var st = data.data.status;\n if (st === 'waiting') {\n $('#admin-qr-status').textContent = '等待扫码...';\n $('#admin-qr-status').style.color = '';\n } else if (st === 'scanned') {\n $('#admin-qr-status').textContent = '✅ 已扫码,请在手机上确认登录';\n $('#admin-qr-status').style.color = 'var(--color-warning)';\n } else if (st === 'success') {\n adminStopQrPoll();\n $('#admin-qr-status').textContent = '🎉 登录成功,Cookie 已自动保存';\n $('#admin-qr-status').style.color = 'var(--color-success)';\n toast('登录成功,Cookie 已自动保存', 'success');\n adminLoadStatus();\n renderAccountBar();\n } else if (st === 'expired') {\n adminStopQrPoll();\n $('#admin-qr-status').textContent = '二维码已过期,请点击「生成登录二维码」重新获取';\n $('#admin-qr-status').style.color = 'var(--color-error)';\n } else {\n adminStopQrPoll();\n $('#admin-qr-status').textContent = data.message || '登录状态异常';\n $('#admin-qr-status').style.color = 'var(--color-error)';\n }\n })\n .catch(function (err) {\n if (gen !== store.adminQrGen) return; // 迟到响应丢弃\n adminStopQrPoll();\n $('#admin-qr-status').textContent = err.message || '检查登录状态失败';\n $('#admin-qr-status').style.color = 'var(--color-error)';\n });\n }\n\n function adminCookieDelete() {\n if (!store.adminAuthed) return;\n if (!window.confirm('确定要删除当前 Cookie 吗?\\n删除后将需要重新扫码登录。')) return;\n setBtnLoading($('#admin-cookie-delete'), true, '删除中...');\n apiPost('/admin/cookie/delete', {})\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '删除失败');\n adminStopQrPoll();\n // 删除后作废在途 check 响应(代次令牌)\n store.adminQrGen = (store.adminQrGen || 0) + 1;\n $('#admin-qr-area').hidden = true;\n store.adminUnikey = '';\n toast('Cookie 已删除,可重新扫码登录', 'success');\n adminLoadStatus();\n renderAccountBar();\n })\n .catch(function (err) {\n toast(err.message || '删除 Cookie 失败', 'error');\n })\n .finally(function () { setBtnLoading($('#admin-cookie-delete'), false); });\n }\n\n $('#admin-enter').addEventListener('click', adminEnter);\n $('#admin-password').addEventListener('keydown', function (e) { if (e.key === 'Enter') adminEnter(); });\n $('#admin-qr-btn').addEventListener('click', adminQrCreate);\n $('#admin-cookie-delete').addEventListener('click', adminCookieDelete);\n $('#admin-status-refresh').addEventListener('click', adminLoadStatus);\n\n /* ================= 管理员:用户 IP 解析/下载记录 ================= */\n var adminLogsPage = 1;\n function loadAdminLogs() {\n if (!store.adminAuthed) return;\n apiPost('/admin/logs', { page: adminLogsPage, page_size: 10 })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '获取记录失败');\n var d = data.data;\n var box = $('#admin-logs-list');\n if (!d.items || !d.items.length) {\n box.innerHTML = '
暂无解析/下载记录
';\n } else {\n box.innerHTML = d.items.map(function (it) {\n var tagCls = it.action === '下载' ? ' style=\"border-color:var(--color-success);color:var(--color-success);background:rgba(82,196,26,0.1);\"' :\n ' style=\"border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-bg);\"';\n return '
' +\n '' + escapeHtml(it.action || '-') + '' +\n '' + escapeHtml(it.ip || '-') + '' +\n '' + escapeHtml(it.song || '') + '' +\n '' + escapeHtml(it.time || '') + '' +\n '
';\n }).join('');\n }\n var pages = Math.max(1, d.pages || 1);\n $('#admin-logs-info').textContent = '第 ' + d.page + ' / ' + pages + ' 页';\n $('#admin-logs-prev').disabled = d.page <= 1;\n $('#admin-logs-next').disabled = d.page >= pages;\n $('#admin-logs-pager').hidden = d.total <= 10;\n })\n .catch(function (err) {\n toast(err.message || '获取记录失败', 'error');\n });\n }\n $('#admin-logs-refresh').addEventListener('click', loadAdminLogs);\n $('#admin-logs-prev').addEventListener('click', function () {\n if (adminLogsPage > 1) { adminLogsPage--; loadAdminLogs(); }\n });\n $('#admin-logs-next').addEventListener('click', function () {\n adminLogsPage++; loadAdminLogs();\n });\n\n /* ================= 个人歌单(游客扫码登录自己的账号) ================= */\n function personalCheckLogin() {\n apiPost('/user/status', { user_cookie: store.personal.cookie })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '获取登录状态失败');\n var d = data.data || {};\n var info = d.cookie || {};\n if (info.is_valid && d.user) {\n store.personal.authed = true;\n store.personal.user = d.user;\n $('#personal-gate').hidden = true;\n $('#personal-content').hidden = false;\n personalRenderUser();\n personalLoadPlaylists();\n renderAccountBar();\n updateCollectButtons();\n updateCommentComposer();\n } else {\n personalResetGate(info.is_valid);\n }\n })\n .catch(function (err) {\n toast(err.message || '获取登录状态失败', 'error');\n personalResetGate(false);\n });\n }\n\n function personalResetGate(hasCookie) {\n store.personal.authed = false;\n $('#personal-content').hidden = true;\n $('#personal-gate').hidden = false;\n $('#personal-qr-area').hidden = true;\n $('#personal-refresh').hidden = !hasCookie;\n updateCollectButtons();\n updateCommentComposer();\n if (hasCookie) {\n $('#personal-gate-hint').textContent = '检测到登录信息已失效(或未关联有效账号),请重新扫码登录。';\n $('#personal-refresh').hidden = false;\n } else {\n $('#personal-gate-hint').innerHTML = '扫码登录你自己的网易云账号,即可查看收藏的歌单(包括「我喜欢的音乐」)。' +\n '个人登录仅用于获取你的歌单,解析与下载音乐仍使用管理员全局账号。';\n $('#personal-refresh').hidden = true;\n }\n }\n\n function vipBadgeHtml(vipType) {\n if (vipType === 11 || vipType === 100) return '黑胶VIP';\n if (vipType === 10 || vipType === 110) return '黑胶SVIP';\n if (vipType === 1) return '音乐包';\n return '普通用户';\n }\n\n function personalRenderUser() {\n var u = store.personal.user || {};\n $('#personal-avatar').src = u.avatarUrl || '';\n $('#personal-nickname').innerHTML = escapeHtml(u.nickname || '未命名用户') + ' ' + vipBadgeHtml(u.vipType);\n $('#personal-signature').textContent = u.signature || '';\n renderPersonalToggle();\n }\n\n function renderPersonalToggle() {\n var btn = $('#personal-toggle-account');\n if (store.parseAccount === 'user') {\n btn.textContent = '切换为全局账号解析';\n btn.className = 'btn btn-sm btn-primary';\n } else {\n btn.textContent = '切换为个人账号解析';\n btn.className = 'btn btn-sm';\n }\n }\n\n $('#personal-toggle-account').addEventListener('click', function () {\n if (store.parseAccount === 'admin') {\n if (!store.personal.authed) {\n toast('请先在「个人歌单」扫码登录你自己的账号', 'warning');\n return;\n }\n store.parseAccount = 'user';\n toast('已切换为个人账号解析与下载(全局菜单均生效)', 'success');\n } else {\n store.parseAccount = 'admin';\n toast('已切换为全局账号解析与下载', 'success');\n }\n try { localStorage.setItem('netease_parse_account', store.parseAccount); } catch (e) {}\n renderPersonalToggle();\n renderAccountBar();\n });\n\n function personalLoadPlaylists() {\n apiPost('/user/playlists', { user_cookie: store.personal.cookie })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '获取歌单失败');\n store.personal.user = data.data.user;\n personalRenderUser();\n personalRenderPlaylists(data.data.playlists || []);\n })\n .catch(function (err) {\n if (err.message && err.message.indexOf('请先扫码') !== -1) {\n toast(err.message, 'warning');\n personalResetGate(false);\n } else {\n toast(err.message || '获取歌单失败', 'error');\n }\n });\n }\n\n function personalRenderPlaylists(list) {\n store.personal.playlists = list;\n var box = $('#personal-playlists');\n $('#personal-playlist-count').textContent = '共 ' + list.length + ' 个';\n if (!list.length) {\n box.innerHTML = '
📂
暂无歌单
';\n return;\n }\n box.innerHTML = list.map(function (p) {\n var badge = '';\n if (p.specialType === 5) {\n badge = '❤️ 我喜欢的音乐';\n } else if (p.is_own) {\n badge = '我创建的';\n } else {\n badge = '收藏的';\n }\n return '
' +\n '\"\"' +\n '
' +\n '
' + escapeHtml(p.name) + ' ' + badge + '
' +\n '
' + fmtCount(p.trackCount) + ' 首 · 播放 ' + fmtCount(p.playCount) +\n (p.creator ? ' · by ' + escapeHtml(p.creator) : '') + '
' +\n '
' +\n '
' +\n '' +\n '
';\n }).join('');\n }\n\n function personalOpenPlaylist(id, name) {\n if (!id) return;\n store.personal.current = { id: id, name: name };\n var gen = _collGen('personal'); // 迟到响应不得覆盖新打开的歌单\n $('#personal-tracks-wrap').hidden = false;\n $('#personal-tracks-title').textContent = '歌单歌曲:' + (name || id);\n $('#personal-tracks').innerHTML = '
⏳
加载中...
';\n window.scrollTo({ top: $('#personal-tracks-wrap').offsetTop - 80, behavior: 'smooth' });\n apiPost('/user/playlist', { id: id, user_cookie: store.personal.cookie })\n .then(function (data) {\n if (_collStale('personal', gen)) return;\n if (data.status !== 200) throw new Error((data.data && data.data.msg) || data.message || '获取歌单失败');\n personalRenderTracks(data.data.playlist || {});\n })\n .catch(function (err) {\n if (_collStale('personal', gen)) return;\n $('#personal-tracks').innerHTML = '
❌
' + escapeHtml(err.message || '获取歌单失败') + '
';\n });\n }\n\n function personalRenderTracks(info) {\n var tracks = info.tracks || [];\n // 空列表同样走 renderPagedTracks——清空 tracks_personal 状态与分页条,\n // 原实现提前 return,旧歌单的下载数据残留(批量下载会下到旧歌)\n renderPagedTracks('personal', tracks, 1);\n }\n\n function personalStopQrPoll() {\n if (store.personal.qrTimer) {\n clearInterval(store.personal.qrTimer);\n store.personal.qrTimer = null;\n }\n }\n\n function personalQrCreate() {\n setBtnLoading($('#personal-qr-btn'), true, '生成中...');\n apiPost('/user/qr/create', {})\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '生成二维码失败');\n var d = data.data;\n store.personal.unikey = d.unikey;\n var dataUri = 'data:image/svg+xml;base64,' + btoa(unescape(encodeURIComponent(d.qr_svg || '')));\n $('#personal-qr-img').src = dataUri;\n $('#personal-qr-area').hidden = false;\n $('#personal-qr-status').textContent = '请使用网易云音乐手机 APP 扫描二维码登录';\n $('#personal-qr-status').style.color = '';\n toast('二维码已生成,请用手机扫码', 'info');\n personalStopQrPoll();\n store.personal.qrGen = (store.personal.qrGen || 0) + 1; // 新轮询代次\n store.personal.qrTimer = setInterval(personalQrPoll, 3000);\n })\n .catch(function (err) {\n toast(err.message || '生成二维码失败', 'error');\n })\n .finally(function () { setBtnLoading($('#personal-qr-btn'), false); });\n }\n\n function personalQrPoll() {\n if (!store.personal.unikey) { personalStopQrPoll(); return; }\n var myGen = store.personal.qrGen; // 本次轮询所属代次,退出后作废\n apiPost('/user/qr/check', { unikey: store.personal.unikey })\n .then(function (data) {\n if (myGen !== store.personal.qrGen) return; // 期间已退出/重开,丢弃迟到响应\n if (data.status !== 200) {\n personalStopQrPoll();\n $('#personal-qr-status').textContent = data.message || '检查登录状态失败';\n $('#personal-qr-status').style.color = 'var(--color-error)';\n return;\n }\n var st = data.data.status;\n if (st === 'waiting') {\n $('#personal-qr-status').textContent = '等待扫码...';\n $('#personal-qr-status').style.color = '';\n } else if (st === 'scanned') {\n $('#personal-qr-status').textContent = '✅ 已扫码,请在手机上确认登录';\n $('#personal-qr-status').style.color = 'var(--color-warning)';\n } else if (st === 'success') {\n personalStopQrPoll();\n // 个人登录 Cookie 保存在本机浏览器;\n // 站点账号登录时后端会同步一份到站点库供管理后台查看(口径对齐)\n if (data.data && data.data.cookie) {\n store.personal.cookie = data.data.cookie;\n try { localStorage.setItem('netease_user_cookie', store.personal.cookie); } catch (e) {}\n } $('#personal-qr-status').textContent = '🎉 登录成功,正在加载你的歌单...';\n $('#personal-qr-status').style.color = 'var(--color-success)';\n toast('登录成功,正在加载你的歌单', 'success');\n personalCheckLogin();\n } else if (st === 'expired') {\n personalStopQrPoll();\n $('#personal-qr-status').textContent = '二维码已过期,请点击「扫码登录我的账号」重新获取';\n $('#personal-qr-status').style.color = 'var(--color-error)';\n } else {\n personalStopQrPoll();\n $('#personal-qr-status').textContent = data.message || '登录状态异常';\n $('#personal-qr-status').style.color = 'var(--color-error)';\n }\n })\n .catch(function (err) {\n personalStopQrPoll();\n $('#personal-qr-status').textContent = err.message || '检查登录状态失败';\n $('#personal-qr-status').style.color = 'var(--color-error)';\n });\n }\n\n function personalLogout() {\n if (!window.confirm('确定要退出登录当前网易云账号吗?\\n退出后需要重新扫码才能查看个人歌单。')) return;\n apiPost('/user/logout', {})\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '退出失败');\n personalStopQrPoll();\n store.personal.qrGen = (store.personal.qrGen || 0) + 1; // 作废在途轮询响应\n store.personal.authed = false;\n store.personal.user = null;\n store.personal.playlists = [];\n store.personal.current = null;\n // 清除本机浏览器的个人 Cookie\n store.personal.cookie = '';\n try { localStorage.removeItem('netease_user_cookie'); } catch (e) {}\n $('#personal-tracks-wrap').hidden = true;\n // 若正在使用个人账号解析,退出后回退全局账号\n if (store.parseAccount === 'user') {\n store.parseAccount = 'admin';\n try { localStorage.setItem('netease_parse_account', 'admin'); } catch (e) {}\n toast('已退出个人账号,解析账号已切换为全局账号', 'warning');\n } else {\n toast('已退出登录', 'success');\n }\n renderPersonalToggle();\n renderAccountBar();\n personalResetGate(false);\n })\n .catch(function (err) {\n toast(err.message || '退出登录失败', 'error');\n });\n }\n\n $('#personal-qr-btn').addEventListener('click', personalQrCreate);\n $('#personal-refresh').addEventListener('click', personalCheckLogin);\n $('#personal-logout').addEventListener('click', personalLogout);\n $('#personal-playlists-refresh').addEventListener('click', personalLoadPlaylists);\n\n // 歌单列表点击查看\n $('#personal-playlists').addEventListener('click', function (e) {\n // 取消收藏按钮的点击不触发\"打开歌单\"(两条无关操作不再同时发生)\n if (e.target.closest('.act-uncollect')) return;\n var btn = e.target.closest('.act-personal-open');\n var row = e.target.closest('.personal-pl');\n if (btn) {\n personalOpenPlaylist(btn.getAttribute('data-id'), btn.getAttribute('data-name'));\n } else if (row) {\n personalOpenPlaylist(row.getAttribute('data-id'), row.getAttribute('data-name'));\n }\n });\n\n $('#personal-download-all').addEventListener('click', function () {\n batchDownloadAll(this, 'personal');\n });\n\n /* ================= 全局账号歌单(管理员 cookie.txt) ================= */\n function globalCheckLogin() {\n apiPost('/global/playlists', {})\n .then(function (data) {\n if (data.status === 401) {\n globalRenderGate(false);\n return;\n }\n if (data.status !== 200) throw new Error(data.message || '获取全局账号歌单失败');\n var d = data.data || {};\n store.global.user = d.user || null;\n store.global.playlists = d.playlists || [];\n $('#global-gate').hidden = true;\n $('#global-content').hidden = false;\n globalRenderUser();\n globalRenderLists();\n })\n .catch(function (err) {\n toast(err.message || '获取全局账号歌单失败', 'error');\n globalRenderGate(false);\n });\n }\n\n function globalRenderGate(hasCookie) {\n $('#global-content').hidden = true;\n $('#global-gate').hidden = false;\n $('#global-refresh').hidden = !hasCookie;\n }\n\n function globalRenderUser() {\n var u = store.global.user || {};\n $('#global-avatar').src = u.avatarUrl || '';\n $('#global-nickname').innerHTML = escapeHtml(u.nickname || '未命名用户') + ' ' + vipBadgeHtml(u.vipType);\n $('#global-signature').textContent = u.signature || '';\n }\n\n function globalLoadPlaylists() {\n apiPost('/global/playlists', {})\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '获取全局账号歌单失败');\n store.global.user = data.data.user || null;\n store.global.playlists = data.data.playlists || [];\n globalRenderUser();\n globalRenderLists();\n })\n .catch(function (err) {\n toast(err.message || '获取全局账号歌单失败', 'error');\n });\n }\n\n /* 歌单行 HTML(isFav 区分「我喜欢的音乐」列表) */\n function globalPlaylistRowHtml(p) {\n var badge = '';\n if (p.specialType === 5) {\n badge = '❤️ 我喜欢的音乐';\n } else if (p.is_own) {\n badge = '我创建的';\n } else {\n badge = '收藏的';\n }\n return '
' +\n '\"\"' +\n '
' +\n '
' + escapeHtml(p.name) + ' ' + badge + '
' +\n '
' + fmtCount(p.trackCount) + ' 首 · 播放 ' + fmtCount(p.playCount) +\n (p.creator ? ' · by ' + escapeHtml(p.creator) : '') + '
' +\n '
' +\n '
' +\n '' +\n '' +\n '
';\n }\n\n function globalRenderLists() {\n var list = store.global.playlists;\n var fav = list.filter(function (p) { return p.specialType === 5; });\n var collect = list.filter(function (p) { return p.specialType !== 5; });\n\n $('#global-fav-count').textContent = '共 ' + fav.length + ' 个';\n $('#global-collect-count').textContent = '共 ' + collect.length + ' 个';\n\n $('#global-fav-playlists').innerHTML = fav.length\n ? fav.map(globalPlaylistRowHtml).join('')\n : '
📂
暂无「我喜欢的音乐」
';\n $('#global-collect-playlists').innerHTML = collect.length\n ? collect.map(globalPlaylistRowHtml).join('')\n : '
📂
暂无收藏的歌单
';\n }\n\n function globalOpenPlaylist(id, name) {\n if (!id) return;\n store.global.current = { id: id, name: name };\n var gen = _collGen('global'); // 迟到响应不得覆盖新打开的歌单\n $('#global-tracks-wrap').hidden = false;\n $('#global-tracks-title').textContent = '歌单歌曲:' + (name || id);\n $('#global-tracks').innerHTML = '
⏳
加载中...
';\n $('#global-play-playlist').hidden = false;\n $('#global-play-playlist').setAttribute('data-id', id);\n $('#global-play-playlist').setAttribute('data-name', name || id);\n window.scrollTo({ top: $('#global-tracks-wrap').offsetTop - 80, behavior: 'smooth' });\n apiPost('/global/playlist', { id: id })\n .then(function (data) {\n if (_collStale('global', gen)) return;\n if (data.status !== 200) throw new Error((data.data && data.data.msg) || data.message || '获取歌单失败');\n globalRenderTracks(data.data.playlist || {});\n })\n .catch(function (err) {\n if (_collStale('global', gen)) return;\n $('#global-tracks').innerHTML = '
❌
' + escapeHtml(err.message || '获取歌单失败') + '
';\n });\n }\n\n function globalRenderTracks(info) {\n var tracks = info.tracks || [];\n // 空列表同样走 renderPagedTracks,清空 tracks_global 状态(同 personal 侧)\n renderPagedTracks('global', tracks, 1);\n }\n\n /* 播放歌单:调用公开播放 API 获取可播放直链,加载第一首进播放器并支持自动连播。\n 端点强制校验 `key`——原实现不带\n key,管理员点「播放」100% 被 401 拒绝。此处先取播放密钥再附带请求。 */\n function globalPlayPlaylist(id, name, btn) {\n if (!id) { toast('缺少歌单 ID', 'warning'); return; }\n var lvl = $('#global-level').value;\n if (lvl === 'auto') lvl = (store.levelsOk && store.levelsOk.length ? store.levelsOk[0] : 'lossless');\n // 代次守卫——行内 ▶ 与底部播放按钮双入口可并发,\n // 迟到旧队列不得覆盖 playQueue(否则连播接着播错歌单的歌)\n store._globalPlayGen = (store._globalPlayGen || 0) + 1;\n var gen = store._globalPlayGen;\n if (btn) setBtnLoading(btn, true, '解析中...');\n apiPost('/admin/site/play_key/get', {}).then(function (kd) {\n if (gen !== store._globalPlayGen) throw new Error('__stale__');\n if (kd.status !== 200) throw new Error(kd.message || '获取播放密钥失败');\n var key = (kd.data || {}).key || '';\n return apiPost('/api/playlist/play', { id: id, level: lvl, limit: 100, key: key });\n }).then(function (data) {\n if (gen !== store._globalPlayGen) return;\n if (data.status !== 200) throw new Error(data.message || '获取播放列表失败');\n var d = data.data || {};\n var tracks = d.tracks || [];\n if (!tracks.length) { toast('该歌单暂无可以播放的歌曲(可能均为版权受限)', 'warning'); return; }\n store.global.playQueue = tracks;\n store.global.playQueueIndex = 0;\n var first = tracks[0];\n initPlayer(first.url || '', first.name || '', first.artists || '', first.picUrl || '');\n toast('✅ 已获取 ' + tracks.length + ' 首可播放歌曲(' + (d.level_name || lvl) + '),请点击播放器 ▶ 开始播放:' + first.name, 'success');\n if (store.global.current && String(store.global.current.id) === String(id)) {\n $('#global-tracks-title').textContent = '歌单歌曲:' + (name || id) + '(播放 API 返回 ' + tracks.length + ' 首可播放)';\n }\n })\n .catch(function (err) {\n if (gen !== store._globalPlayGen || err.message === '__stale__') return;\n toast(err.message || '获取播放列表失败', 'error');\n })\n .finally(function () {\n // 双入口是不同按钮——每个调用无条件复位自己的\n // 按钮(重入计数器配对),否则被作废旧入口的按钮永久卡\"解析中...\"\n if (btn) setBtnLoading(btn, false);\n });\n }\n\n /* ================= 公开播放 API 说明弹窗 ================= */\n function openApiModal(playlistId) {\n var base = (location.origin + location.pathname).replace(/\\/+$/, '');\n var apiUrl = base + '/api/playlist/play';\n var url = apiUrl + '?id=' + encodeURIComponent(playlistId || '');\n // 代次守卫——快速连开两个歌单的 API 弹窗时,迟到响应\n // 不得把复制地址写回旧歌单(复制出去即错链)\n store._apiModalGen = (store._apiModalGen || 0) + 1;\n var gen = store._apiModalGen;\n // 密钥实时取(管理端点仅站点管理员可达),弹窗里的地址总是可直接使用\n apiPost('/admin/site/play_key/get', {}).then(function (d) {\n if (gen !== store._apiModalGen) return; // 迟到响应丢弃\n var key = (d && d.data && d.data.key) || '';\n var withKey = key ? url + '&key=' + encodeURIComponent(key) : url;\n $('#api-url').textContent = withKey;\n $('#api-example').textContent =\n 'curl \"' + withKey + '&level=lossless&limit=100\"\\n' +\n '// POST 表单:id=' + (playlistId || '') + '&level=lossless&limit=100&key=' + key;\n }).catch(function () {\n if (gen !== store._apiModalGen) return;\n $('#api-url').textContent = url;\n });\n openModal('api-modal');\n }\n\n function closeApiModal() { closeModal('api-modal'); }\n\n function copyText(text, tip) {\n if (!text) return;\n function fallback() {\n var ta = document.createElement('textarea');\n ta.value = text;\n ta.style.position = 'fixed';\n ta.style.opacity = '0';\n document.body.appendChild(ta);\n ta.select();\n // execCommand 返回 false 也是失败,不再谎报已复制\n try {\n var ok = document.execCommand('copy');\n if (ok) toast(tip || '已复制', 'success');\n else toast('复制失败,请手动选择文本复制', 'error');\n }\n catch (e) { toast('复制失败,请手动选择文本复制', 'error'); }\n document.body.removeChild(ta);\n }\n if (navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(text).then(function () { toast(tip || '已复制', 'success'); })\n .catch(fallback);\n } else { fallback(); }\n }\n\n $('#global-goto-admin').addEventListener('click', function () { switchTab('admin'); });\n $('#global-refresh').addEventListener('click', globalCheckLogin);\n $('#global-playlists-refresh').addEventListener('click', globalLoadPlaylists);\n $('#global-api-open').addEventListener('click', function () { openApiModal(''); });\n $('#global-play-playlist').addEventListener('click', function () {\n globalPlayPlaylist(this.getAttribute('data-id'), this.getAttribute('data-name'), this);\n });\n $('#global-download-all').addEventListener('click', function () { batchDownloadAll(this, 'global'); });\n\n // 歌单列表点击查看 / 播放 / API(收藏歌单与「我喜欢的音乐」共用)\n function globalPlListClick(e) {\n var btn = e.target.closest('.act-global-play, .act-global-open, .act-global-api');\n var row = e.target.closest('.global-pl');\n var id = btn ? btn.getAttribute('data-id') : (row ? row.getAttribute('data-id') : '');\n var name = btn ? btn.getAttribute('data-name') : (row ? row.getAttribute('data-name') : '');\n if (!id) return;\n if (btn && btn.classList.contains('act-global-play')) {\n globalPlayPlaylist(id, name, btn);\n } else if (btn && btn.classList.contains('act-global-api')) {\n openApiModal(id);\n } else {\n globalOpenPlaylist(id, name);\n }\n }\n $('#global-fav-playlists').addEventListener('click', globalPlListClick);\n $('#global-collect-playlists').addEventListener('click', globalPlListClick);\n\n // 歌单解析结果卡片中的「公开播放 API」入口\n $('#playlist-api-btn').addEventListener('click', function () {\n var c = store.currentCollection;\n openApiModal(c && c.type === 'playlist' ? c.id : '');\n });\n\n $('#api-close').addEventListener('click', closeApiModal);\n $('#api-modal').addEventListener('click', function (e) { if (e.target === this) closeApiModal(); });\n $('#api-copy-url').addEventListener('click', function () { copyText($('#api-url').textContent, '接口地址已复制'); });\n $('#api-copy-example').addEventListener('click', function () { copyText($('#api-example').textContent, '请求示例已复制'); });\n\n /* ================= 收藏功能(个人账号登录后显示) ================= */\n function updateCollectButtons() {\n var show = store.personal.authed;\n var pb = $('#collect-playlist-btn');\n var ab = $('#collect-album-btn');\n if (pb) pb.hidden = !show;\n if (ab) ab.hidden = !show;\n if (show && store.currentCollection) {\n // 已收藏的歌单显示「已收藏」\n var c = store.currentCollection;\n var inList = c.type === 'playlist' && (store.personal.playlists || []).some(function (p) {\n return String(p.id) === String(c.id);\n });\n if (c.type === 'album') {\n // 专辑收藏状态依据本会话收藏结果,不再无条件还原为未收藏\n if (c.albumCollected) {\n $('#collect-album-btn').textContent = '✓ 已收藏专辑';\n $('#collect-album-btn').classList.add('btn-success');\n } else {\n $('#collect-album-btn').textContent = '♡ 收藏专辑';\n $('#collect-album-btn').classList.remove('btn-success');\n }\n } else {\n if (inList) {\n $('#collect-playlist-btn').textContent = '✓ 已收藏';\n $('#collect-playlist-btn').classList.add('btn-success');\n } else {\n $('#collect-playlist-btn').textContent = '♡ 收藏歌单';\n $('#collect-playlist-btn').classList.remove('btn-success');\n }\n }\n }\n }\n\n function collectTarget(type, id, action) {\n if (!store.personal.authed || !store.personal.cookie) {\n toast('请先在「个人歌单」扫码登录你的账号', 'warning');\n switchTab('personal');\n return;\n }\n var tip = action === 1 ? '收藏' : '取消收藏';\n apiPost('/user/collect', {\n id: id, type: type, action: action,\n user_cookie: store.personal.cookie\n })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || tip + '失败');\n toast(action === 1 ? '✅ 已收藏到你的个人歌单' : '已取消收藏', 'success');\n // 专辑收藏结果记入 currentCollection,供 updateCollectButtons 正确渲染\n if (store.currentCollection && String(store.currentCollection.id) === String(id)) {\n store.currentCollection.albumCollected = (type === 'album' && action === 1);\n }\n // 按钮状态即时更新\n var btn = type === 'album' ? $('#collect-album-btn') : $('#collect-playlist-btn');\n if (btn) {\n if (action === 1) {\n btn.textContent = type === 'album' ? '✓ 已收藏专辑' : '✓ 已收藏';\n btn.classList.add('btn-success');\n } else {\n btn.textContent = type === 'album' ? '♡ 收藏专辑' : '♡ 收藏歌单';\n btn.classList.remove('btn-success');\n }\n }\n // 收藏后自动刷新个人歌单\n if (store.personal.authed) personalLoadPlaylists();\n updateCollectButtons();\n })\n .catch(function (err) {\n toast(err.message || tip + '失败', 'error');\n });\n }\n\n $('#collect-playlist-btn').addEventListener('click', function () {\n if (store.currentCollection) {\n var inList = (store.personal.playlists || []).some(function (p) {\n return String(p.id) === String(store.currentCollection.id);\n });\n collectTarget('playlist', store.currentCollection.id, inList ? 2 : 1);\n }\n });\n $('#collect-album-btn').addEventListener('click', function () {\n if (store.currentCollection) collectTarget('album', store.currentCollection.id, 1);\n });\n\n /* ================= 列表内按钮事件委托 ================= */\n document.addEventListener('click', function (e) {\n var parseBtn = e.target.closest('.act-parse');\n if (parseBtn) {\n parseSongById(parseBtn.getAttribute('data-id'), parseBtn.getAttribute('data-name'));\n return;\n }\n var dlBtn = e.target.closest('.act-download');\n if (dlBtn) {\n downloadSong(dlBtn.getAttribute('data-id'), dlBtn.getAttribute('data-name'));\n return;\n }\n var gp = e.target.closest('.act-goto-playlist');\n if (gp) { loadPlaylistById(gp.getAttribute('data-id'), gp.getAttribute('data-name')); return; }\n var ga = e.target.closest('.act-goto-album');\n if (ga) { loadAlbumById(ga.getAttribute('data-id'), ga.getAttribute('data-name')); return; }\n var gs = e.target.closest('.act-goto-artist');\n if (gs) { loadArtistById(gs.getAttribute('data-id'), gs.getAttribute('data-name')); return; }\n var unc = e.target.closest('.act-uncollect');\n if (unc) {\n collectTarget('playlist', unc.getAttribute('data-id'), 2);\n return;\n }\n });\n\n /* ================= 批量下载 ================= */\n /* 次数不足时的选择框:仅下载前 credits 首 / 取消 */\n function confirmPartialDownload(need, credits, cb) {\n // 先移除残留实例——连点两次下载会叠两个弹窗,$('#cpd-ok')\n // 永远命中第一个,第二个弹窗按钮失效(遮罩还盖着页面)\n var old = document.querySelector('.modal-mask[data-dynamic=\"1\"].show');\n if (old) old.remove();\n var mask = document.createElement('div');\n mask.className = 'modal-mask show';\n mask.setAttribute('data-dynamic', '1'); // Escape 关闭时连同 DOM 一并移除\n mask.innerHTML =\n '
' +\n '
⏳ 下载次数不足
' +\n '
' +\n ' 本次共需 ' + need + ' 次下载,您的剩余次数为 ' + credits + ' 次。
' +\n ' 可选择仅下载前 ' + credits + ' 首,或取消下载后前往充值。' +\n '
' +\n '
' +\n ' ' +\n ' ' +\n '
' +\n '
';\n document.body.appendChild(mask);\n mask.addEventListener('click', function (e) { if (e.target === mask) { mask.remove(); cb(false); } });\n $('#cpd-ok').addEventListener('click', function () { mask.remove(); cb(true); });\n $('#cpd-cancel').addEventListener('click', function () { mask.remove(); cb(false); });\n }\n\n function checkDownloadQuota(list, btn, cb) {\n /* 返回 true 表示次数充足直接继续;不足时弹选择框后按结果回调截断列表 */\n var credits = (window.getSITECredits && window.getSITECredits()) || 0;\n if (credits < 0) { if (window.handleAuthExpired) window.handleAuthExpired(); cb(null); return; }\n if (list.length <= credits) { cb(list); return; }\n if (credits <= 0) { if (window.handleAuthExpired) window.handleAuthExpired('', true); cb(null); return; }\n setBtnLoading(btn, false);\n confirmPartialDownload(list.length, credits, function (ok) {\n cb(ok ? list.slice(0, credits) : null);\n });\n }\n\n function batchDownload(btn, tracks, _prechecked) {\n // 入口按 ID 去重(服务端同样去重计费,预检与实际口径一致)\n var seen = {};\n var list = (tracks || []).filter(function (t) {\n if (!t || !t.id || seen[t.id]) return false;\n seen[t.id] = true;\n return true;\n });\n if (!list.length) { toast('暂无可以下载的歌曲', 'warning'); return; }\n if (!cookieGate()) { setBtnLoading(btn, false); return; }\n if (!_prechecked) {\n checkDownloadQuota(list, btn, function (allowed) {\n if (allowed) batchDownload(btn, allowed, true);\n });\n return;\n }\n\n // 批量 ZIP 打包模式(后台任务:提交即返回 task_id,任务面板显示进度/取消,完成后自动下载)\n if (store.settings.batchZip) {\n setBtnLoading(btn, true, '打包中...');\n var cfg = downloadConfig();\n // 批量模式的元数据字段跟随\"批量写入\"开关,不受单曲开关影响\n //(原实现单曲关闭时这里会提交 __none__,批量开启也写不进任何字段)\n var batchFields = Object.keys(store.settings.metaFields).filter(function (k) {\n return store.settings.metaFields[k];\n });\n var batchMetaFields = store.settings.batchWriteMeta && batchFields.length\n ? batchFields.join(',') : '__none__';\n var lvl = $('#global-level').value;\n if (lvl === 'auto') lvl = (store.levelsOk && store.levelsOk[0]) || 'lossless';\n var ids = list.map(function (t) { return t.id; }).join(',');\n var taskId = genTaskId();\n apiPost('/download/batch_zip', {\n ids: ids,\n quality: lvl,\n task_id: taskId,\n device_id: getDeviceId(),\n account: store.parseAccount,\n user_cookie: store.parseAccount === 'user' ? store.personal.cookie : '',\n filename_format: cfg.filename_format,\n write_meta: store.settings.batchWriteMeta ? 'true' : 'false',\n meta_fields: batchMetaFields,\n lyric_format: cfg.lyric_format\n }).then(function (data) {\n setBtnLoading(btn, false);\n if (data.status !== 200) {\n toast(data.message || '批量打包提交失败', 'error');\n return;\n }\n addTask({\n id: taskId, type: 'batch',\n label: '批量打包 · ' + list.length + ' 首',\n total: list.length, done: 0, status: 'queued'\n });\n if (window.refreshSITECredits) window.refreshSITECredits(); // 立即同步顶栏剩余次数\n }).catch(function () {\n setBtnLoading(btn, false);\n toast('批量打包提交失败,请检查网络', 'error');\n });\n return;\n }\n\n // 逐个下载\n setBtnLoading(btn, true, '批量下载中...');\n var i = 0, okCount = 0, failCount = 0, unknownCount = 0; // 逐首结果如实汇总\n function next() {\n if (i >= list.length) {\n setBtnLoading(btn, false);\n var parts = [];\n if (okCount) parts.push('成功 ' + okCount + ' 首');\n if (failCount) parts.push('失败 ' + failCount + ' 首');\n if (unknownCount) parts.push(unknownCount + ' 首结果未知(任务过期,请到任务面板重试)');\n if (failCount && !okCount && !unknownCount) toast('批量下载全部失败(' + failCount + ' 首)', 'error');\n else if (failCount || unknownCount) toast('批量下载结束:' + parts.join(','), 'warning');\n else toast('批量下载完成,共 ' + list.length + ' 首', 'success');\n return;\n }\n var song = list[i];\n toast('正在下载:' + (song.name || song.id) + '(' + (i + 1) + '/' + list.length + ')', 'info');\n downloadOne(song, function (success) {\n i++;\n if (success === false) failCount++;\n else if (success === 'unknown') unknownCount++;\n else okCount++;\n next();\n });\n }\n next();\n }\n\n function downloadOne(song, done) {\n if (!cookieGate()) { done(); return; }\n apiResolveLevel(song.id)\n .then(function (level) {\n var cfg = downloadConfig();\n // 逐首分支的元数据字段同样跟随批量开关(与 ZIP 分支同口径)\n var oneFields = Object.keys(store.settings.metaFields).filter(function (k) {\n return store.settings.metaFields[k];\n });\n var oneMetaFields = store.settings.batchWriteMeta && oneFields.length\n ? oneFields.join(',') : '__none__';\n var taskId = genTaskId();\n apiPost('/download', {\n id: song.id,\n quality: level,\n task_id: taskId,\n device_id: getDeviceId(),\n account: store.parseAccount,\n user_cookie: store.parseAccount === 'user' ? store.personal.cookie : '',\n filename_format: cfg.filename_format,\n write_meta: store.settings.batchWriteMeta ? 'true' : 'false',\n meta_fields: oneMetaFields,\n lyric_format: cfg.lyric_format,\n zip: cfg.zip\n }).then(function (data) {\n if (data.status === 401 && store.parseAccount === 'user') {\n store.parseAccount = 'admin';\n try { localStorage.setItem('netease_parse_account', 'admin'); } catch (e) {}\n renderAccountBar();\n renderPersonalToggle();\n toast('个人账号未登录,已自动切换为全局账号下载', 'warning');\n downloadOne(song, done);\n return;\n }\n if (data.status !== 200) {\n toast(data.message || ('下载失败:' + (song.name || song.id)), 'error');\n done(false); // 提交失败如实计为失败\n return;\n }\n // 任务加入悬浮窗;完成后自动下载该文件并继续下一首\n addTask({\n id: taskId, type: 'single',\n label: '单曲 · ' + (song.name || song.id),\n total: 1, done: 0, status: 'queued',\n doneCb: function (success) { done(success); } // 透传 true/false/'unknown'\n });\n if (window.refreshSITECredits) window.refreshSITECredits(); // 立即同步顶栏剩余次数\n }).catch(function () {\n toast('下载提交失败:' + (song.name || song.id), 'error');\n done(false);\n });\n })\n .catch(function () { toast('下载失败:' + (song.name || song.id), 'error'); done(false); });\n }\n\n /* 批量下载全部歌曲(从 state 中的完整列表取,不分页) */\n function batchDownloadAll(btn, prefix) {\n var tracks = (store['tracks_' + prefix] || []).map(function (t) {\n return { id: t.id, name: t.name };\n });\n batchDownload(btn, tracks);\n }\n $('#playlist-download-all').addEventListener('click', function () { batchDownloadAll(this, 'playlist'); });\n $('#album-download-all').addEventListener('click', function () { batchDownloadAll(this, 'album'); });\n $('#artist-download-all').addEventListener('click', function () { batchDownloadAll(this, 'artist'); });\n\n /* ================= 下载按钮(单曲详情) ================= */\n $('#detail-download').addEventListener('click', function () {\n if (!store.currentSong) return;\n downloadSong(store.currentSong.id, store.currentSong.name);\n });\n\n /* ================= 美化增强(纯观感,防御式,不影响任何功能) ================= */\n // 顶栏滚动感知:页面下滑后加深顶栏阴影与发丝线\n try {\n var _hdr = document.querySelector('.app-header');\n if (_hdr) {\n var _hdrScroll = function () {\n if (window.scrollY > 8) _hdr.classList.add('scrolled');\n else _hdr.classList.remove('scrolled');\n };\n window.addEventListener('scroll', _hdrScroll, { passive: true });\n _hdrScroll();\n }\n } catch (e) {}\n // 播放态光晕:audio 播放/暂停时给播放器挂 .playing(media 事件不冒泡,用捕获)\n try {\n document.addEventListener('play', function (e) {\n if (e.target && e.target.tagName === 'AUDIO') {\n var p = $('#player');\n if (p) p.classList.add('playing');\n }\n }, true);\n document.addEventListener('pause', function (e) {\n if (e.target && e.target.tagName === 'AUDIO') {\n var p = $('#player');\n if (p) p.classList.remove('playing');\n }\n }, true);\n } catch (e) {}\n // 弹窗/抽屉打开时锁定背景滚动(防移动端滚动穿透;监听 class 变化,避开 rAF 高频 style 写入)\n // 同时挂 body.overlay-open 类:隐藏实时排队/任务面板浮窗(它们 z-index 高于弹层,\n // 否则会盖住设置抽屉/弹窗内容——owner 实测报障)\n try {\n var _scrollLockMO = new MutationObserver(function () {\n var locked = document.querySelector('.modal-mask.show, .drawer.show');\n document.body.style.overflow = locked ? 'hidden' : '';\n // 状态类挂 而非 :本观察器监听 body 子树的 class 变化,\n // 回调若改 body 自身 class 会形成自反馈,真实鼠标输入下引发渲染器活锁(实测卡死)\n if (locked) document.documentElement.classList.add('overlay-open');\n else document.documentElement.classList.remove('overlay-open');\n });\n _scrollLockMO.observe(document.body, { attributes: true, attributeFilter: ['class'], subtree: true });\n } catch (e) {}\n // 删除注册四框的 Enter→提交冗余绑定——site_auth.js:988 已对\n // 全部四框绑 Enter→doRegister,此处旧绑定只挂 #reg-code,两处叠加导致\n // 一次回车 doRegister 执行两次(第二请求被验证码原子消费挡下但报错闪烁)\n // 播放器缓冲预览:进度条底层显示已缓冲长度(CSS 变量 --buffered,纯读取 audio.buffered,不改播放逻辑)\n try {\n var _updBuf = function (a) {\n var p = document.getElementById('player-progress');\n if (!p) return;\n if (!a || !a.duration || !a.buffered || !a.buffered.length) {\n p.style.setProperty('--buffered', '0%'); return;\n }\n var end = a.buffered.end(a.buffered.length - 1);\n p.style.setProperty('--buffered', Math.min(100, end / a.duration * 100) + '%');\n };\n document.addEventListener('progress', function (e) {\n if (e.target && e.target.tagName === 'AUDIO') _updBuf(e.target);\n }, true);\n ['timeupdate', 'loadstart', 'emptied'].forEach(function (ev) {\n document.addEventListener(ev, function (e) {\n if (e.target && e.target.tagName === 'AUDIO' && ev !== 'timeupdate') _updBuf(null);\n else if (e.target && e.target.tagName === 'AUDIO') _updBuf(e.target);\n }, true);\n });\n } catch (e) {}\n // 键盘快捷键:空格 播放/暂停、←/→ 快退/快进 5 秒(输入框聚焦时不拦截)\n try {\n document.addEventListener('keydown', function (e) {\n var t = e.target;\n // 排除输入控件与可点击元素(BUTTON/A/[role=button]):空格在按钮上的默认行为是\"按下按钮\",\n // 不能被快捷键抢占,否则键盘用户聚焦按钮后按空格会变成切歌\n if (t && (t.tagName === 'INPUT' || t.tagName === 'TEXTAREA' || t.tagName === 'SELECT' ||\n t.tagName === 'BUTTON' || t.tagName === 'A' || t.isContentEditable ||\n t.getAttribute && t.getAttribute('role') === 'button')) return;\n if (e.key !== ' ' && e.key !== 'ArrowLeft' && e.key !== 'ArrowRight') return;\n var audio = document.querySelector('#player audio');\n if (!audio || !audio.src) return;\n if (e.key === ' ') {\n e.preventDefault();\n var b = document.getElementById('player-toggle');\n if (b) b.click();\n } else if (e.key === 'ArrowLeft') {\n e.preventDefault();\n audio.currentTime = Math.max(0, audio.currentTime - 5);\n } else {\n e.preventDefault();\n audio.currentTime = Math.min(audio.duration || Infinity, audio.currentTime + 5);\n }\n });\n } catch (e) {}\n // 播放时标签页标题显示当前内容,暂停/停止恢复站名\n try {\n var _baseTitle = document.title;\n var _nowName = function (t) {\n var name = '';\n if (t && t.id === 'podcast-audio') {\n var pn = document.getElementById('podcast-program-name');\n name = pn ? pn.textContent : '';\n } else {\n var n = document.getElementById('player-name');\n name = n ? n.textContent : '';\n }\n return name;\n };\n document.addEventListener('play', function (e) {\n if (!e.target || e.target.tagName !== 'AUDIO') return;\n var nm = _nowName(e.target);\n document.title = nm ? '▶ ' + nm + ' - ' + _baseTitle : _baseTitle;\n }, true);\n document.addEventListener('pause', function (e) {\n if (!e.target || e.target.tagName !== 'AUDIO') return;\n document.title = _baseTitle;\n }, true);\n } catch (e) {}\n // 兼容层 v9+(2026-09-19):① 极老内核(IE/360 兼容模式等,无 fetch)阻断提示;\n // ② 键盘导航焦点环 polyfill(:focus-visible 需 Chromium 86+,老内核由 Tab 键挂类激活)\n try {\n (function () {\n var uaL = (navigator.userAgent || '');\n var isTrident = /MSIE|Trident\\//.test(uaL);\n var isTooOld = !window.fetch || !window.Promise || !document.addEventListener;\n if (isTrident || isTooOld) {\n var el = document.getElementById('legacy-browser-blocker');\n if (el) el.className = 'show';\n var pl = document.getElementById('page-loading');\n if (pl) pl.style.display = 'none';\n try { document.documentElement.style.background = '#1f2329'; } catch (e2) {}\n return; // 阻断页已接管,不再执行后续增强逻辑\n }\n // 键盘焦点环:Tab 导航时挂 kbd-nav 类(激活 :focus 规则),鼠标按下时移除\n document.addEventListener('keydown', function (e) {\n if ((e.key === 'Tab' || e.keyCode === 9) &&\n !document.documentElement.className.match(/\\bkbd-nav\\b/)) {\n document.documentElement.className += ' kbd-nav';\n }\n }, true);\n document.addEventListener('mousedown', function () {\n document.documentElement.className =\n document.documentElement.className.replace(/\\s*kbd-nav\\b/, '');\n }, true);\n })();\n } catch (e) {}\n // 微信/QQ 内置浏览器:显示下载受限引导条 + 点击下载按钮时 toast 提醒(不拦截下载本身)\n // v9+ 扩展:支付宝/钉钉/微博/企业微信等 App 内置浏览器同样提示(企业微信 UA 含 MicroMessenger 自动覆盖)\n try {\n var _ua = navigator.userAgent || '';\n var _inWeChat = _ua.indexOf('MicroMessenger') !== -1;\n var _inQQWV = _ua.indexOf(' QQ/') !== -1 && _ua.indexOf('MQQBrowser') === -1;\n var _otherAppWV = /AlipayClient|DingTalk|Weibo|HeyTapBrowser|HiSpace|HMSCore/.test(_ua);\n if (_inWeChat || _inQQWV || _otherAppWV) {\n var _seen = false;\n try { _seen = sessionStorage.getItem('netease_wv_guide_closed') === '1'; } catch (e2) {}\n var _guide = document.getElementById('webview-guide');\n if (_guide && !_seen) {\n if (_otherAppWV && !_inWeChat && !_inQQWV) {\n var _wgText = _guide.querySelector('.wg-text');\n if (_wgText) _wgText.innerHTML = '💬 当前在 App 内置浏览器中,音乐下载可能受限。建议复制链接到系统浏览器打开,获得完整体验。';\n }\n _guide.hidden = false;\n }\n var _gclose = document.getElementById('webview-guide-close');\n if (_gclose) _gclose.addEventListener('click', function () {\n var g = document.getElementById('webview-guide');\n if (g) g.hidden = true;\n try { sessionStorage.setItem('netease_wv_guide_closed', '1'); } catch (e2) {}\n });\n document.addEventListener('click', function (e) {\n var btn = e.target && e.target.closest ? e.target.closest('button, a') : null;\n if (!btn) return;\n var sig = ((btn.id || '') + ' ' + (btn.className || '')).toLowerCase();\n var txt = btn.textContent || '';\n if (/download|zip/.test(sig) || txt.indexOf('⬇') !== -1 || txt.indexOf('下载') !== -1 || txt.indexOf('打包') !== -1) {\n toast((_inWeChat || _inQQWV)\n ? '微信/QQ 内置浏览器可能无法下载文件,建议点右上角「···」→「在浏览器中打开」'\n : '当前 App 内置浏览器可能无法下载文件,建议复制链接到系统浏览器打开', 'warning');\n }\n }, true);\n }\n } catch (e) {}\n // 前端错误日志上报:JS 运行错误 / Promise 拒绝 / 资源加载失败 → /api/fe_error\n // 用于排查老内核浏览器\"API 行为不一致 / 样式错位\"类问题。去重 + 限频,任何异常静默。\n try {\n var _feSeen = {};\n var _feCount = 0;\n var _feSend = function (type, msg, stack) {\n try {\n if (_feCount >= 8) return; // 单会话最多 8 条\n var key = type + '|' + msg;\n if (_feSeen[key]) return; // 同一错误只报一次\n _feSeen[key] = 1;\n _feCount++;\n var body = new URLSearchParams({\n type: type, msg: msg, stack: stack || '',\n page: location.href.slice(0, 120),\n env: (navigator.userAgent || '').slice(0, 180) +\n ' | ' + window.innerWidth + 'x' + window.innerHeight +\n ' | dpr' + (window.devicePixelRatio || 1)\n });\n if (navigator.sendBeacon) {\n navigator.sendBeacon('/api/fe_error', body);\n } else {\n fetch('/api/fe_error', { method: 'POST', body: body, keepalive: true })\n .catch(function () {});\n }\n } catch (e) {}\n };\n window.addEventListener('error', function (e) {\n // 资源错误只报静态资源(IMG/SCRIPT/LINK);AUDIO 的加载错误多为\n // 流媒体 seek 时的瞬时抖动,用户在播放器上即可感知,上报只会产生噪音\n if (e.target && e.target !== window && (e.target.tagName === 'IMG' || e.target.tagName === 'SCRIPT' || e.target.tagName === 'LINK')) {\n // 空 src 的占位封面(初始 src=\"\")在部分内核触发 error 事件且\n // src 属性解析为页面 URL,属噪音(实测曾占满上报通道),跳过\n if (e.target.tagName === 'IMG' && !(e.target.getAttribute('src') || '').trim()) return;\n _feSend('resource', (e.target.tagName || '') + ' 加载失败: ' + ((e.target.src || e.target.href || '').slice(-80)));\n return;\n }\n _feSend('error', e.message || '未知错误', (e.filename || '') + ':' + (e.lineno || 0));\n }, true);\n window.addEventListener('unhandledrejection', function (e) {\n var r = e.reason;\n _feSend('promise', (r && (r.message || String(r))) || '未处理的 Promise 拒绝',\n (r && r.stack ? String(r.stack).slice(0, 300) : ''));\n });\n } catch (e) {}\n // 键盘可达性:Tab 页签可用 Tab 键聚焦、回车激活(Enter 触发既有点击处理,零逻辑改动)\n try {\n $$('#tabs .tab').forEach(function (t) {\n t.setAttribute('tabindex', '0');\n t.setAttribute('role', 'button');\n t.addEventListener('keydown', function (e) {\n if (e.key === 'Enter') { e.preventDefault(); t.click(); }\n });\n });\n } catch (e) {}\n\n /* ================= 初始化 ================= */\n // 全局音质:恢复上次选择(默认最高音质自动)\n var VALID_LEVELS = ['auto', 'jymaster', 'jyeffect', 'sky', 'hires', 'lossless', 'exhigh', 'standard', 'dolby'];\n try {\n var savedLevel = localStorage.getItem('netease_global_level');\n if (savedLevel && VALID_LEVELS.indexOf(savedLevel) !== -1) $('#global-level').value = savedLevel;\n } catch (e) {}\n $('#global-level').addEventListener('change', function () {\n try { localStorage.setItem('netease_global_level', $('#global-level').value); } catch (e) {}\n });\n $('#quality-save').addEventListener('click', function () {\n try { localStorage.setItem('netease_global_level', $('#global-level').value); } catch (e) {}\n toast('全局音质已保存:' + levelName($('#global-level').value), 'success');\n });\n\n // 解析账号:恢复上次选择(admin 全局 / user 个人)\n try {\n var savedAccount = localStorage.getItem('netease_parse_account');\n if (savedAccount === 'user' || savedAccount === 'admin') store.parseAccount = savedAccount;\n } catch (e) {}\n // 个人登录 Cookie:仅保存在本机浏览器\n try {\n var savedUserCookie = localStorage.getItem('netease_user_cookie');\n if (savedUserCookie) store.personal.cookie = savedUserCookie;\n } catch (e) {}\n renderAccountBar();\n\n loadSettings();\n applyLyricFont(); // 启动即应用持久化的歌词字号(CSS 变量挂 #lyric-box,重绘不丢)\n renderSettingsUI();\n applyTheme();\n renderHistory();\n\n // 重新打开网站:找回本设备未结束的下载任务(断线自动恢复,接着下载)\n // 登录后才会调用(游客请求该接口会 401 并误弹登录框);\n // 登录成功由 site_auth 的 afterAuth 回调再触发一次\n window.SITE_TASKS_BOOTSTRAP = loadMyTasks;\n // 站点退出时连带清除个人网易云登录——共享电脑场景下,\n // 下一位使用者不得沿用前一人的网易云身份(发评/收藏/看歌单)。\n // 清理强度与 personalLogout 对齐(对抗复审):作废在途轮询(防 Cookie 写回)、\n // 清个人面板数据与展示(防下一位用户闪现上一人的头像/歌单)\n window.SITE_ON_LOGOUT = function () {\n try { localStorage.removeItem('netease_user_cookie'); } catch (e) {}\n personalStopQrPoll();\n store.personal.qrGen = (store.personal.qrGen || 0) + 1;\n store.personal.authed = false;\n store.personal.user = null;\n store.personal.playlists = [];\n store.personal.current = null;\n store.personal.cookie = '';\n var _ptw = $('#personal-tracks-wrap');\n if (_ptw) _ptw.hidden = true;\n if (store.parseAccount === 'user') {\n store.parseAccount = 'admin';\n try { localStorage.setItem('netease_parse_account', 'admin'); } catch (e) {}\n } else {\n try { localStorage.removeItem('netease_parse_account'); } catch (e) {}\n }\n renderPersonalToggle();\n personalResetGate(false);\n renderAccountBar();\n };\n if (window.SITE_LOGGED_IN) loadMyTasks();\n\n // 新用户首次访问:弹出隐私与协议同意\n if (!store.settings.cookiePrefs.accepted) {\n setTimeout(function () {\n openCookieModal();\n toast('首次使用请阅读并同意《用户协议》与《隐私政策》', 'info');\n }, 600);\n }\n\n /* ================= 实时排队 / 预计等待 悬浮框 ================= */\n function formatWaitTime(sec) {\n if (sec == null || !isFinite(sec) || sec <= 0) return '--';\n if (sec < 60) return '约 ' + Math.max(1, Math.round(sec)) + ' 秒';\n if (sec < 3600) return '约 ' + Math.ceil(sec / 60) + ' 分钟';\n return '约 ' + (sec / 3600).toFixed(1) + ' 小时';\n }\n function loadQueue() {\n apiPost('/api/queue', {})\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '获取排队状态失败');\n var d = data.data || {};\n var waiting = (d.batch_waiting || 0) + (d.download_waiting || 0);\n $('#queue-num').textContent = waiting;\n $('#queue-download').textContent =\n (d.download_active || 0) + '/' + (d.download_capacity || '-');\n $('#queue-batch').textContent =\n (d.batch_active || 0) + '/' + (d.batch_capacity || '-');\n // 预计等待 ≈ 批量排队人数 × 平均每批耗时\n var avg = d.avg_batch_seconds;\n var est = avg ? (d.batch_waiting || 0) * avg : null;\n $('#queue-est').textContent = '预计等待:' + formatWaitTime(est);\n $('#queue-float').classList.toggle('busy', waiting > 0);\n })\n .catch(function () { /* 拉取失败保持原状,不打扰用户 */ });\n }\n loadQueue();\n setInterval(loadQueue, 3000);\n\n /* ================= 下载任务悬浮窗(批量打包 + 单曲下载,可取消) ================= */\n function getDeviceId() {\n var key = 'netease_device_id';\n // 页面内存缓存兜底——localStorage 不可写时,同一页面内标识保持稳定,\n // 心跳/任务归属不再每次漂移\n if (window.__deviceIdCache) return window.__deviceIdCache;\n var id = null;\n try { id = localStorage.getItem(key); } catch (e) {}\n if (!id) {\n id = 'd' + Date.now().toString(36) + Math.random().toString(36).slice(2, 12);\n try { localStorage.setItem(key, id); } catch (e) {}\n }\n window.__deviceIdCache = id;\n return id;\n }\n function genTaskId() {\n return 'u' + Date.now().toString(36) + Math.random().toString(36).slice(2, 8);\n }\n function fmtDur(sec) {\n if (sec == null || !isFinite(sec) || sec <= 0) return '--';\n sec = Math.max(0, Math.round(sec));\n var h = Math.floor(sec / 3600), m = Math.floor((sec % 3600) / 60), s = sec % 60;\n if (h > 0) return h + ':' + String(m).padStart(2, '0') + ':' + String(s).padStart(2, '0');\n return String(m).padStart(2, '0') + ':' + String(s).padStart(2, '0');\n }\n var tasks = []; // {id, type, label, total, done, status, statusText, doneCb}\n var taskPollTimer = null;\n\n function addTask(task) {\n tasks.push(task);\n renderTaskPanel();\n $('#task-panel').classList.add('show');\n if (!taskPollTimer) taskPollTimer = setInterval(pollTasks, 1500);\n pollTasks();\n }\n function renderTaskPanel() {\n var list = $('#task-list');\n $('#task-count').textContent = tasks.length;\n list.innerHTML = tasks.map(function (t) {\n var pct;\n if (t.status === 'done') pct = 100;\n else if (t.status === 'running' && typeof t.livePct === 'number')\n pct = Math.max(1, Math.min(99, Math.round(t.livePct))); // 服务端实时百分比(单曲为字节级)\n else pct = (t.total ? Math.round((t.done || 0) / t.total * 100) : 0);\n var statusText = t.statusText || (\n t.status === 'done' ? '完成' :\n t.status === 'error' ? '失败' :\n t.status === 'canceled' ? '已取消' :\n t.status === 'paused' ? '已暂停' : (pct + '%')\n );\n var bar = (t.status === 'done' || t.status === 'error' || t.status === 'canceled')\n ? '' : '
';\n var cancelBtn = (t.status === 'queued' || t.status === 'running' || t.status === 'paused')\n ? '' : '';\n // 已交付条目:领取(35 分钟保留期内可重复下载)+ 手动移除\n var claimBtn = t.claimable\n ? '' : '';\n var dismissBtn = t.claimable\n ? '' : '';\n // 任务 ID 一律转义后再进属性(防属性注入)\n return '
' +\n '
' +\n '' + escapeHtml(t.label) + '' +\n '' + escapeHtml(statusText) + '' +\n cancelBtn + claimBtn + dismissBtn +\n '
' + bar + '
';\n }).join('') || '
暂无任务
';\n $$('#task-list .task-item-cancel').forEach(function (btn) {\n btn.addEventListener('click', function () { cancelTask(btn.getAttribute('data-id')); });\n });\n $$('#task-list .task-item-claim').forEach(function (btn) {\n btn.addEventListener('click', function () { claimTask(btn.getAttribute('data-id')); });\n });\n $$('#task-list .task-item-dismiss').forEach(function (btn) {\n btn.addEventListener('click', function () {\n var id = btn.getAttribute('data-id');\n tasks = tasks.filter(function (t) { return t.id !== id; });\n renderTaskPanel();\n if (!tasks.length) $('#task-panel').classList.remove('show');\n });\n });\n }\n var _pollBusy = false; // 在途锁——15s 超时下轮询响应重叠时,同一终态会弹两次 toast\n function pollTasks() {\n if (_pollBusy) return;\n var active = tasks.filter(function (t) {\n return t.status === 'queued' || t.status === 'running' || t.status === 'paused';\n });\n if (!active.length) {\n if (taskPollTimer) { clearInterval(taskPollTimer); taskPollTimer = null; }\n return;\n }\n _pollBusy = true;\n var doneCount = 0;\n function _pollDone() { doneCount++; if (doneCount >= active.length) _pollBusy = false; }\n active.forEach(function (t) {\n apiPost('/api/batch_progress', { task_id: t.id })\n .then(function (data) {\n if (data.status === 404) {\n // 任务已被服务端清理(过期):只收尾一次(404 重叠不再重复推进队列)\n if (t._gone) return;\n t._gone = true;\n toast('任务已过期:' + t.label, 'info');\n removeTaskLater(t.id, 500);\n renderTaskPanel();\n // 过期=交付结果未知,明确以 'unknown' 传给逐首队列(不再虚报成功)\n if (typeof t.doneCb === 'function') { t.doneCb('unknown'); }\n return;\n }\n if (data.status !== 200) return;\n var d = data.data || {};\n // 陈旧响应不得把终态任务拉回运行中(以 _done/_ended 为准);\n // total 同步服务端(播客总数解析后进度条口径一致)\n if (t._done || t._ended) return;\n t.done = d.done || 0;\n if (typeof d.total === 'number' && d.total > 0) t.total = d.total;\n if (d.status === 'running') {\n t.status = 'running';\n var pct = Math.round(d.percent || 0);\n t.livePct = (typeof d.percent === 'number') ? d.percent : t.livePct; // 进度条实时化\n t.statusText = pct + '%' + (d.eta ? ' · 剩' + fmtDur(d.eta) : '');\n t.statusText += (d.failed ? ' · 失败' + d.failed : '');\n } else {\n t.status = d.status || t.status;\n t.statusText = d.msg || d.status;\n }\n if (d.status === 'done') {\n if (d.refunded > 0) {\n t.statusText = (t.statusText || '完成') + ' · 已退回 ' + d.refunded + ' 次';\n toast('任务完成:' + t.label + ',失败部分已退回 ' + d.refunded + ' 次下载次数', 'info');\n }\n if (window.refreshSITECredits) window.refreshSITECredits(); // 同步顶栏次数(含退费)\n onTaskDone(t);\n }\n else if (d.status === 'error') {\n t._ended = true;\n toast('下载失败:' + t.label + (d.msg ? '(' + d.msg + ')' : ''), 'error');\n if (window.refreshSITECredits) window.refreshSITECredits(); // 同步顶栏次数(含退费)\n // 失败但已有部分成果(has_result)→ 照常领取;\n // 逐首队列的回调也要推进并如实报失败(原实现 error/canceled 不调 doneCb,队列卡死)\n if (d.has_result) { onTaskDone(t); }\n else if (typeof t.doneCb === 'function') { t.doneCb(false); removeTaskLater(t.id, 8000); }\n else removeTaskLater(t.id, 8000);\n } else if (d.status === 'canceled') {\n t._ended = true;\n if (window.refreshSITECredits) window.refreshSITECredits(); // 同步顶栏次数(含退费)\n toast('已取消:' + t.label, 'info');\n if (d.has_result) { onTaskDone(t); }\n else if (typeof t.doneCb === 'function') { t.doneCb(false); removeTaskLater(t.id, 2500); }\n else removeTaskLater(t.id, 2500);\n }\n renderTaskPanel();\n })\n .catch(function () {})\n .then(function () { _pollDone(); }); // 链尾统一释放(成功/失败各恰一次)\n });\n }\n // 触发结果文件下载(单曲走 /download/result,批量走 /download/batch_zip/result)\n function triggerTaskDownload(t) {\n var url = (t.type === 'batch' ? '/download/batch_zip/result' : '/download/result') +\n '?task_id=' + encodeURIComponent(t.id) +\n '&device_id=' + encodeURIComponent(getDeviceId());\n var a = document.createElement('a');\n a.href = url;\n a.download = '';\n document.body.appendChild(a);\n a.click();\n document.body.removeChild(a);\n }\n // 手动重领:浏览器拦截自动下载时,35 分钟保留期内可反复领取\n function claimTask(id) {\n var target = null;\n tasks.forEach(function (x) { if (x.id === id) target = x; });\n if (!target) return;\n triggerTaskDownload(target);\n toast('正在重新领取:' + target.label, 'info');\n }\n // 已结束条目最多保留 max 条(防止任务面板无界增长)\n function trimEndedTasks(max) {\n var ended = tasks.filter(function (x) { return x.claimable || x._ended; });\n var extra = ended.length - max;\n for (var i = 0; i < extra; i++) {\n (function (eid) {\n tasks = tasks.filter(function (t) { return t.id !== eid; });\n })(ended[i].id);\n }\n }\n function onTaskDone(t) {\n if (t._done) return; // 幂等:防止并发轮询重复触发下载\n t._done = true;\n toast('✅ 下载完成:' + t.label, 'success');\n triggerTaskDownload(t);\n // 完成条目保留「领取」入口(原实现 4 秒即移除——浏览器拦截自动下载时\n // 用户毫无补救办法,文件在服务端留 35 分钟却取不到)\n t.claimable = true;\n removeTaskLater(t.id, 35 * 60 * 1000); // 与服务端 35 分钟保留期完全一致(原 30 分钟末尾领取必 404)\n trimEndedTasks(20);\n renderTaskPanel();\n if (t.doneCb) t.doneCb(t);\n }\n function cancelTask(id) {\n apiPost('/api/task/cancel', { task_id: id, device_id: getDeviceId() })\n .then(function (data) {\n if (data.status !== 200) { toast(data.message || '取消失败', 'error'); return; }\n toast('已请求取消任务', 'info');\n })\n .catch(function () { toast('取消失败,请检查网络', 'error'); });\n }\n function removeTaskLater(id, ms) {\n setTimeout(function () {\n tasks = tasks.filter(function (t) { return t.id !== id; });\n renderTaskPanel();\n if (!tasks.length) $('#task-panel').classList.remove('show');\n }, ms);\n }\n /* 设备心跳:保持任务活跃;离线超时任务会被暂停让位,重新打开页面自动恢复 */\n function sendHeartbeat() {\n var hasTasks = tasks.some(function (t) {\n return t.status === 'queued' || t.status === 'running' || t.status === 'paused';\n });\n if (!hasTasks) return;\n apiPost('/api/task/heartbeat', { device_id: getDeviceId() })\n .then(function (data) {\n if (data.status === 200 && data.data && data.data.resumed > 0) {\n toast('任务已恢复,继续下载', 'info');\n pollTasks();\n }\n })\n .catch(function () {});\n }\n setInterval(sendHeartbeat, 15000);\n /* 重新打开网站:找回本设备未结束的任务,重新进入排队列表接着下载 */\n function loadMyTasks() {\n apiPost('/api/task/list', { device_id: getDeviceId() })\n .then(function (data) {\n if (data.status !== 200) return; var my = data.data.tasks || [];\n if (!my.length) return;\n var added = false;\n my.forEach(function (t) {\n if (tasks.some(function (x) { return x.id === t.task_id; })) return;\n tasks.push({\n id: t.task_id,\n type: t.type,\n label: t.kind === 'podcast' ? '播客打包 · ' + t.total + ' 集' : '批量打包 · ' + t.total + ' 首',\n total: t.total,\n done: t.done || 0,\n status: t.status,\n statusText: t.status === 'paused' ? '已暂停(恢复中...)' : (t.msg || '')\n });\n added = true;\n });\n if (added) {\n renderTaskPanel();\n $('#task-panel').classList.add('show');\n // 恢复任务后启动持续轮询(原实现只查一次,\n // 刷新页面恢复的任务永远等不到 done)\n if (!taskPollTimer) taskPollTimer = setInterval(pollTasks, 1500);\n pollTasks();\n }\n })\n .catch(function () {});\n }\n $('#task-panel-close').addEventListener('click', function () {\n $('#task-panel').classList.remove('show');\n });\n \n__legacyApi.switchTab = switchTab;\n__legacyApi.closeStatsModal = closeStatsModal;\n__legacyApi.closeCookieModal = closeCookieModal;\n}\nconst __legacyApi: any = { switchTab: null, closeStatsModal: null, closeCookieModal: null }\nexport { __legacyApi }\nexport function switchTab(): void { return __legacyApi.switchTab && __legacyApi.switchTab.apply(this, arguments as any) }\n","/* 自动生成的静态骨架(源自旧版 index.html,机械转换 + React 显隐接线)。\n * 列表/播放器等动态区域由 controllers 层按 id 写入,本组件不参与其重渲。 */\nimport { store, useAppVersion, toasts } from '../lib/store'\nimport { isModalOpen, isDrawerOpen } from './modalBus'\nimport { switchTab } from '../controllers/legacy'\n\nconst TAB_LABELS: Record = {'search': '搜索', 'song': '单曲', 'playlist': '歌单', 'album': '专辑', 'podcast': '播客', 'admin': '管理员设置', 'global': '全局账号歌单', 'artist': '歌手', 'toplist': '榜单', 'personal': '个人歌单', 'usercenter': '个人中心', 'useradmin': '管理后台', 'about': '关于网站'}\n\nfunction ToastLayer() {\n useAppVersion()\n return (\n
\n {toasts.map((t) => (\n
{t.msg}
\n ))}\n
\n )\n}\n\nexport function Skeleton() {\n useAppVersion()\n return (\n <>\n// 自动转换片段(供手工组装)\n{/* 兼容层 v9+:IE/360 兼容模式等极老内核阻断提示(JS 检测后显示;现代浏览器不可见) */}\n
\n
⚠️
\n

当前浏览器内核过旧,无法运行云村小助手

\n

您可能正在使用 IE 内核浏览器,或浏览器的「兼容模式」。

\n

本站基于现代浏览器技术构建,请切换或更换浏览器后访问:

\n
\n ① 360 / QQ / 搜狗浏览器:点击地址栏旁的「闪电/极速模式」图标切换
\n ② Windows:使用自带 Microsoft Edge,或安装 Chrome / 360 极速版
\n ③ 安卓手机:使用系统自带浏览器、微信内置浏览器或 Chrome
\n ④ 苹果设备:Safari、微信内置浏览器均可正常使用\n
\n
\n\n// 自动转换片段(供手工组装)\n{/* 页面加载动画 */}\n
\n
\n 正在加载云村小助手...\n
\n\n// 自动转换片段(供手工组装)\n{/* 顶部导航 */}\n
\n
\n
\n
♪
\n
\n
云村小助手
\n
实时解析网易云音乐单曲、获取真实下载地址及封面信息
\n
\n
\n
\n
\n \n \n
\n \n \n \n \n
\n
\n
\n\n
\n {/* 微信/QQ 内置浏览器引导(UA 检测后显示,JS 控制) */}\n \n\n {/* 功能卡片 */}\n
\n {/* 当前解析账号信息 */}\n
\n 👤 解析账号\n 获取中...\n \n \n
\n
\n 💡 小提示:可在「个人歌单」登录你自己的 SVIP 网易云音乐账号,并切换为个人账号解析,即可下载/试听更高音质。\n
\n\n {/* 全局音质选择(对所有模块生效) */}\n
\n 🎧 全局音质\n \n \n 全局生效:单曲解析、音乐下载、批量下载均使用该音质;「最高音质(自动)」会按账号会员类型自动尝试最高可解析音质。\n
\n\n
\n
switchTab('search')}>搜索
\n
switchTab('song')}>单曲
\n
switchTab('playlist')}>歌单
\n
switchTab('album')}>专辑
\n
switchTab('podcast')}>播客
\n \n \n
switchTab('artist')}>歌手
\n
switchTab('toplist')}>榜单
\n
switchTab('personal')}>个人歌单
\n \n \n
switchTab('about')}>关于网站
\n
\n {/* 搜索面板 */}\n \n
\n
\n
🔍
\n
\n \n \n \n
\n \n
\n
支持搜索歌曲、歌单、专辑、歌手;结果点击即可跳转对应功能解析。
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n
\n
\n \n \n
\n
支持 电台链接(djradio?id=)、单集链接(program?id= / sound?id=)、163cn.tv 短链或纯数字ID;解析后可在线试听、获取直链、下载单集、整台打包 ZIP。
\n\n \n\n {/* 电台解析结果:电台信息 + 单集列表 */}\n \n\n {/* 单集解析结果:详情 + 播放器 + 直链/下载 */}\n \n\n {/* 播客搜索结果 */}\n \n\n {/* 热门播客(分类卡片墙) */}\n
\n
\n
\n
热门播客
\n
\n
\n
\n \n
\n
\n
\n {/* 密码门禁 */}\n
\n
\n \n \n
\n
管理员设置:全局二维码登录与 Cookie 管理。登录后 Cookie 自动保存,无需重复扫码。
\n
\n\n {/* 管理员内容 */}\n \n
\n
\n {/* 全局账号未登录 */}\n
\n
\n
\n 全局账号歌单展示系统中全局账号(管理员 cookie.txt)收藏的歌单与「我喜欢的音乐」。\n 当前全局账号未登录或 Cookie 已失效,请先在「管理员设置」扫码登录全局账号。\n
\n
\n \n \n
\n
\n
\n\n {/* 已登录:账号信息 + 歌单列表 */}\n \n
\n
\n
\n \n \n
\n
\n
\n
\n 网易云官方实时排行榜,点击卡片即可查看榜单歌曲\n
\n
📊
加载中...
\n \n
\n
\n {/* 未登录:扫码登录自己的账号 */}\n
\n
\n
\n 扫码登录你自己的网易云账号,即可查看收藏的歌单(包括「我喜欢的音乐」)。\n 个人登录仅用于获取你的歌单,解析与下载音乐仍使用管理员全局账号。\n
\n
\n \n \n
\n
\n \n
\n\n {/* 已登录:账号信息 + 歌单列表 */}\n \n
\n
\n
\n
♪
\n
\n
云村小助手
\n
基于 Flask + 原生前端的云村小助手 · 当前版本 v2.1.0
\n
\n
\n\n
\n
项目介绍
\n

\n 本项目是一个开箱即用的云村小助手,支持歌曲搜索、单曲 / 歌单 / 专辑 / 歌手解析、官方榜单、个人歌单、播客解析等完整功能,\n 提供多音质试听与下载(标准 / 极高 / 无损 / Hi-Res / 沉浸环绕声等)、批量下载与 ZIP 打包、元数据写入、歌词下载(LRC / SRT)、\n 自定义播放器与逐字歌词、评论区、多账号体系(全局账号 + 个人账号)与下载任务进度管理。\n 服务端基于 Flask 与网易云官方接口实现,前端零框架原生实现,支持深色模式与响应式布局,可通过 Docker 一键部署。\n

\n\n
\n
功能说明
\n
\n
\n
🔍 多类型搜索
\n
支持按歌曲、歌单、专辑、歌手搜索,结果一键跳转对应功能解析。
\n
\n
\n
🎵 单曲 / 歌单 / 专辑 / 歌手解析
\n
输入链接或ID即可解析,自动按账号实测最高可解析音质输出,含封面、歌词与直链。
\n
\n
\n
🎙️ 播客解析
\n
支持播客电台与单集解析:在线试听、音频直链、单集下载、整台打包 ZIP,热门播客分类浏览。
\n
\n
\n
📊 官方榜单
\n
63 个网易云官方实时排行榜卡片墙,点击即看榜单歌曲。
\n
\n
\n
⬇ 下载能力
\n
单曲 / 批量下载、ZIP 打包、文件命名格式、ffmpeg 元数据写入、LRC / SRT 歌词。
\n
\n
\n
🎧 播放器与歌词
\n
自定义深色播放器、SMTC 系统媒体控制、逐字 KTV 歌词高亮、翻译双行、偏移校准。
\n
\n
\n
👥 多账号体系
\n
全局账号负责解析下载;个人账号扫码登录查看自己的歌单,Cookie 保存在本机浏览器(站点账号登录时管理后台可按需查看)。
\n
\n
\n
🔒 隐私与任务管理
\n
隐私协议 Cookie 偏好、下载任务进度悬浮窗、断线续传与离线暂停恢复、接口统计。
\n
\n
\n\n
\n
更新日志
\n
\n\n
本工具仅供个人学习交流使用,音频内容版权归网易云音乐及内容创作者所有,请勿用于商业用途。
\n
\n
\n
🔒
请先登录后查看个人中心
\n \n
\n
\n
🔒
仅管理员可访问管理后台
\n \n
\n
\n{/* 搜索结果 */}\n \n\n {/* 单曲解析结果 */}\n \n\n {/* 歌单结果 */}\n \n\n {/* 专辑结果 */}\n \n\n {/* 歌手结果 */}\n \n\n
\n\n// 自动转换片段(供手工组装)\n{/* 设置抽屉 */}\n
\n\n// 自动转换片段(供手工组装)\n\n\n// 自动转换片段(供手工组装)\n{/* 更新日志弹窗 */}\n
\n
\n
\n
更新日志
\n \n
\n
\n
\n
\n\n// 自动转换片段(供手工组装)\n{/* 接口请求统计弹窗 */}\n
\n
\n
\n
接口请求统计
\n
\n \n \n
\n
\n
\n
\n
-
总请求数
\n
-
不同端点数
\n
-
最高端点请求数
\n
\n
按接口端点明细(按请求数倒序)
\n
\n
数据来源:GET /api/topen · 每 10 秒自动刷新 · 最近刷新:-
\n
\n
\n
\n\n// 自动转换片段(供手工组装)\n{/* 歌单播放 API 说明弹窗 */}\n
\n
\n
\n
🔗 公开歌单播放 API
\n \n
\n
\n
公开接口,无需登录即可调用:返回歌单信息 + 每首歌的可播放直链(使用全局账号解析音质)。
\n\n
\n
\n
接口地址
\n
-
\n
\n \n
\n
\n
\n
请求方式
\n
GET / POST(均支持表单或 JSON 参数)
\n
\n
\n\n
请求参数
\n
\n
· id 必填:歌单 ID 或网易云分享链接
\n
· level 选填:音质等级,默认 lossless(standard/exhigh/lossless/hires/sky/jyeffect/jymaster/dolby)
\n
· limit 选填:最多返回歌曲数,默认 100,最大 500(0 按封顶 500 计)
\n
\n\n
请求示例
\n
-
\n
\n \n
\n\n
响应字段
\n
\n
· playlist:歌单信息(id / name / coverImgUrl / creator / trackCount)
\n
· tracks[]:可播放歌曲列表(id / name / artists / album / url / level / size_formatted)
\n
· total / playable / skipped:总歌曲数 / 可播放数 / 跳过数(版权或无法解析)
\n
\n
\n
\n
\n\n// 自动转换片段(供手工组装)\n{/* 隐私与协议设置弹窗 */}\n
\n
\n
\n
隐私与协议设置
\n \n
\n
\n
请阅读并同意用户协议与隐私政策,并选择您希望启用的 Cookie 类型。必要 Cookie 无法禁用。
\n\n
\n 查看《用户协议》\n
\n

欢迎使用云村小助手(以下简称\"本工具\")。在使用本工具之前,请您仔细阅读以下条款。点击\"我已阅读\"即表示您完全理解并接受本协议全部内容。

\n

1. 用途限制:本工具仅供个人学习、研究与交流使用。所有解析的音频及相关数据版权归原作者及网易云音乐所有,未经授权不得用于任何公开传播或商业用途。

\n

2. 禁止商用:严禁将本工具及解析出的任何内容用于任何形式的商业用途或非法传播,包括但不限于:转售、收费下载、公开播放、二次分发等。

\n

3. 免责声明:本工具不存储任何音频文件,仅作为网络数据接口的调用和本地展示。因使用本工具而引发的任何版权纠纷或法律责任,由使用者自行承担,工具作者不承担任何连带责任。

\n

4. 服务变更:我们保留随时修改或中断本工具服务的权利,恕不另行通知。接口可用性、音质支持范围、相关功能可能随时调整。

\n
\n
\n\n
\n 查看《隐私政策》\n
\n

本工具(以下简称\"我们\")非常重视您的隐私。本政策说明我们如何收集、使用、存储和保护您的个人信息。请仔细阅读,点击\"我已阅读\"即表示您完全理解并接受本政策全部内容。

\n

1. 数据收集:本工具不存储任何音频文件,也不上传您的个人隐私信息。所有解析操作仅作为网络数据接口的调用和本地展示,您输入的链接 / 歌曲 ID 仅用于本次请求。

\n

2. 本地存储:以下信息仅保存在您的本地浏览器中(localStorage / IndexedDB),不会上传至我们的服务器:主题模式、主题色、下载格式等偏好设置;历史搜索 / 解析记录;隐私与 Cookie 偏好选择。

\n

3. Cookie 使用:根据您的选择,我们可能会使用以下类型的 Cookie:必要 Cookie(CDN 性能监控等保证基本功能所必需,无法禁用);功能性 Cookie(用于解析与下载服务、播放进度记忆、历史记录等)。您可以随时在设置中关闭,关闭后将无法解析与下载音乐。

\n

4. 第三方服务:本工具调用的所有数据接口由第三方提供,其隐私实践遵循各自的政策。本工具不对第三方服务的隐私行为承担责任。

\n

5. 数据安全:由于部分数据仅存储在您的本地浏览器中,请妥善保管您的设备,避免他人未经授权访问。建议在公共设备上使用后清除浏览器数据。

\n

6. 您的权利:您可以随时通过浏览器设置清除本工具存储的所有本地数据,或在设置中修改您的 Cookie 偏好与隐私选择。

\n

7. 政策变更:本政策可能根据实际需要随时更新,更新后的政策将在本工具中重新发布。继续使用本工具即视为接受变更后的政策。

\n
\n
\n\n \n
\n
\n
\n
必要 Cookie 始终启用
\n
这些 Cookie 对于网站的基本功能是必需的,无法禁用。
\n
\n
\n
\n
CDN 性能监控 - 用于资源加载性能统计
\n
\n
\n
\n
\n
功能性 Cookie 已启用
\n
这些 Cookie 用于增强网站功能和个性化体验。
\n
\n \n
\n
\n
🔓 解析与下载服务 - 启用后才能解析与下载音乐
\n
▶️ 播放进度记忆 - 记录上次播放位置
\n
🕘 历史记录 - 保存搜索/解析历史
\n
\n
关闭「功能性 Cookie」将无法解析与下载音乐。
\n
\n
\n
\n \n \n {/* 注册门槛模式专用——16 秒强制阅读计时 + 勾选同意后才可点 */}\n \n
\n
\n
\n\n// 自动转换片段(供手工组装)\n{/* 登录弹窗 */}\n
\n
\n
\n
登录账号
\n \n
\n
\n
\n
♪
\n
云村小助手
\n
登录后继续解析与下载
\n
\n
\n \n
\n \n \n
\n \n
还没有账号?立即注册 · 忘记密码?
\n
🎁 新用户?注册账号 注册即送 3 次免费下载次数
\n {/* 找回密码视图(复用验证码通道),默认隐藏 */}\n \n {/* 管理员两步验证视图(密码验证通过后:绑定邮箱 → 邮箱验证码) */}\n \n
\n
\n
\n
\n\n// 自动转换片段(供手工组装)\n{/* 注册弹窗 */}\n
\n
\n
\n
注册账号
\n \n
\n
\n {/* 邮箱验证码注册 */}\n
\n
♪
\n
创建账号
\n
注册即送 3 次免费下载次数
\n
\n
\n \n
\n \n \n
\n
\n \n \n
\n \n \n \n
已有账号?直接登录
\n
🎁 注册成功即赠送 3 次免费下载次数(解析与在线试听免费)
\n
\n
\n
\n
\n\n// 自动转换片段(供手工组装)\n{/* 公告弹窗 */}\n
\n
\n
\n
系统公告
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n\n// 自动转换片段(供手工组装)\n\n\n// 自动转换片段(供手工组装)\n{/* 实时排队 / 预计等待 悬浮框 */}\n
\n
实时排队
\n
0
\n
预计等待:--
\n
下载 - · 打包 -
\n
\n\n// 自动转换片段(供手工组装)\n{/* 下载任务悬浮窗(批量打包 + 单曲下载,可取消) */}\n
\n
\n 📥 下载任务 0\n \n
\n
\n
\n \n )\n}\n","import { useEffect, useRef } from 'react'\nimport { Skeleton } from './ui/Skeleton'\n\nexport default function App() {\n const booted = useRef(false)\n useEffect(() => {\n if (booted.current) return\n booted.current = true\n // 骨架已提交 DOM 后再启动控制器:旧脚本假定 DOM 就绪(原脚本位于 body 末尾)\n import('./controllers/legacy')\n .then((m) => {\n m.__legacyBoot()\n return import('./controllers/auth')\n })\n .then((a) => a.__authBoot())\n .catch((e) => {\n console.error('前端启动失败:', e)\n ;(window.__errs = window.__errs || []).push('BOOT: ' + ((e && (e as Error).message) || String(e)))\n })\n }, [])\n return \n}\n","import React from 'react'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './styles.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render()\n"],"file":"assets/app.js"} \ No newline at end of file diff --git a/frontend/dist/assets/auth.js b/frontend/dist/assets/auth.js new file mode 100644 index 0000000..964f890 --- /dev/null +++ b/frontend/dist/assets/auth.js @@ -0,0 +1,5 @@ +import{c as Et,o as kt}from"./app.js";function _t(){Promise.prototype.finally||(Promise.prototype.finally=function(e){var t=this.constructor||Promise;return this.then(function(a){return t.resolve(e()).then(function(){return a})},function(a){return t.resolve(e()).then(function(){throw a})})});var je="2.4.0",ze=[{v:"2.4.0",date:"2026-09-21",items:["修复:老内核浏览器(Chrome 57-62)操作按钮卡加载的问题","安全:登录失败次数过多临时锁定;公网错误信息不再暴露内部细节","优化:用户列表不再携带明文网易云 Cookie(按需单独查看)"]},{v:"2.1.0",date:"2026-08-28",items:["计费改为按次计费:一首歌 1 次,歌单打包按歌曲数量扣减","免费试用改为 3 次(3 首歌),注册页领取,每设备限一次","卡密系统升级为次数卡,后台可管理用户次数"]},{v:"2.0.0",date:"2026-08-28",items:["新增站点账号系统:强制登录、邮箱验证码注册","新增管理后台:用户管理、全局Cookie、SMTP、日志、卡密、公告、数据库备份","新增个人中心:剩余次数、卡密充值、公告查看"]},{v:"1.2.0",date:"2026-03-29",items:["修复部分歌曲解析失败的问题","优化界面交互体验"]}];function n(e,t){return document.querySelector(e)}function b(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}var q=null;function d(e,t){q||(q=document.createElement("div"),q.style.cssText="position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:99999;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;",document.body.appendChild(q));var a=document.createElement("div");a.textContent=e,a.style.cssText="padding:10px 18px;border-radius:10px;font-size:13px;color:#fff;background:"+(t==="error"?"linear-gradient(135deg,#ff5f57,#e0483f)":t==="success"?"linear-gradient(135deg,#34c759,#2aa64c)":"rgba(30,30,30,.92)")+";box-shadow:0 6px 24px rgba(0,0,0,.25);opacity:0;transform:translateY(-8px);transition:all .25s;max-width:80vw;",q.appendChild(a),requestAnimationFrame(function(){a.style.opacity="1",a.style.transform="translateY(0)"}),setTimeout(function(){a.style.opacity="0",a.style.transform="translateY(-8px)",setTimeout(function(){a.remove()},300)},2600)}function l(e,t){var a=Object.keys(t||{}).map(function(o){return encodeURIComponent(o)+"="+encodeURIComponent(t[o]==null?"":t[o])}).join("&"),i=typeof AbortController<"u"?new AbortController:null,r=null;return i&&(r=setTimeout(function(){try{i.abort()}catch{}},3e4)),fetch(e,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded;charset=UTF-8"},body:a,credentials:"same-origin",signal:i?i.signal:void 0}).then(function(o){return o.json().then(function(s){return r&&clearTimeout(r),s},function(s){throw r&&clearTimeout(r),s})}).catch(function(){return r&&clearTimeout(r),{status:0,success:!1,message:"网络异常,请检查连接后重试"}})}function Ne(e){var t=typeof AbortController<"u"?new AbortController:null,a=null;return t&&(a=setTimeout(function(){try{t.abort()}catch{}},15e3)),fetch(e,{credentials:"same-origin",signal:t?t.signal:void 0}).then(function(i){return i.json().then(function(r){return a&&clearTimeout(a),r},function(r){throw a&&clearTimeout(a),r})})}function Fe(){if(window.__siteDeviceIdCache)return window.__siteDeviceIdCache;var e="netease_device_id",t="";try{t=localStorage.getItem(e)||""}catch{}if(!t){t="dev-"+Date.now().toString(36)+"-"+Math.random().toString(36).slice(2,10);try{localStorage.setItem(e,t)}catch{}}return window.__siteDeviceIdCache=t,t}var c=null,_="",h=null,re=!1,ie=3,oe=["changelog-modal","stats-modal","api-modal","cookie-modal","login-modal","register-modal","announce-modal"];function B(e){if(oe.indexOf(e)!==-1){kt(e);return}var t=n("#"+e);t&&t.classList.add("show")}function p(e){if(oe.indexOf(e)!==-1){Et(e);return}var t=n("#"+e);t&&t.classList.remove("show")}function D(){window.SITE_LOGGED_IN=!!c;var e=!c&&re,t=n("#btn-open-register");t&&(t.hidden=!e),["goto-register","goto-register2"].forEach(function(g){var k=n("#"+g);k&&(k.hidden=!e)}),b(".auth-trial-box").forEach(function(g){g.hidden=!e}),b(".reg-gift-num").forEach(function(g){g.textContent=ie});var a=n("#auth-guest-area"),i=n("#auth-user-area");if(a&&i)if(c){a.hidden=!0,i.hidden=!1;var r=n("#auth-duration-pill");r&&(r.textContent="⏳ "+(_||"0 次"));var o=n("#user-avatar");o&&(o.textContent=(c.username||"U").charAt(0).toUpperCase(),o.title=c.username+(c.role==="admin"?"(管理员)":""))}else a.hidden=!1,i.hidden=!0;var s=n("#tab-usercenter"),u=n("#tab-useradmin");s&&(s.hidden=!c),u&&(u.hidden=!(c&&c.role==="admin"));var f=n("#tab-global");f&&(f.hidden=!(c&&c.role==="admin"))}function X(){return Ne("/auth/me").then(function(e){var t=e.data||{};if(c=t.user||null,_=t.duration_text||"",h=t.announcement||null,re=!!t.smtp_configured,typeof t.register_credits=="number"&&(ie=t.register_credits),D(),S(),ge(),c&&typeof window.SITE_TASKS_BOOTSTRAP=="function")try{window.SITE_TASKS_BOOTSTRAP()}catch{}return c}).catch(function(){return null})}var se=0;function ue(e,t){var a=Date.now();a-se<5e3||(se=a,d(e,"error"))}window.handleAuthExpired=function(e,t){if(t){ue(e||"下载次数已用尽,请充值卡密"),Ke();return}c=null,_="",D(),S(),ue(e||"登录已失效,请重新登录");var a=document.getElementById("login-modal"),i=document.getElementById("forgot-view"),r=document.getElementById("admin2fa-view"),o=a&&a.classList.contains("show")&&(i&&!i.hidden||r&&!r.hidden);o||(M(),T());var s=document.getElementById("register-modal");s&&s.classList.contains("show")&&p("register-modal"),!(a&&a.classList.contains("show"))&&B("login-modal")},window.refreshSITECredits=X,window.renderSITEUserCenter=S,window.getSITECredits=function(){if(!c)return-1;var e=typeof c.duration_seconds=="number"?c.duration_seconds:0;return e<0?999999:e};function Ke(){var e=n("#site-expired-modal");e&&e.remove();var t=document.createElement("div");t.className="modal-mask show",t.id="site-expired-modal",t.setAttribute("data-dynamic","1"),t.innerHTML='',document.body.appendChild(t),t.addEventListener("click",function(r){r.target===t&&t.remove()});var a=n("#site-expired-go"),i=n("#site-expired-close");a&&a.addEventListener("click",function(){t.remove();var r=n("#tab-usercenter");r&&r.click()}),i&&i.addEventListener("click",function(){t.remove()})}function J(e){var t=e.data||{};if(c=t.user||null,_=t.duration_text||"",D(),S(),c&&typeof window.SITE_TASKS_BOOTSTRAP=="function")try{window.SITE_TASKS_BOOTSTRAP()}catch{}}function ee(){p("login-modal");var e=window.SITE_COOKIE_GATE;if(typeof e!="function"){d("页面协议组件未就绪,请刷新页面后重试","error");return}e("register")&&B("register-modal")}function $e(){var e=n("#btn-open-login"),t=n("#btn-open-register");e&&e.addEventListener("click",function(){p("register-modal"),M(),T(),B("login-modal")}),t&&t.addEventListener("click",function(){p("login-modal"),ee()}),["login-close","register-close","announce-close"].forEach(function(f){var g=n("#"+f);g&&g.addEventListener("click",function(){f.indexOf("login")===0&&window.resetAuthViews&&window.resetAuthViews(),p(f.indexOf("login")===0?"login-modal":f.indexOf("register")===0?"register-modal":"announce-modal")})}),[["login-modal","login-close"],["register-modal","register-close"]].forEach(function(f){var g=n("#"+f[0]);g&&g.addEventListener("click",function(k){k.target===g&&(f[0]==="login-modal"&&window.resetAuthViews&&window.resetAuthViews(),p(f[0]))})});var a=n("#goto-register"),i=n("#goto-register2");a&&a.addEventListener("click",function(){p("login-modal"),ee()}),i&&i.addEventListener("click",function(){p("login-modal"),ee()});var r=n("#goto-login");r&&r.addEventListener("click",function(){p("register-modal"),M(),T(),B("login-modal")});var o=n("#goto-forgot");o&&o.addEventListener("click",Ze);var s=n("#forgot-back-login");s&&s.addEventListener("click",M);var u=n("#a2fa-back");u&&u.addEventListener("click",T)}function te(){var e=n("#login-submit"),t=(n("#login-username")||{}).value||"",a=(n("#login-password")||{}).value||"";if(!t||!a){d("请输入用户名/邮箱和密码","error");return}e.disabled=!0,e.textContent="登录中...",l("/auth/login",{username:t,password:a}).then(function(i){if(i.status!==200)throw new Error(i.message||"登录失败");if(i.data&&i.data.admin_2fa){Xe(i.data.ticket,i.data.email_masked),d("密码验证通过,请完成邮箱验证","success");return}if(J(i),p("login-modal"),d("登录成功,欢迎回来,"+(c?c.username:""),"success"),i.data&&i.data.redirect==="admin"){var r=n("#tab-useradmin");r&&r.click()}else{var o=n("#tab-usercenter");o&&o.click()}}).catch(function(i){d(i.message||"登录失败","error")}).finally(function(){e.disabled=!1,e.textContent="登 录"})}var j=/^[\w.%+-]+@[\w.-]+\.[A-Za-z]{2,}$/,Ye=/^[A-Za-z0-9_\u4e00-\u9fa5]{3,20}$/;function U(e){d(e,"error");var t=n("#reg-error-line");t&&(t.textContent=e,t.hidden=!1)}function ne(){var e=n("#reg-error-line");e&&(e.textContent="",e.hidden=!0)}function Qe(){var e=n("#reg-send-code"),t=(n("#reg-email")||{}).value||"";if(!j.test(t.trim())){d("邮箱格式不正确","error");return}ne(),e.disabled=!0,e.textContent="发送中...",l("/auth/send_code",{email:t,purpose:"register"}).then(function(a){if(a.status!==200)throw new Error(a.message||"发送失败");d("验证码已发送,请查收邮箱","success");var i=60;window.__regCodeTimer=setInterval(function(){i--,e.textContent=i+"s",i<=0&&(clearInterval(window.__regCodeTimer),e.textContent="发送验证码",e.disabled=!1)},1e3)}).catch(function(a){d(a.message||"发送失败","error"),e.disabled=!1,e.textContent="发送验证码"})}function O(e){d(e,"error");var t=n("#forgot-error-line");t&&(t.textContent=e,t.hidden=!1)}function z(){var e=n("#forgot-error-line");e&&(e.textContent="",e.hidden=!0)}function de(){clearInterval(window.__forgotCodeTimer||0);var e=n("#forgot-send-code");e&&e.disabled&&(e.disabled=!1,e.textContent="发送验证码")}function Ze(){var e=document.querySelector("#login-modal .auth-form"),t=n("#forgot-view");if(!(!e||!t)){e.classList.add("forgot-mode"),t.hidden=!1,z();var a=n("#forgot-email");if(a)try{a.focus()}catch{}}}function M(){var e=document.querySelector("#login-modal .auth-form"),t=n("#forgot-view");e&&e.classList.remove("forgot-mode"),t&&!t.hidden&&(t.hidden=!0),z(),de()}function We(){var e=n("#forgot-send-code"),t=(n("#forgot-email")||{}).value||"";if(!j.test(t.trim())){O("邮箱格式不正确");return}z(),e.disabled=!0,e.textContent="发送中...",l("/auth/send_code",{email:t,purpose:"reset"}).then(function(a){if(a.status!==200)throw new Error(a.message||"发送失败");d("验证码已发送,请查收邮箱","success");var i=60;window.__forgotCodeTimer=setInterval(function(){i--,e.textContent=i+"s",i<=0&&(clearInterval(window.__forgotCodeTimer),e.textContent="发送验证码",e.disabled=!1)},1e3)}).catch(function(a){O(a.message||"发送失败"),e.disabled=!1,e.textContent="发送验证码"})}function ce(){var e=n("#forgot-submit"),t=(n("#forgot-email")||{}).value||"",a=(n("#forgot-code")||{}).value||"",i=(n("#forgot-password")||{}).value||"";if(z(),!t||!a||!i){O("请填写完整找回信息");return}if(!j.test(t.trim())){O("邮箱格式不正确");return}if(i.length<8||i.length>128){O("新密码长度需在 8-128 位之间");return}e.disabled=!0,e.textContent="重置中...",l("/auth/forgot_password",{email:t,code:a,password:i}).then(function(r){if(r.status!==200)throw new Error(r.message||"重置失败");var o=n("#forgot-email"),s=n("#forgot-code"),u=n("#forgot-password");o&&(o.value=""),s&&(s.value=""),u&&(u.value=""),de(),M(),d("密码已重置,请用新密码登录","success")}).catch(function(r){O(r.message||"重置失败")}).finally(function(){e.disabled=!1,e.textContent="重置密码"})}var N="";function L(e){d(e,"error");var t=n("#a2fa-error-line");t&&(t.textContent=e,t.hidden=!1)}function H(){var e=n("#a2fa-error-line");e&&(e.textContent="",e.hidden=!0)}function le(){clearInterval(window.__a2faTimer||0);var e=n("#a2fa-send");e&&e.disabled&&(e.disabled=!1,e.textContent="发送验证码")}function Xe(e,t){var a=document.querySelector("#login-modal .auth-form"),i=n("#admin2fa-view");if(!(!a||!i)){N=e||"";var r=n("#a2fa-email-mask");r&&(r.textContent=t||"-");var o=n("#a2fa-email"),s=n("#a2fa-code");o&&(o.value=""),s&&(s.value=""),a.classList.add("admin2fa-mode"),i.hidden=!1,H(),le();var u=n("#a2fa-email");if(u)try{u.focus()}catch{}}}function T(){var e=document.querySelector("#login-modal .auth-form"),t=n("#admin2fa-view");e&&e.classList.remove("admin2fa-mode"),t&&!t.hidden&&(t.hidden=!0),N="",H(),le()}window.resetAuthViews=function(){M(),T()};function Je(){var e=n("#a2fa-send"),t=(n("#a2fa-email")||{}).value||"";if(!t.trim()){L("请输入管理员绑定邮箱");return}H(),e.disabled=!0,e.textContent="发送中...",l("/auth/admin_login/email",{ticket:N,email:t}).then(function(a){if(a.status===401){T(),L(a.message||"请重新登录");return}if(a.status!==200)throw new Error(a.message||"发送失败");d("验证码已发送至管理员邮箱,请查收","success");var i=n("#a2fa-code");if(i)try{i.focus()}catch{}var r=60;window.__a2faTimer=setInterval(function(){r--,e.textContent=r+"s",r<=0&&(clearInterval(window.__a2faTimer),e.textContent="发送验证码",e.disabled=!1)},1e3)}).catch(function(a){L(a.message||"发送失败"),e.disabled=!1,e.textContent="发送验证码"})}function fe(){var e=n("#a2fa-submit"),t=(n("#a2fa-email")||{}).value||"",a=(n("#a2fa-code")||{}).value||"";if(H(),!t.trim()){L("请输入管理员绑定邮箱");return}if(!a.trim()){L("请先获取并输入邮箱验证码");return}e.disabled=!0,e.textContent="验证中...",l("/auth/admin_login/verify",{ticket:N,code:a}).then(function(i){if(i.status===401){T(),L(i.message||"请重新登录");return}if(i.status!==200)throw new Error(i.message||"验证失败");H(),J(i),p("login-modal"),d("登录成功,欢迎回来,"+(c?c.username:""),"success");var r=n("#tab-useradmin");r&&r.click()}).catch(function(i){L(i.message||"验证失败")}).finally(function(){e.disabled=!1,e.textContent="验证并登录"})}function me(){var e=n("#reg-submit"),t=(n("#reg-username")||{}).value||"",a=(n("#reg-password")||{}).value||"",i=(n("#reg-email")||{}).value||"",r=(n("#reg-code")||{}).value||"";if(ne(),typeof window.SITE_COOKIE_GATE!="function"){d("页面协议组件未就绪,请刷新页面后重试","error");return}if(window.SITE_COOKIE_GATE("register")){if(!t||!a||!i||!r){U("请填写完整注册信息");return}if(!Ye.test(t)){U("用户名需 3-20 位,仅支持中文、字母、数字、下划线,且不能纯下划线");return}if(!j.test(i.trim())){U("邮箱格式不正确");return}if(a.length<8||a.length>128){U("密码长度需在 8-128 位之间");return}e.disabled=!0,e.textContent="注册中...",l("/auth/register",{username:t,password:a,email:i,code:r,device_id:Fe(),agree:1}).then(function(o){if(o.status!==200)throw new Error(o.message||"注册失败");ne(),J(o),p("register-modal"),d("注册成功,已自动登录,赠送的下载次数可在个人中心查看","success");var s=n("#tab-usercenter");s&&s.click()}).catch(function(o){U(o.message||"注册失败")}).finally(function(){e.disabled=!1,e.textContent="注 册"})}}function ve(){l("/auth/logout",{}).then(function(){if(c=null,_="",D(),S(),window.resetAuthViews&&window.resetAuthViews(),p("register-modal"),p("login-modal"),typeof window.SITE_ON_LOGOUT=="function")try{window.SITE_ON_LOGOUT()}catch{}var e=n("#site-expired-modal");e&&e.remove();var t=document.querySelector('.tab[data-tab="search"]')||n("#tab-search");t&&t.click(),d("已退出登录","success")})}function et(e){if(!e)return"-";var t=new Date(e*1e3);return t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0")+"-"+String(t.getDate()).padStart(2,"0")}function S(){var e,t=n("#uc-gate"),a=n("#uc-content");if(t&&a&&(t.hidden=!!c,a.hidden=!c),!!c){(e=n("#uc-avatar"))&&(e.textContent=(c.username||"U").charAt(0).toUpperCase()),(e=n("#uc-username"))&&(e.textContent=c?c.username:"-"),(e=n("#uc-role"))&&(e.textContent=c?c.role==="admin"?"管理员 · 不限次数":typeof c.duration_seconds=="number"&&c.duration_seconds<0?"VIP · 不限次数":"普通用户":"-"),(e=n("#uc-duration"))&&(e.textContent=c?_||"0 次":"-"),(e=n("#uc-email"))&&(e.textContent=c&&c.email||"未绑定"),(e=n("#uc-created"))&&(e.textContent=c?et(c.created_at):"-");var i=n("#uc-changelog");i&&(i.innerHTML=ze.map(function(r){return'
v'+r.v+' '+r.date+'
'+r.items.map(function(o){return"· "+o}).join("
")+"
"}).join("")+'
当前版本 v'+je+"
")}}function tt(){var e=n("#uc-card-input"),t=(e&&e.value||"").trim();if(!t){d("请输入卡密","error");return}var a=n("#uc-card-redeem");a.disabled=!0,l("/auth/redeem",{code:t}).then(function(i){if(i.status!==200)throw new Error(i.message||"兑换失败");return _=i.data&&i.data.duration_text||_,c&&i.data&&typeof i.data.duration_seconds=="number"?(c.duration_seconds=i.data.duration_seconds,null):X()}).then(function(){D(),S(),e&&(e.value=""),d("充值成功","success")}).catch(function(i){d(i.message||"兑换失败","error")}).finally(function(){a.disabled=!1})}function ge(e){if(!(!e&&(!h||!h.content||h.popup_mode==="off"))){if(!e&&h&&h.popup_mode==="once"){if(c&&c.ann_seen&&String(c.ann_seen)===String(h.updated_at))return;if(!c){var t="";try{t=localStorage.getItem("netease_ann_once_seen")||""}catch{}if(t===String(h.updated_at))return}}if(!h||!h.content){d("当前没有公告内容","info");return}var a=n("#announce-title"),i=n("#announce-content");a&&(a.textContent=h.title||"系统公告"),i&&(i.innerHTML=String(h.content).split(` +`).map(function(o){return v(o)}).join("
"));var r=document.getElementById("cookie-modal");if(!(r&&r.classList.contains("show")))if(B("announce-modal"),c)l("/auth/ann_seen",{});else try{localStorage.setItem("netease_ann_once_seen",String(h.updated_at))}catch{}}}function v(e){return String(e??"").replace(/[&<>"']/g,function(t){return{"&":"&","<":"<",">":">",'"':""","'":"'"}[t]})}var pe=!1,G="success";function nt(){var e=n("#ua-gate"),t=n("#ua-content");if(!(!e||!t)){var a=!!(c&&c.role==="admin");e.hidden=a,t.hidden=!a,a&&!pe&&(pe=!0,C(),$(),dt(),A(),V(),gt(),Q())}}function at(){b("#admin-side .admin-side-item[data-view]").forEach(function(u){u.setAttribute("tabindex","0"),u.setAttribute("role","button"),u.addEventListener("click",function(){b("#admin-side .admin-side-item").forEach(function(f){f.classList.remove("active")}),u.classList.add("active"),b(".admin-view").forEach(function(f){f.classList.toggle("active",f.getAttribute("data-aview")===u.getAttribute("data-view"))})}),u.addEventListener("keydown",function(f){(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),u.click())})});var e=n("#ua-back");e&&e.addEventListener("click",function(){var u=n("#tab-useradmin");u&&u.classList.remove("active");var f=document.querySelector('.tab[data-tab="search"]');f&&f.click()});var t=n("#ua-logout");t&&t.addEventListener("click",ve),[e,t].forEach(function(u){u&&(u.setAttribute("tabindex","0"),u.setAttribute("role","button"),u.addEventListener("keydown",function(f){(f.key==="Enter"||f.key===" ")&&(f.preventDefault(),u.click())}))});var a=n("#ua-playkey-show"),i=n("#ua-playkey-value");function r(u){navigator.clipboard&&navigator.clipboard.writeText?navigator.clipboard.writeText(u).then(function(){d("密钥已复制","success")},function(){d("复制失败,请手动选择文本复制","error")}):d("复制失败,请点击「显示密钥」后手动复制","error")}a&&a.addEventListener("click",function(){if(a.dataset.state==="shown"){i.value="",i.placeholder="点击「显示密钥」查看",a.textContent="显示密钥",a.dataset.state="";return}l("/admin/site/play_key/get",{}).then(function(u){if(u.status!==200){d(u.message||"获取失败","error");return}i.value=u.data.key,a.textContent="隐藏",a.dataset.state="shown"})});var o=n("#ua-playkey-copy");o&&o.addEventListener("click",function(){l("/admin/site/play_key/get",{}).then(function(u){if(u.status!==200){d(u.message||"获取失败","error");return}r(u.data.key)})});var s=n("#ua-playkey-rotate");s&&s.addEventListener("click",function(){confirm("刷新后旧密钥立即全部失效(外部旧地址将打不开),确定继续?")&&l("/admin/site/play_key/rotate",{}).then(function(u){if(u.status!==200){d(u.message||"刷新失败","error");return}i.value=u.data.key,a.textContent="隐藏",a.dataset.state="shown",d("密钥已刷新,旧密钥已全部失效","success")})})}function rt(){var e=n("#ua-users-refresh");if(!(!e||n("#ua-user-create"))){var t=document.createElement("button");t.className="btn btn-sm btn-primary",t.id="ua-user-create",t.type="button",t.textContent="➕ 添加用户",t.addEventListener("click",it),e.parentNode.insertBefore(t,e)}}function it(){var e=n("#site-create-user-modal");e&&e.remove();var t=document.createElement("div");t.className="modal-mask show",t.id="site-create-user-modal",t.setAttribute("data-dynamic","1"),t.innerHTML='',document.body.appendChild(t),t.addEventListener("click",function(r){r.target===t&&t.remove()});var a=n("#cnu-cancel");a&&a.addEventListener("click",function(){t.remove()});var i=n("#cnu-submit");i&&i.addEventListener("click",function(){var r={username:(n("#cnu-username")||{}).value||"",password:(n("#cnu-password")||{}).value||"",email:(n("#cnu-email")||{}).value||"",count:(n("#cnu-count")||{}).value||0};if(!r.username||r.password.length<8){d("请填写用户名和至少 8 位密码","error");return}i.disabled=!0,l("/admin/site/user/create",r).then(function(o){d(o.message||(o.status===200?"创建成功":"创建失败"),o.status===200?"success":"error"),o.status===200&&(t.remove(),C())}).finally(function(){i.disabled=!1})})}function C(){rt(),l("/admin/site/users",{}).then(function(e){var t=n("#ua-users-body");if(t){if(e.status!==200){t.innerHTML=''+v(e.message||"加载失败")+"";return}var a=e.data&&e.data.users||[],i=n("#ua-users-count");if(i&&(i.textContent=a.length),!a.length){t.innerHTML='暂无用户';return}t.innerHTML=a.map(function(r){var o=r.role==="admin",s=r.status===0,u=r.status===2,f=v(String(r.id)),g=v(String(r.duration_seconds)),k=r.duration_seconds<0?"不限":g+" 次",P=[r.register_ip,r.trial_device].filter(Boolean).join(" · ")||"-";return r.last_province&&(P+=" · "+r.last_province),""+f+""+v(r.username)+(u?' 已封禁':"")+(s?' 已禁用':"")+""+v(r.email||"-")+""+(o?"管理员":"用户")+""+k+''+v(P)+' '+(o?'':' ')+""}).join(""),b("[data-uedit]",t).forEach(function(r){r.addEventListener("click",function(){var o=prompt("设置该用户的剩余次数(-1 表示不限):",r.getAttribute("data-cur"));o!==null&&l("/admin/site/user/duration",{id:r.getAttribute("data-uedit"),count:o}).then(function(s){d(s.message||(s.status===200?"已修改":"修改失败"),s.status===200?"success":"error"),s.status===200&&C()})})}),b("[data-uself]",t).forEach(function(r){r.addEventListener("click",function(){var o=prompt("请输入当前密码:","");if(o!==null){var s=prompt("请输入新密码(至少 8 位):","");s!==null&&l("/admin/site/user/reset_password",{id:r.getAttribute("data-uself"),password:s,old_password:o}).then(function(u){d(u.message||(u.status===200?"密码已修改":"修改失败"),u.status===200?"success":"error")})}})}),b("[data-upwd]",t).forEach(function(r){r.addEventListener("click",function(){var o=prompt("为用户「"+r.getAttribute("data-name")+"」设置新密码(至少 8 位):","");o!==null&&l("/admin/site/user/reset_password",{id:r.getAttribute("data-upwd"),password:o}).then(function(s){d(s.message||(s.status===200?"已重置":"重置失败"),s.status===200?"success":"error")})})}),b("[data-utoggle]",t).forEach(function(r){r.addEventListener("click",function(){l("/admin/site/user/toggle",{id:r.getAttribute("data-utoggle")}).then(function(o){d(o.message||"操作成功",o.status===200?"success":"error"),o.status===200&&C()})})}),b("[data-uban]",t).forEach(function(r){r.addEventListener("click",function(){var o=r.getAttribute("data-name");if(r.textContent==="封禁"){var s=prompt("封禁用户「"+o+`」 +请输入封禁原因(将展示给用户):`,"违规使用,封禁处理");if(s===null)return;l("/admin/site/user/ban",{id:r.getAttribute("data-uban"),action:"ban",reason:s}).then(function(u){d(u.message||(u.status===200?"已封禁":"操作失败"),u.status===200?"success":"error"),u.status===200&&C()})}else{if(!window.confirm("解封用户「"+o+"」?解封后可正常登录使用。"))return;l("/admin/site/user/ban",{id:r.getAttribute("data-uban"),action:"unban"}).then(function(u){d(u.message||(u.status===200?"已解封":"操作失败"),u.status===200?"success":"error"),u.status===200&&C()})}})}),b("[data-udel]",t).forEach(function(r){r.addEventListener("click",function(){window.confirm("确定删除用户「"+r.getAttribute("data-name")+"」?")&&l("/admin/site/user/delete",{id:r.getAttribute("data-udel")}).then(function(o){d(o.message||"已删除",o.status===200?"success":"error"),C()})})}),b("[data-ucookie]",t).forEach(function(r){r.addEventListener("click",function(){l("/admin/site/user/cookie",{username:r.getAttribute("data-ucookie")}).then(function(o){if(o.status!==200){d(o.message||"获取失败","error");return}var s=o.data&&o.data.cookie||"";if(!s){d("该用户未登录过网易云账号","info");return}prompt("用户网易云 Cookie(Ctrl+C 复制):",s)})})})}})}var w=null,F="",K=0;function $(){l("/admin/cookie/status",{}).then(function(e){var t=n("#ua-cookie-status");if(t){if(e.status!==200){t.textContent=e.message||"获取失败";return}var a=e.data||{};t.textContent=(a.is_valid?"✅ 有效":"❌ 未登录")+(a.cookie_count!=null?" · Cookie "+a.cookie_count+" 个":"")}})}function ot(){l("/admin/qr/create",{}).then(function(e){if(e.status!==200){d(e.message||"生成二维码失败","error");return}var t=e.data||{};F=t.unikey||"";var a=n("#ua-qr-box"),i=n("#ua-qr-tip");if(t.qr_svg){var r="data:image/svg+xml;base64,"+btoa(unescape(encodeURIComponent(t.qr_svg)));a.innerHTML='二维码'}i&&(i.textContent="请使用网易云音乐手机 APP 扫码"),w&&clearInterval(w),K++,w=setInterval(st,3e3)})}function st(){if(!F){w&&clearInterval(w);return}var e=K;l("/admin/qr/check",{unikey:F}).then(function(t){if(e===K){var a=n("#ua-qr-tip");if(t.status!==200){w&&clearInterval(w),a&&(a.textContent=t.message||"检查失败");return}var i=t.data&&t.data.status;i==="waiting"?a&&(a.textContent="等待扫码..."):i==="scanned"?a&&(a.textContent="✅ 已扫码,请在手机上确认"):i==="success"?(w&&clearInterval(w),a&&(a.textContent="🎉 登录成功,Cookie 已保存"),d("全局账号登录成功","success"),$()):(w&&clearInterval(w),a&&(a.textContent="二维码已过期,请重新生成"))}})}function ut(){window.confirm("确定删除全局 Cookie?删除后需重新扫码登录。")&&l("/admin/cookie/delete",{}).then(function(e){w&&clearInterval(w),F="",K++,d(e.message||"已删除",e.status===200?"success":"error");var t=n("#ua-qr-box"),a=n("#ua-qr-tip");t&&(t.innerHTML=""),a&&(a.textContent="点击下方按钮生成二维码"),$()})}function dt(){l("/admin/site/smtp/get",{}).then(function(e){if(e.status===200){var t=e.data||{};n("#ua-smtp-host")&&(n("#ua-smtp-host").value=t.host||""),n("#ua-smtp-port")&&(n("#ua-smtp-port").value=t.port||587),n("#ua-smtp-sender")&&(n("#ua-smtp-sender").value=t.sender||"")}})}function ct(){l("/admin/site/smtp/save",{host:(n("#ua-smtp-host")||{}).value||"",port:(n("#ua-smtp-port")||{}).value||587,sender:(n("#ua-smtp-sender")||{}).value||"",password:(n("#ua-smtp-pass")||{}).value||""}).then(function(e){d(e.message||"已保存",e.status===200?"success":"error");var t=n("#ua-smtp-pass");t&&(t.value="")})}function lt(){var e=(n("#ua-smtp-test-to")||{}).value||"";if(!e){d("请填写测试收件邮箱","error");return}var t=n("#ua-smtp-test");t.disabled=!0,l("/admin/site/smtp/test",{to:e}).then(function(a){d(a.message||"已发送",a.status===200?"success":"error")}).finally(function(){t.disabled=!1})}var E=1;function A(){l("/admin/site/logs",{type:G,page:E}).then(function(e){var t=n("#ua-log-list");if(t){if(e.status!==200){t.textContent=e.message||"加载失败";return}var a=e.data&&e.data.logs||[],i=e.data&&e.data.total||0,r=e.data&&e.data.pages||1;E=e.data&&e.data.page||1,window._uaLogPages=r;var o;if((o=n("#ua-log-page"))&&(o.textContent=E),(o=n("#ua-log-pages"))&&(o.textContent=r),(o=n("#ua-log-total"))&&(o.textContent=i),!a.length){t.textContent="暂无日志";return}t.innerHTML=a.map(function(s){return"
["+v(s.time)+"] "+v(s.username||"-")+" · "+v(s.action)+" · IP "+v(s.ip)+(s.detail?" · "+v(s.detail):"")+"
"}).join("")}})}function ft(){var e=G==="fail"?"失败":"成功";window.confirm("确定清除全部「"+e+"」日志?该操作不可恢复。")&&l("/admin/site/logs/clear",{type:G}).then(function(t){d(t.message||(t.status===200?"已清除":"清除失败"),t.status===200?"success":"error"),E=1,A()})}function mt(){var e=(n("#ua-card-minutes")||{}).value||"10";if(e==="custom"&&(e=(n("#ua-card-custom")||{}).value||"0",!(parseInt(e,10)>0))){d("请填写自定义次数(正整数)","error");return}l("/admin/site/cards/generate",{count:(n("#ua-card-count")||{}).value||1,credits:e,prefix:(n("#ua-card-prefix")||{}).value||"VIP",note:(n("#ua-card-note")||{}).value||"",valid_days:(n("#ua-card-days")||{}).value||0}).then(function(t){if(t.status!==200){d(t.message||"生成失败","error");return}var a=n("#ua-card-codes");a&&(a.hidden=!1,a.textContent=(t.data.codes||[]).join(` +`)),d("已生成 "+(t.data.count||0)+" 张卡密("+(t.data.credits||0)+" 次/张),已复制到文本框,请及时保存","success"),V(0)})}var I=0,Y=0,ae=100;function vt(e,t){if(t&&!(e==="delete"&&!window.confirm("确定删除卡密 "+t.slice(0,4)+"**** 吗?删除后不可恢复。"))){var a=e==="delete"?"/admin/site/cards/delete":"/admin/site/cards/disable",i={code:t,disabled:e==="enable"?"0":"1"};l(a,i).then(function(r){d(r.message||(r.status===200?"操作成功":"操作失败"),r.status===200?"success":"error"),r.status===200&&V()})}}function be(){var e=n("#ua-cards-pager");if(e){if(Y<=0){e.hidden=!0;return}var t=Math.max(1,Math.ceil(Y/ae));e.hidden=!1,e.textContent="";var a=document.createElement("button");a.className="btn btn-sm",a.type="button",a.textContent="上一页",a.disabled=I<=0,a.addEventListener("click",function(){V(I-1)});var i=document.createElement("button");i.className="btn btn-sm",i.type="button",i.textContent="下一页",i.disabled=I>=t-1,i.addEventListener("click",function(){V(I+1)});var r=document.createElement("span");r.className="hint",r.textContent="第 "+(I+1)+" / "+t+" 页 · 共 "+Y+" 张",e.appendChild(a),e.appendChild(r),e.appendChild(i)}}function V(e){typeof e=="number"&&(I=Math.max(0,e)),l("/admin/site/cards/list",{limit:ae,offset:I*ae}).then(function(t){var a=n("#ua-cards-body");if(a){if(t.status!==200){a.innerHTML='加载失败';return}var i=t.data&&t.data.cards||[];if(Y=t.data&&t.data.total||0,!i.length){a.innerHTML='暂无卡密',be();return}a.innerHTML=i.map(function(r){var o,s;return r.used_by?(o="已使用",s='—'):r.disabled?(o="已禁用",s=' '):(o=r.expired?"已过期":"未使用",s=' '),""+v(r.code)+""+v(String(r.minutes))+" 次"+o+""+v(r.used_by||"-")+""+v(r.note||"-")+""+(r.expire_at?new Date(r.expire_at*1e3).toLocaleDateString():"永久")+""+v(r.created_at?new Date(r.created_at*1e3).toLocaleDateString():"-")+""+s+""}).join(""),be(),Array.prototype.forEach.call(a.querySelectorAll("button[data-card-act]"),function(r){r.addEventListener("click",function(){vt(r.getAttribute("data-card-act"),r.getAttribute("data-card-code"))})})}})}function gt(){l("/admin/site/ann/get",{}).then(function(e){if(e.status===200){var t=e.data||{};n("#ua-ann-title")&&(n("#ua-ann-title").value=t.title||""),n("#ua-ann-content")&&(n("#ua-ann-content").value=t.content||""),n("#ua-ann-mode")&&(n("#ua-ann-mode").value=t.popup_mode||"off")}})}function pt(){l("/admin/site/ann/save",{title:(n("#ua-ann-title")||{}).value||"",content:(n("#ua-ann-content")||{}).value||"",popup_mode:(n("#ua-ann-mode")||{}).value||"off"}).then(function(e){d(e.message||"已保存",e.status===200?"success":"error")})}function he(e){return!e&&e!==0?"-":e>1048576?(e/1048576).toFixed(2)+" MB":e>1024?(e/1024).toFixed(1)+" KB":e+" B"}function Q(){l("/admin/site/backup/list",{}).then(function(e){var t=n("#ua-db-body");if(t){if(e.status!==200){t.innerHTML='加载失败';return}var a=e.data||{},i=n("#ua-db-size");i&&(i.textContent=he(a.db_size||0));var r=n("#ua-db-hours");r&&a.interval_hours!=null&&(r.value=a.interval_hours);var o=a.backups||[];if(!o.length){t.innerHTML='暂无备份';return}t.innerHTML=o.map(function(s){return""+v(s.name)+""+he(s.size)+""+v(s.time)+'下载 '}).join(""),b("[data-restore]",t).forEach(function(s){s.addEventListener("click",function(){window.confirm("确定用该备份覆盖当前数据库?")&&l("/admin/site/backup/restore",{name:s.getAttribute("data-restore")}).then(function(u){d(u.message||"已恢复",u.status===200?"success":"error"),u.status===200&&setTimeout(function(){location.reload()},1200)})})}),b("[data-bdel]",t).forEach(function(s){s.addEventListener("click",function(){window.confirm("确定删除该备份?")&&l("/admin/site/backup/delete",{name:s.getAttribute("data-bdel")}).then(function(u){d(u.message||"已删除",u.status===200?"success":"error"),Q()})})})}})}function bt(){l("/admin/site/backup/create",{}).then(function(e){d(e.message||"备份完成",e.status===200?"success":"error"),Q()})}function ht(){l("/admin/site/backup/auto",{hours:(n("#ua-db-hours")||{}).value||0}).then(function(e){d(e.message||"已保存",e.status===200?"success":"error")})}function wt(e){var t=new FormData;t.append("file",e),fetch("/admin/site/backup/upload",{method:"POST",body:t,credentials:"same-origin"}).then(function(a){if(!a.ok)throw new Error("上传失败(HTTP "+a.status+")");return a.json()}).then(function(a){d(a.message||"上传完成",a.status===200?"success":"error"),Q()}).catch(function(a){d(a&&a.message||"备份上传失败,请检查网络后重试","error")})}function yt(){$e();var e=n("#login-submit");e&&e.addEventListener("click",te);var t=n("#login-password");t&&t.addEventListener("keydown",function(m){m.key==="Enter"&&te()});var a=n("#login-username");a&&a.addEventListener("keydown",function(m){m.key==="Enter"&&te()});var i=n("#reg-submit");i&&i.addEventListener("click",me);var r=n("#reg-send-code");r&&r.addEventListener("click",Qe),["#reg-username","#reg-password","#reg-email","#reg-code"].forEach(function(m){var y=n(m);y&&y.addEventListener("keydown",function(x){x.key==="Enter"&&me()})}),[["#login-pwd-eye","#login-password"],["#reg-pwd-eye","#reg-password"],["#forgot-pwd-eye","#forgot-password"]].forEach(function(m){var y=n(m[0]),x=n(m[1]);!y||!x||y.addEventListener("click",function(){var Ve=x.type==="password";x.type=Ve?"text":"password",y.textContent=Ve?"隐藏":"显示"})});var o=n("#reg-email");o&&o.addEventListener("input",function(){var m=n("#reg-send-code");m&&m.disabled&&/^\d+s$/.test(m.textContent)&&(clearInterval(window.__regCodeTimer||0),m.disabled=!1,m.textContent="发送验证码",d("邮箱已修改,请重新发送验证码","info"))});var s=n("#forgot-send-code");s&&s.addEventListener("click",We);var u=n("#forgot-submit");u&&u.addEventListener("click",ce),["#forgot-email","#forgot-code","#forgot-password"].forEach(function(m){var y=n(m);y&&y.addEventListener("keydown",function(x){x.key==="Enter"&&ce()})});var f=n("#forgot-email");f&&f.addEventListener("input",function(){var m=n("#forgot-send-code");m&&m.disabled&&/^\d+s$/.test(m.textContent)&&(clearInterval(window.__forgotCodeTimer||0),m.disabled=!1,m.textContent="发送验证码",d("邮箱已修改,请重新发送验证码","info"))});var g=n("#a2fa-send");g&&g.addEventListener("click",Je);var k=n("#a2fa-submit");k&&k.addEventListener("click",fe),["#a2fa-email","#a2fa-code"].forEach(function(m){var y=n(m);y&&y.addEventListener("keydown",function(x){x.key==="Enter"&&fe()})});var P=n("#announce-ok");P&&P.addEventListener("click",function(){p("announce-modal")});var ye=n("#tab-usercenter");ye&&ye.addEventListener("click",S);var Z=n("#tab-useradmin");Z&&Z.addEventListener("click",nt);var Ee=n("#user-avatar");Ee&&Ee.addEventListener("click",function(){if(c&&c.role==="admin")Z&&Z.click();else{var m=n("#tab-usercenter");m&&m.click()}});var ke=n("#uc-card-redeem");ke&&ke.addEventListener("click",tt);var xe=n("#uc-ann-view");xe&&xe.addEventListener("click",function(){ge(!0)});var _e=n("#uc-logout");_e&&_e.addEventListener("click",ve),at();var Ce=n("#ua-users-refresh");Ce&&Ce.addEventListener("click",C);var Le=n("#ua-cookie-refresh");Le&&Le.addEventListener("click",$);var Te=n("#ua-qr-create");Te&&Te.addEventListener("click",ot);var Se=n("#ua-cookie-delete");Se&&Se.addEventListener("click",ut);var Ae=n("#ua-smtp-save");Ae&&Ae.addEventListener("click",ct);var Ie=n("#ua-smtp-test");Ie&&Ie.addEventListener("click",lt);var Oe=n("#ua-log-refresh");Oe&&Oe.addEventListener("click",function(){A()});var Me=n("#ua-log-tab-ok");Me&&Me.addEventListener("click",function(){G="success",E=1,A()});var Pe=n("#ua-log-tab-fail");Pe&&Pe.addEventListener("click",function(){G="fail",E=1,A()});var Re=n("#ua-log-prev");Re&&Re.addEventListener("click",function(){E>1&&(E--,A())});var qe=n("#ua-log-next");qe&&qe.addEventListener("click",function(){var m=window._uaLogPages||999;E' +\n '
⏳ 下载次数已用尽
' +\n '
' +\n ' 您的下载次数已用完。解析与在线试听免费,下载需要消耗次数(一首歌 = 1 次,歌单打包按歌曲数量扣减)。
' +\n ' 请在个人中心充值卡密后继续下载。' +\n '
' +\n '
' +\n ' ' +\n ' ' +\n '
' +\n '';\n document.body.appendChild(mask);\n mask.addEventListener('click', function (e) { if (e.target === mask) mask.remove(); });\n var go = $('#site-expired-go'), close = $('#site-expired-close');\n if (go) go.addEventListener('click', function () {\n mask.remove();\n var t = $('#tab-usercenter');\n if (t) t.click();\n });\n if (close) close.addEventListener('click', function () { mask.remove(); });\n }\n\n function afterAuth(data) {\n var d = data.data || {};\n user = d.user || null;\n durationText = d.duration_text || '';\n renderAuthArea();\n renderUserCenter();\n // 登录成功后立即恢复本设备的进行中任务\n if (user && typeof window.SITE_TASKS_BOOTSTRAP === 'function') {\n try { window.SITE_TASKS_BOOTSTRAP(); } catch (e) {}\n }\n }\n\n /* ---------------- 登录 / 注册弹窗 ---------------- */\n // 注册唯一入口——导航按钮与登录弹窗两处链接(全站仅有的 3 条打开\n // 路径)统一经此:未同意协议 → cookieGate('register') 弹「隐私与协议设置」\n // 注册模式(16 秒强制阅读计时)并中止;已同意 → 直接进注册弹窗。\n // 提交侧 doRegister 另有 fail-closed 兜底闸,程序化打开也绕不过。\n function openRegisterFlow() {\n closeModal('login-modal'); // 先关登录弹窗,避免协议窗被压在下方\n var gate = window.SITE_COOKIE_GATE;\n if (typeof gate !== 'function') {\n // fail-closed:协议闸未就绪(主脚本异常)时不放行注册\n toast('页面协议组件未就绪,请刷新页面后重试', 'error');\n return;\n }\n if (!gate('register')) return; // 未同意:闸内已弹协议窗并提示\n openModal('register-modal');\n }\n function bindAuthModal() {\n var lo = $('#btn-open-login'), ro = $('#btn-open-register');\n if (lo) lo.addEventListener('click', function () { closeModal('register-modal'); hideForgotView(); hideAdmin2faView(); openModal('login-modal'); });\n if (ro) ro.addEventListener('click', function () { closeModal('login-modal'); openRegisterFlow(); });\n ['login-close', 'register-close', 'announce-close'].forEach(function (id) {\n var b = $('#' + id);\n if (b) b.addEventListener('click', function () {\n if (id.indexOf('login') === 0 && window.resetAuthViews) window.resetAuthViews(); // 关闭侧复位\n closeModal(id.indexOf('login') === 0 ? 'login-modal' : id.indexOf('register') === 0 ? 'register-modal' : 'announce-modal');\n });\n });\n [['login-modal', 'login-close'], ['register-modal', 'register-close']].forEach(function (p) {\n var m = $('#' + p[0]);\n if (m) m.addEventListener('click', function (e) {\n if (e.target === m) {\n if (p[0] === 'login-modal' && window.resetAuthViews) window.resetAuthViews(); // 关闭侧复位\n closeModal(p[0]);\n }\n });\n });\n var g1 = $('#goto-register'), g2 = $('#goto-register2');\n if (g1) g1.addEventListener('click', function () { closeModal('login-modal'); openRegisterFlow(); });\n if (g2) g2.addEventListener('click', function () { closeModal('login-modal'); openRegisterFlow(); });\n var gl1 = $('#goto-login');\n if (gl1) gl1.addEventListener('click', function () { closeModal('register-modal'); hideForgotView(); hideAdmin2faView(); openModal('login-modal'); });\n // 找回密码入口/返回(只交付 DOM 漏了绑定)\n var gf = $('#goto-forgot');\n if (gf) gf.addEventListener('click', showForgotView);\n var fbl = $('#forgot-back-login');\n if (fbl) fbl.addEventListener('click', hideForgotView);\n // 管理员两步验证视图的返回链接\n var a2b = $('#a2fa-back');\n if (a2b) a2b.addEventListener('click', hideAdmin2faView);\n\n // 注册即送 3 次,无需 Tab 切换\n }\n\n /* ---------------- 登录 ---------------- */\n function doLogin() {\n var btn = $('#login-submit');\n var username = ($('#login-username') || {}).value || '';\n var password = ($('#login-password') || {}).value || '';\n if (!username || !password) { toast('请输入用户名/邮箱和密码', 'error'); return; }\n btn.disabled = true; btn.textContent = '登录中...';\n api('/auth/login', { username: username, password: password })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '登录失败');\n // 管理员密码验证通过——转两步验证视图(服务端未建会话)\n if (data.data && data.data.admin_2fa) {\n showAdmin2faView(data.data.ticket, data.data.email_masked);\n toast('密码验证通过,请完成邮箱验证', 'success');\n return;\n }\n afterAuth(data);\n closeModal('login-modal');\n toast('登录成功,欢迎回来,' + (user ? user.username : ''), 'success');\n if (data.data && data.data.redirect === 'admin') {\n var uaTab = $('#tab-useradmin');\n if (uaTab) uaTab.click();\n } else {\n var ucTab = $('#tab-usercenter');\n if (ucTab) ucTab.click();\n }\n })\n .catch(function (e) { toast(e.message || '登录失败', 'error'); })\n .finally(function () { btn.disabled = false; btn.textContent = '登 录'; });\n }\n\n /* ---------------- 注册 ---------------- */\n var _REG_EMAIL_RE = /^[\\w.%+-]+@[\\w.-]+\\.[A-Za-z]{2,}$/;\n var _REG_NAME_RE = /^[A-Za-z0-9_\\u4e00-\\u9fa5]{3,20}$/;\n // 注册弹窗内常驻错误行(长文案 2.6s toast 看不完)\n function regShowError(msg) {\n toast(msg, 'error');\n var line = $('#reg-error-line');\n if (line) { line.textContent = msg; line.hidden = false; }\n }\n function regClearError() {\n var line = $('#reg-error-line');\n if (line) { line.textContent = ''; line.hidden = true; }\n }\n function sendCode() {\n var btn = $('#reg-send-code');\n var email = ($('#reg-email') || {}).value || '';\n if (!_REG_EMAIL_RE.test(email.trim())) { toast('邮箱格式不正确', 'error'); return; }\n regClearError();\n btn.disabled = true; btn.textContent = '发送中...';\n api('/auth/send_code', { email: email, purpose: 'register' })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '发送失败');\n toast('验证码已发送,请查收邮箱', 'success');\n var left = 60;\n window.__regCodeTimer = setInterval(function () {\n left--; btn.textContent = left + 's';\n if (left <= 0) { clearInterval(window.__regCodeTimer); btn.textContent = '发送验证码'; btn.disabled = false; }\n }, 1000);\n })\n .catch(function (e) {\n toast(e.message || '发送失败', 'error');\n btn.disabled = false; btn.textContent = '发送验证码';\n });\n }\n\n /* ---------------- 找回密码 ---------------- */\n // 只交付了找回视图 DOM 未实现 JS——此处补齐全链路。\n // 后端 /auth/forgot_password 已就绪:验证码原子消费、防枚举\n // 统一文案、login_seq 踢全会话、5 次/分/IP 限流;发码复用 /auth/send_code。\n function forgotShowError(msg) {\n toast(msg, 'error');\n var line = $('#forgot-error-line');\n if (line) { line.textContent = msg; line.hidden = false; }\n }\n function forgotClearError() {\n var line = $('#forgot-error-line');\n if (line) { line.textContent = ''; line.hidden = true; }\n }\n function forgotStopCodeTimer() {\n clearInterval(window.__forgotCodeTimer || 0);\n var btn = $('#forgot-send-code');\n if (btn && btn.disabled) { btn.disabled = false; btn.textContent = '发送验证码'; }\n }\n function showForgotView() {\n var form = document.querySelector('#login-modal .auth-form');\n var fv = $('#forgot-view');\n if (!form || !fv) return;\n form.classList.add('forgot-mode');\n fv.hidden = false;\n forgotClearError();\n var em = $('#forgot-email');\n if (em) { try { em.focus(); } catch (e) {} }\n }\n function hideForgotView() {\n var form = document.querySelector('#login-modal .auth-form');\n var fv = $('#forgot-view');\n if (form) form.classList.remove('forgot-mode');\n if (fv && !fv.hidden) fv.hidden = true;\n forgotClearError();\n forgotStopCodeTimer();\n }\n function doForgotSendCode() {\n var btn = $('#forgot-send-code');\n var email = ($('#forgot-email') || {}).value || '';\n if (!_REG_EMAIL_RE.test(email.trim())) { forgotShowError('邮箱格式不正确'); return; }\n forgotClearError();\n btn.disabled = true; btn.textContent = '发送中...';\n api('/auth/send_code', { email: email, purpose: 'reset' })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '发送失败');\n toast('验证码已发送,请查收邮箱', 'success');\n var left = 60;\n window.__forgotCodeTimer = setInterval(function () {\n left--; btn.textContent = left + 's';\n if (left <= 0) { clearInterval(window.__forgotCodeTimer); btn.textContent = '发送验证码'; btn.disabled = false; }\n }, 1000);\n })\n .catch(function (e) {\n forgotShowError(e.message || '发送失败');\n btn.disabled = false; btn.textContent = '发送验证码';\n });\n }\n function doForgotReset() {\n var btn = $('#forgot-submit');\n var email = ($('#forgot-email') || {}).value || '';\n var code = ($('#forgot-code') || {}).value || '';\n var password = ($('#forgot-password') || {}).value || '';\n forgotClearError();\n if (!email || !code || !password) { forgotShowError('请填写完整找回信息'); return; }\n if (!_REG_EMAIL_RE.test(email.trim())) { forgotShowError('邮箱格式不正确'); return; }\n if (password.length < 8 || password.length > 128) { forgotShowError('新密码长度需在 8-128 位之间'); return; }\n btn.disabled = true; btn.textContent = '重置中...';\n api('/auth/forgot_password', { email: email, code: code, password: password })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '重置失败');\n var fe = $('#forgot-email'), fc = $('#forgot-code'), fp = $('#forgot-password');\n if (fe) fe.value = ''; if (fc) fc.value = ''; if (fp) fp.value = '';\n forgotStopCodeTimer();\n hideForgotView();\n toast('密码已重置,请用新密码登录', 'success');\n })\n .catch(function (e) { forgotShowError(e.message || '重置失败'); })\n .finally(function () { btn.disabled = false; btn.textContent = '重置密码'; });\n }\n\n /* ---------------- 管理员两步验证 ----------------\n * Step1 用户名+密码 → 服务端签发票据(不建会话);本视图完成\n * Step2 绑定邮箱比对(触发发码)与 Step3 验证码登录。普通用户不经过此流程。 */\n var _a2faTicket = '';\n function a2faShowError(msg) {\n toast(msg, 'error');\n var line = $('#a2fa-error-line');\n if (line) { line.textContent = msg; line.hidden = false; }\n }\n function a2faClearError() {\n var line = $('#a2fa-error-line');\n if (line) { line.textContent = ''; line.hidden = true; }\n }\n function a2faStopTimer() {\n clearInterval(window.__a2faTimer || 0);\n var btn = $('#a2fa-send');\n if (btn && btn.disabled) { btn.disabled = false; btn.textContent = '发送验证码'; }\n }\n function showAdmin2faView(ticket, emailMask) {\n var form = document.querySelector('#login-modal .auth-form');\n var v = $('#admin2fa-view');\n if (!form || !v) return;\n _a2faTicket = ticket || '';\n var mask = $('#a2fa-email-mask');\n if (mask) mask.textContent = emailMask || '-';\n // 清掉上次会话残留的输入(错码/旧邮箱不再被原样重复提交)\n var ae = $('#a2fa-email'), ac = $('#a2fa-code');\n if (ae) ae.value = '';\n if (ac) ac.value = '';\n form.classList.add('admin2fa-mode');\n v.hidden = false;\n a2faClearError();\n a2faStopTimer();\n var em = $('#a2fa-email');\n if (em) { try { em.focus(); } catch (e) {} }\n }\n function hideAdmin2faView() {\n var form = document.querySelector('#login-modal .auth-form');\n var v = $('#admin2fa-view');\n if (form) form.classList.remove('admin2fa-mode');\n if (v && !v.hidden) v.hidden = true;\n _a2faTicket = '';\n a2faClearError();\n a2faStopTimer();\n }\n // 关闭侧统一复位——登录弹窗的 X/遮罩/Escape/doLogout 关闭路径都调用,\n // 不再只依赖\"打开侧纪律\";同时供 index.html 的 Escape 通用分支使用\n window.resetAuthViews = function () { hideForgotView(); hideAdmin2faView(); };\n function doA2faSendCode() {\n var btn = $('#a2fa-send');\n var email = ($('#a2fa-email') || {}).value || '';\n if (!email.trim()) { a2faShowError('请输入管理员绑定邮箱'); return; }\n a2faClearError();\n btn.disabled = true; btn.textContent = '发送中...';\n api('/auth/admin_login/email', { ticket: _a2faTicket, email: email })\n .then(function (data) {\n if (data.status === 401) {\n // 先复位视图再提示——错误行随视图隐藏,此处 toast 是唯一可达提示\n hideAdmin2faView();\n a2faShowError(data.message || '请重新登录');\n return;\n }\n if (data.status !== 200) throw new Error(data.message || '发送失败');\n toast('验证码已发送至管理员邮箱,请查收', 'success');\n var ci = $('#a2fa-code');\n if (ci) { try { ci.focus(); } catch (e) {} }\n var left = 60;\n window.__a2faTimer = setInterval(function () {\n left--; btn.textContent = left + 's';\n if (left <= 0) { clearInterval(window.__a2faTimer); btn.textContent = '发送验证码'; btn.disabled = false; }\n }, 1000);\n })\n .catch(function (e) {\n a2faShowError(e.message || '发送失败');\n btn.disabled = false; btn.textContent = '发送验证码';\n });\n }\n function doA2faVerify() {\n var btn = $('#a2fa-submit');\n var email = ($('#a2fa-email') || {}).value || '';\n var code = ($('#a2fa-code') || {}).value || '';\n a2faClearError();\n if (!email.trim()) { a2faShowError('请输入管理员绑定邮箱'); return; }\n if (!code.trim()) { a2faShowError('请先获取并输入邮箱验证码'); return; }\n btn.disabled = true; btn.textContent = '验证中...';\n api('/auth/admin_login/verify', { ticket: _a2faTicket, code: code })\n .then(function (data) {\n if (data.status === 401) {\n // 先复位视图再提示(同上,错误行随视图隐藏)\n hideAdmin2faView();\n a2faShowError(data.message || '请重新登录');\n return;\n }\n if (data.status !== 200) throw new Error(data.message || '验证失败');\n a2faClearError();\n afterAuth(data);\n closeModal('login-modal');\n toast('登录成功,欢迎回来,' + (user ? user.username : ''), 'success');\n var uaTab = $('#tab-useradmin');\n if (uaTab) uaTab.click();\n })\n .catch(function (e) { a2faShowError(e.message || '验证失败'); })\n .finally(function () { btn.disabled = false; btn.textContent = '验证并登录'; });\n }\n\n function doRegister() {\n var btn = $('#reg-submit');\n var username = ($('#reg-username') || {}).value || '';\n var password = ($('#reg-password') || {}).value || '';\n var email = ($('#reg-email') || {}).value || '';\n var code = ($('#reg-code') || {}).value || '';\n regClearError();\n // 提交侧兜底闸(入口已统一走 openRegisterFlow,此处防任何程序化\n // 打开路径绕过)。fail-closed:协议闸缺失视为未同意。注册语境只查协议同意\n // (功能性 Cookie 不拦注册,拦解析/下载时另有提示);未同意时闸内已自动\n // 弹「隐私与协议设置」注册模式并 toast,此处不再重复提示\n if (typeof window.SITE_COOKIE_GATE !== 'function') {\n toast('页面协议组件未就绪,请刷新页面后重试', 'error');\n return;\n }\n if (!window.SITE_COOKIE_GATE('register')) return;\n // 前端即时校验(口径与后端一致,省一次网络往返)\n if (!username || !password || !email || !code) { regShowError('请填写完整注册信息'); return; }\n if (!_REG_NAME_RE.test(username)) { regShowError('用户名需 3-20 位,仅支持中文、字母、数字、下划线,且不能纯下划线'); return; }\n if (!_REG_EMAIL_RE.test(email.trim())) { regShowError('邮箱格式不正确'); return; }\n if (password.length < 8 || password.length > 128) { regShowError('密码长度需在 8-128 位之间'); return; }\n btn.disabled = true; btn.textContent = '注册中...';\n api('/auth/register', {\n username: username, password: password, email: email, code: code,\n device_id: getDeviceId(), agree: 1\n })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '注册失败');\n regClearError();\n afterAuth(data);\n closeModal('register-modal');\n toast('注册成功,已自动登录,赠送的下载次数可在个人中心查看', 'success');\n var ucTab = $('#tab-usercenter');\n if (ucTab) ucTab.click();\n })\n .catch(function (e) { regShowError(e.message || '注册失败'); })\n .finally(function () { btn.disabled = false; btn.textContent = '注 册'; });\n }\n\n /* ---------------- 退出登录 ---------------- */\n function doLogout() {\n api('/auth/logout', {}).then(function () {\n user = null; durationText = '';\n renderAuthArea();\n renderUserCenter(); // 同步个人中心 gate/content 显隐,与其他登出路径一致\n if (window.resetAuthViews) window.resetAuthViews(); // 登出复位登录弹窗视图\n closeModal('register-modal'); closeModal('login-modal');\n // 退出连带清除个人网易云登录(index.html 注册的钩子:\n // 清 localStorage 的个人 Cookie/解析账号选择并复位账号栏)\n if (typeof window.SITE_ON_LOGOUT === 'function') {\n try { window.SITE_ON_LOGOUT(); } catch (e) {}\n }\n var ex = $('#site-expired-modal'); if (ex) ex.remove();\n // 切回搜索页,避免停留在个人中心 / 管理后台 / 管理员歌单\n var search = document.querySelector('.tab[data-tab=\"search\"]') || $('#tab-search');\n if (search) search.click();\n toast('已退出登录', 'success');\n });\n }\n\n /* ---------------- 个人中心 ---------------- */\n function fmtTime(ts) {\n if (!ts) return '-';\n var d = new Date(ts * 1000);\n return d.getFullYear() + '-' + String(d.getMonth() + 1).padStart(2, '0') + '-' +\n String(d.getDate()).padStart(2, '0');\n }\n\n function renderUserCenter() {\n var el;\n // 登录态切换:隐藏 🔒 占位、显示个人中心内容\n var gate = $('#uc-gate'), content = $('#uc-content');\n if (gate && content) {\n gate.hidden = !!user;\n content.hidden = !user;\n }\n if (!user) return;\n if ((el = $('#uc-avatar'))) el.textContent = (user.username || 'U').charAt(0).toUpperCase();\n if ((el = $('#uc-username'))) el.textContent = user ? user.username : '-';\n if ((el = $('#uc-role'))) el.textContent = user ? (user.role === 'admin' ? '管理员 · 不限次数'\n : (typeof user.duration_seconds === 'number' && user.duration_seconds < 0 ? 'VIP · 不限次数' : '普通用户')) : '-';\n if ((el = $('#uc-duration'))) el.textContent = user ? (durationText || '0 次') : '-';\n if ((el = $('#uc-email'))) el.textContent = (user && user.email) || '未绑定';\n if ((el = $('#uc-created'))) el.textContent = user ? fmtTime(user.created_at) : '-';\n var cl = $('#uc-changelog');\n if (cl) {\n cl.innerHTML = CHANGELOG.map(function (v) {\n return '
v' + v.v + ' ' +\n v.date + '
' +\n v.items.map(function (i) { return '· ' + i; }).join('
') + '
';\n }).join('') + '
当前版本 v' + SITE_VERSION +\n '
';\n }\n }\n\n function doRedeem() {\n var input = $('#uc-card-input');\n var code = (input && input.value || '').trim();\n if (!code) { toast('请输入卡密', 'error'); return; }\n var btn = $('#uc-card-redeem');\n btn.disabled = true;\n api('/auth/redeem', { code: code })\n .then(function (data) {\n if (data.status !== 200) throw new Error(data.message || '兑换失败');\n durationText = (data.data && data.data.duration_text) || durationText;\n // 同步更新内存余额(批量下载预检读的是 user.duration_seconds,\n // 原实现只改显示文字,预检仍用充值前的旧值)\n if (user && data.data && typeof data.data.duration_seconds === 'number') {\n user.duration_seconds = data.data.duration_seconds;\n return null;\n }\n return refreshSession();\n })\n .then(function () {\n renderAuthArea(); renderUserCenter();\n if (input) input.value = '';\n toast('充值成功', 'success');\n })\n .catch(function (e) { toast(e.message || '兑换失败', 'error'); })\n .finally(function () { btn.disabled = false; });\n }\n\n\n /* ---------------- 公告 ---------------- */\n function maybeShowAnnouncement(force) {\n // 手动\"查看公告\"(force=true)无条件展示;\n // 自动弹出仍按 popup_mode 与 once 已读版本判断\n if (!force && (!ann || !ann.content || ann.popup_mode === 'off')) return;\n if (!force && ann && ann.popup_mode === 'once') {\n // once 模式的已读判断:登录用户比对服务端 ann_seen;\n // 游客比对本地 localStorage(原实现只查 user,游客每次刷新都重复弹窗)\n if (user && user.ann_seen && String(user.ann_seen) === String(ann.updated_at)) return;\n if (!user) {\n var guestSeen = '';\n try { guestSeen = localStorage.getItem('netease_ann_once_seen') || ''; } catch (e) {}\n if (guestSeen === String(ann.updated_at)) return;\n }\n }\n if (!ann || !ann.content) { toast('当前没有公告内容', 'info'); return; }\n var t = $('#announce-title'), c = $('#announce-content');\n if (t) t.textContent = ann.title || '系统公告';\n if (c) c.innerHTML = String(ann.content).split('\\n').map(function (l) { return escapeHtml(l); }).join('
');\n // 首访 Cookie 协议窗显示中不叠加公告弹窗(双遮罩错乱);\n // 跳过时不记已读,下次进入页面再弹\n var _cm = document.getElementById('cookie-modal');\n if (_cm && _cm.classList.contains('show')) return;\n openModal('announce-modal');\n if (user) api('/auth/ann_seen', {});\n else { try { localStorage.setItem('netease_ann_once_seen', String(ann.updated_at)); } catch (e) {} }\n }\n\n function escapeHtml(s) {\n return String(s == null ? '' : s).replace(/[&<>\"']/g, function (c) {\n return { '&': '&', '<': '<', '>': '>', '\"': '"', \"'\": ''' }[c];\n });\n }\n\n /* ---------------- 管理后台 ---------------- */\n var uaLoaded = false;\n var uaLogsType = 'success';\n\n function uaShowGate() {\n var gate = $('#ua-gate'), content = $('#ua-content');\n if (!gate || !content) return;\n var isAdmin = !!(user && user.role === 'admin');\n gate.hidden = isAdmin;\n content.hidden = !isAdmin;\n if (isAdmin && !uaLoaded) { uaLoaded = true; uaLoadUsers(); uaLoadCookieStatus(); uaLoadSmtp(); uaLoadLogs(); uaLoadCards(); uaLoadAnn(); uaLoadDb(); }\n }\n\n function uaBindSide() {\n $$('#admin-side .admin-side-item[data-view]').forEach(function (item) {\n // 侧栏项补键盘语义(同型——tabindex/role + Enter/空格激活)\n item.setAttribute('tabindex', '0');\n item.setAttribute('role', 'button');\n item.addEventListener('click', function () {\n $$('#admin-side .admin-side-item').forEach(function (i) { i.classList.remove('active'); });\n item.classList.add('active');\n $$('.admin-view').forEach(function (v) { v.classList.toggle('active', v.getAttribute('data-aview') === item.getAttribute('data-view')); });\n });\n item.addEventListener('keydown', function (e) {\n if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); item.click(); }\n });\n });\n var back = $('#ua-back');\n if (back) back.addEventListener('click', function () {\n var t = $('#tab-useradmin'); if (t) t.classList.remove('active');\n var search = document.querySelector('.tab[data-tab=\"search\"]');\n if (search) search.click();\n });\n var lo = $('#ua-logout');\n if (lo) lo.addEventListener('click', doLogout);\n // 返回/退出两个无 data-view 的侧栏项同样补键盘语义\n [back, lo].forEach(function (el) {\n if (!el) return;\n el.setAttribute('tabindex', '0');\n el.setAttribute('role', 'button');\n el.addEventListener('keydown', function (e) {\n if (e.key === 'Enter' || e.key === ' ') { e.preventDefault(); el.click(); }\n });\n });\n /* ---- 播放 API 密钥 ---- */\n var pkShow = $('#ua-playkey-show');\n var pkInput = $('#ua-playkey-value');\n function pkCopyToClipboard(text) {\n if (navigator.clipboard && navigator.clipboard.writeText) {\n navigator.clipboard.writeText(text).then(function () { toast('密钥已复制', 'success'); },\n function () { toast('复制失败,请手动选择文本复制', 'error'); });\n } else {\n toast('复制失败,请点击「显示密钥」后手动复制', 'error');\n }\n }\n if (pkShow) pkShow.addEventListener('click', function () {\n if (pkShow.dataset.state === 'shown') {\n pkInput.value = '';\n pkInput.placeholder = '点击「显示密钥」查看';\n pkShow.textContent = '显示密钥';\n pkShow.dataset.state = '';\n return;\n }\n api('/admin/site/play_key/get', {}).then(function (d) {\n if (d.status !== 200) { toast(d.message || '获取失败', 'error'); return; }\n pkInput.value = d.data.key;\n pkShow.textContent = '隐藏';\n pkShow.dataset.state = 'shown';\n });\n });\n var pkCopy = $('#ua-playkey-copy');\n if (pkCopy) pkCopy.addEventListener('click', function () {\n api('/admin/site/play_key/get', {}).then(function (d) {\n if (d.status !== 200) { toast(d.message || '获取失败', 'error'); return; }\n pkCopyToClipboard(d.data.key);\n });\n });\n var pkRotate = $('#ua-playkey-rotate');\n if (pkRotate) pkRotate.addEventListener('click', function () {\n if (!confirm('刷新后旧密钥立即全部失效(外部旧地址将打不开),确定继续?')) return;\n api('/admin/site/play_key/rotate', {}).then(function (d) {\n if (d.status !== 200) { toast(d.message || '刷新失败', 'error'); return; }\n pkInput.value = d.data.key;\n pkShow.textContent = '隐藏';\n pkShow.dataset.state = 'shown';\n toast('密钥已刷新,旧密钥已全部失效', 'success');\n });\n });\n }\n\n /* ---- 用户管理 ---- */\n function uaInjectUserToolbar() {\n var refresh = $('#ua-users-refresh');\n if (!refresh || $('#ua-user-create')) return;\n var btn = document.createElement('button');\n btn.className = 'btn btn-sm btn-primary';\n btn.id = 'ua-user-create';\n btn.type = 'button';\n btn.textContent = '➕ 添加用户';\n btn.addEventListener('click', uaCreateUserModal);\n refresh.parentNode.insertBefore(btn, refresh);\n }\n\n function uaCreateUserModal() {\n var old = $('#site-create-user-modal');\n if (old) old.remove();\n var mask = document.createElement('div');\n mask.className = 'modal-mask show';\n mask.id = 'site-create-user-modal';\n mask.setAttribute('data-dynamic', '1'); // Escape 关闭时连同 DOM 一并移除\n mask.innerHTML =\n '
' +\n '
➕ 添加用户
' +\n '
' +\n ' ' +\n ' ' +\n ' ' +\n ' ' +\n '
' +\n '
' +\n ' ' +\n ' ' +\n '
' +\n '
';\n document.body.appendChild(mask);\n mask.addEventListener('click', function (e) { if (e.target === mask) mask.remove(); });\n var cancel = $('#cnu-cancel');\n if (cancel) cancel.addEventListener('click', function () { mask.remove(); });\n var submit = $('#cnu-submit');\n if (submit) submit.addEventListener('click', function () {\n var body = {\n username: ($('#cnu-username') || {}).value || '',\n password: ($('#cnu-password') || {}).value || '',\n email: ($('#cnu-email') || {}).value || '',\n count: ($('#cnu-count') || {}).value || 0\n };\n if (!body.username || body.password.length < 8) { toast('请填写用户名和至少 8 位密码', 'error'); return; }\n submit.disabled = true;\n api('/admin/site/user/create', body).then(function (d) {\n toast(d.message || (d.status === 200 ? '创建成功' : '创建失败'), d.status === 200 ? 'success' : 'error');\n if (d.status === 200) { mask.remove(); uaLoadUsers(); }\n }).finally(function () { submit.disabled = false; });\n });\n }\n\n function uaLoadUsers() {\n uaInjectUserToolbar();\n api('/admin/site/users', {}).then(function (data) {\n var body = $('#ua-users-body');\n if (!body) return;\n if (data.status !== 200) { body.innerHTML = '' + escapeHtml(data.message || '加载失败') + ''; return; }\n var users = (data.data && data.data.users) || [];\n var cnt = $('#ua-users-count');\n if (cnt) cnt.textContent = users.length;\n if (!users.length) { body.innerHTML = '暂无用户'; return; }\n body.innerHTML = users.map(function (u) {\n var isAdmin = u.role === 'admin';\n var disabled = (u.status === 0);\n var banned = (u.status === 2);\n // 数值字段同过转义(纵深防御——后端口径若变为字符串\n // 不再形成管理后台存储型 XSS 面,与同表 username/email 口径对齐)\n var uid = escapeHtml(String(u.id));\n var dur = escapeHtml(String(u.duration_seconds));\n var cred = u.duration_seconds < 0 ? '不限' : (dur + ' 次');\n var dev = [u.register_ip, u.trial_device].filter(Boolean).join(' · ') || '-'; // IP 优先显示\n if (u.last_province) dev += ' · ' + u.last_province;\n return '' +\n '' + uid + '' +\n '' + escapeHtml(u.username) +\n (banned ? ' 已封禁' : '') +\n (disabled ? ' 已禁用' : '') + '' +\n '' + escapeHtml(u.email || '-') + '' +\n '' + (isAdmin ? '管理员' : '用户') + '' +\n '' + cred + '' +\n '' + escapeHtml(dev) + '' +\n '' +\n '' +\n ' ' +\n (isAdmin ? '' :\n ' ' +\n ' ' +\n ' ' +\n '') +\n '';\n }).join('');\n $$('[data-uedit]', body).forEach(function (b) {\n b.addEventListener('click', function () {\n var v = prompt('设置该用户的剩余次数(-1 表示不限):', b.getAttribute('data-cur'));\n if (v === null) return;\n api('/admin/site/user/duration', { id: b.getAttribute('data-uedit'), count: v })\n .then(function (d) { toast(d.message || (d.status === 200 ? '已修改' : '修改失败'), d.status === 200 ? 'success' : 'error'); if (d.status === 200) uaLoadUsers(); });\n });\n });\n // 管理员自助改密(需验证旧密码;改完其他设备全部下线)\n $$('[data-uself]', body).forEach(function (b) {\n b.addEventListener('click', function () {\n var oldpwd = prompt('请输入当前密码:', '');\n if (oldpwd === null) return;\n var newpwd = prompt('请输入新密码(至少 8 位):', '');\n if (newpwd === null) return;\n api('/admin/site/user/reset_password', {\n id: b.getAttribute('data-uself'), password: newpwd, old_password: oldpwd\n }).then(function (d) {\n toast(d.message || (d.status === 200 ? '密码已修改' : '修改失败'), d.status === 200 ? 'success' : 'error');\n });\n });\n });\n $$('[data-upwd]', body).forEach(function (b) {\n b.addEventListener('click', function () {\n var v = prompt('为用户「' + b.getAttribute('data-name') + '」设置新密码(至少 8 位):', '');\n if (v === null) return;\n api('/admin/site/user/reset_password', { id: b.getAttribute('data-upwd'), password: v })\n .then(function (d) { toast(d.message || (d.status === 200 ? '已重置' : '重置失败'), d.status === 200 ? 'success' : 'error'); });\n });\n });\n $$('[data-utoggle]', body).forEach(function (b) {\n b.addEventListener('click', function () {\n api('/admin/site/user/toggle', { id: b.getAttribute('data-utoggle') })\n .then(function (d) { toast(d.message || '操作成功', d.status === 200 ? 'success' : 'error'); if (d.status === 200) uaLoadUsers(); });\n });\n });\n $$('[data-uban]', body).forEach(function (b) {\n b.addEventListener('click', function () {\n var name = b.getAttribute('data-name');\n if (b.textContent === '封禁') {\n var reason = prompt('封禁用户「' + name + '」\\n请输入封禁原因(将展示给用户):', '违规使用,封禁处理');\n if (reason === null) return;\n api('/admin/site/user/ban', { id: b.getAttribute('data-uban'), action: 'ban', reason: reason })\n .then(function (d) { toast(d.message || (d.status === 200 ? '已封禁' : '操作失败'), d.status === 200 ? 'success' : 'error'); if (d.status === 200) uaLoadUsers(); });\n } else {\n if (!window.confirm('解封用户「' + name + '」?解封后可正常登录使用。')) return;\n api('/admin/site/user/ban', { id: b.getAttribute('data-uban'), action: 'unban' })\n .then(function (d) { toast(d.message || (d.status === 200 ? '已解封' : '操作失败'), d.status === 200 ? 'success' : 'error'); if (d.status === 200) uaLoadUsers(); });\n }\n });\n });\n $$('[data-udel]', body).forEach(function (b) {\n b.addEventListener('click', function () {\n if (!window.confirm('确定删除用户「' + b.getAttribute('data-name') + '」?')) return;\n api('/admin/site/user/delete', { id: b.getAttribute('data-udel') })\n .then(function (d) { toast(d.message || '已删除', d.status === 200 ? 'success' : 'error'); uaLoadUsers(); });\n });\n });\n $$('[data-ucookie]', body).forEach(function (b) {\n b.addEventListener('click', function () {\n api('/admin/site/user/cookie', { username: b.getAttribute('data-ucookie') })\n .then(function (d) {\n if (d.status !== 200) { toast(d.message || '获取失败', 'error'); return; }\n var ck = (d.data && d.data.cookie) || '';\n if (!ck) { toast('该用户未登录过网易云账号', 'info'); return; }\n prompt('用户网易云 Cookie(Ctrl+C 复制):', ck);\n });\n });\n });\n });\n }\n\n /* ---- 全局 Cookie ---- */\n var uaQrTimer = null, uaUnikey = '', uaQrGen = 0; // 轮询代次令牌(删除 Cookie 后作废旧轮询)\n function uaLoadCookieStatus() {\n api('/admin/cookie/status', {}).then(function (data) {\n var el = $('#ua-cookie-status');\n if (!el) return;\n if (data.status !== 200) { el.textContent = data.message || '获取失败'; return; }\n var info = data.data || {};\n el.textContent = (info.is_valid ? '✅ 有效' : '❌ 未登录') +\n (info.cookie_count != null ? ' · Cookie ' + info.cookie_count + ' 个' : '');\n });\n }\n function uaQrCreate() {\n api('/admin/qr/create', {}).then(function (data) {\n if (data.status !== 200) { toast(data.message || '生成二维码失败', 'error'); return; }\n var d = data.data || {};\n uaUnikey = d.unikey || '';\n var box = $('#ua-qr-box'), tip = $('#ua-qr-tip');\n if (d.qr_svg) {\n var uri = 'data:image/svg+xml;base64,' + btoa(unescape(encodeURIComponent(d.qr_svg)));\n box.innerHTML = '\"二维码\"/';\n }\n if (tip) tip.textContent = '请使用网易云音乐手机 APP 扫码';\n if (uaQrTimer) clearInterval(uaQrTimer);\n uaQrGen++; // 新轮询代次\n uaQrTimer = setInterval(uaQrPoll, 3000);\n });\n }\n function uaQrPoll() {\n if (!uaUnikey) { if (uaQrTimer) clearInterval(uaQrTimer); return; }\n var myGen = uaQrGen; // 本次轮询所属代次\n api('/admin/qr/check', { unikey: uaUnikey }).then(function (data) {\n if (myGen !== uaQrGen) return; // 期间已删除 Cookie/重开扫码,丢弃迟到响应\n var tip = $('#ua-qr-tip');\n if (data.status !== 200) {\n if (uaQrTimer) clearInterval(uaQrTimer);\n if (tip) tip.textContent = data.message || '检查失败';\n return;\n }\n var st = data.data && data.data.status;\n if (st === 'waiting') { if (tip) tip.textContent = '等待扫码...'; }\n else if (st === 'scanned') { if (tip) tip.textContent = '✅ 已扫码,请在手机上确认'; }\n else if (st === 'success') {\n if (uaQrTimer) clearInterval(uaQrTimer);\n if (tip) tip.textContent = '🎉 登录成功,Cookie 已保存';\n toast('全局账号登录成功', 'success');\n uaLoadCookieStatus();\n } else {\n if (uaQrTimer) clearInterval(uaQrTimer);\n if (tip) tip.textContent = '二维码已过期,请重新生成';\n }\n });\n }\n function uaCookieDelete() {\n if (!window.confirm('确定删除全局 Cookie?删除后需重新扫码登录。')) return;\n api('/admin/cookie/delete', {}).then(function (data) {\n // 作废在途扫码轮询——迟到的 803 成功响应不得把刚删除的 Cookie 写回\n if (uaQrTimer) clearInterval(uaQrTimer);\n uaUnikey = '';\n uaQrGen++;\n toast(data.message || '已删除', data.status === 200 ? 'success' : 'error');\n var box = $('#ua-qr-box'), tip = $('#ua-qr-tip');\n if (box) box.innerHTML = '';\n if (tip) tip.textContent = '点击下方按钮生成二维码';\n uaLoadCookieStatus();\n });\n }\n\n /* ---- SMTP ---- */\n function uaLoadSmtp() {\n api('/admin/site/smtp/get', {}).then(function (data) {\n if (data.status !== 200) return;\n var d = data.data || {};\n if ($('#ua-smtp-host')) $('#ua-smtp-host').value = d.host || '';\n if ($('#ua-smtp-port')) $('#ua-smtp-port').value = d.port || 587;\n if ($('#ua-smtp-sender')) $('#ua-smtp-sender').value = d.sender || '';\n });\n }\n function uaSaveSmtp() {\n api('/admin/site/smtp/save', {\n host: ($('#ua-smtp-host') || {}).value || '',\n port: ($('#ua-smtp-port') || {}).value || 587,\n sender: ($('#ua-smtp-sender') || {}).value || '',\n password: ($('#ua-smtp-pass') || {}).value || ''\n }).then(function (d) {\n toast(d.message || '已保存', d.status === 200 ? 'success' : 'error');\n var p = $('#ua-smtp-pass'); if (p) p.value = '';\n });\n }\n function uaTestSmtp() {\n var to = ($('#ua-smtp-test-to') || {}).value || '';\n if (!to) { toast('请填写测试收件邮箱', 'error'); return; }\n var btn = $('#ua-smtp-test');\n btn.disabled = true;\n api('/admin/site/smtp/test', { to: to }).then(function (d) {\n toast(d.message || '已发送', d.status === 200 ? 'success' : 'error');\n }).finally(function () { btn.disabled = false; });\n }\n\n /* ---- 日志 ---- */\n var uaLogPage = 1;\n function uaLoadLogs() {\n api('/admin/site/logs', { type: uaLogsType, page: uaLogPage }).then(function (data) {\n var box = $('#ua-log-list');\n if (!box) return;\n if (data.status !== 200) { box.textContent = data.message || '加载失败'; return; }\n var logs = (data.data && data.data.logs) || [];\n var total = (data.data && data.data.total) || 0;\n var pages = (data.data && data.data.pages) || 1;\n uaLogPage = (data.data && data.data.page) || 1;\n window._uaLogPages = pages; // next 按钮按真实页数封顶\n var el;\n if ((el = $('#ua-log-page'))) el.textContent = uaLogPage;\n if ((el = $('#ua-log-pages'))) el.textContent = pages;\n if ((el = $('#ua-log-total'))) el.textContent = total;\n if (!logs.length) { box.textContent = '暂无日志'; return; }\n box.innerHTML = logs.map(function (l) {\n return '
[' + escapeHtml(l.time) + '] ' + escapeHtml(l.username || '-') +\n ' · ' + escapeHtml(l.action) + ' · IP ' + escapeHtml(l.ip) +\n (l.detail ? ' · ' + escapeHtml(l.detail) : '') + '
';\n }).join('');\n });\n }\n\n function uaClearLogs() {\n var name = uaLogsType === 'fail' ? '失败' : '成功';\n if (!window.confirm('确定清除全部「' + name + '」日志?该操作不可恢复。')) return;\n api('/admin/site/logs/clear', { type: uaLogsType }).then(function (d) {\n toast(d.message || (d.status === 200 ? '已清除' : '清除失败'), d.status === 200 ? 'success' : 'error');\n uaLogPage = 1;\n uaLoadLogs();\n });\n }\n\n /* ---- 卡密 ---- */\n function uaGenCards() {\n var creditsVal = ($('#ua-card-minutes') || {}).value || '10';\n if (creditsVal === 'custom') {\n creditsVal = ($('#ua-card-custom') || {}).value || '0';\n if (!(parseInt(creditsVal, 10) > 0)) { toast('请填写自定义次数(正整数)', 'error'); return; }\n }\n api('/admin/site/cards/generate', {\n count: ($('#ua-card-count') || {}).value || 1,\n credits: creditsVal,\n prefix: ($('#ua-card-prefix') || {}).value || 'VIP',\n note: ($('#ua-card-note') || {}).value || '',\n valid_days: ($('#ua-card-days') || {}).value || 0\n }).then(function (data) {\n if (data.status !== 200) { toast(data.message || '生成失败', 'error'); return; }\n var box = $('#ua-card-codes');\n if (box) {\n box.hidden = false;\n box.textContent = (data.data.codes || []).join('\\n');\n }\n toast('已生成 ' + (data.data.count || 0) + ' 张卡密(' + (data.data.credits || 0) + ' 次/张),已复制到文本框,请及时保存', 'success');\n uaLoadCards(0);\n });\n }\n // 卡密管理操作列(禁用/启用/删除)+ 分页(后端已支持,\n // 不分页则超出最新 100 张的旧卡密在界面上永远管理不到)\n var _uaCardPage = 0;\n var _uaCardTotal = 0;\n var UA_CARD_PAGE_SIZE = 100;\n function uaCardAction(act, code) {\n if (!code) return;\n if (act === 'delete' && !window.confirm('确定删除卡密 ' + code.slice(0, 4) + '**** 吗?删除后不可恢复。')) return;\n var url = act === 'delete' ? '/admin/site/cards/delete' : '/admin/site/cards/disable';\n var body = { code: code, disabled: act === 'enable' ? '0' : '1' };\n api(url, body).then(function (data) {\n toast(data.message || (data.status === 200 ? '操作成功' : '操作失败'),\n data.status === 200 ? 'success' : 'error');\n if (data.status === 200) uaLoadCards();\n });\n }\n function _uaRenderCardPager() {\n var pager = $('#ua-cards-pager');\n if (!pager) return;\n if (_uaCardTotal <= 0) { pager.hidden = true; return; }\n var pages = Math.max(1, Math.ceil(_uaCardTotal / UA_CARD_PAGE_SIZE));\n pager.hidden = false;\n pager.textContent = '';\n var prev = document.createElement('button');\n prev.className = 'btn btn-sm'; prev.type = 'button'; prev.textContent = '上一页';\n prev.disabled = _uaCardPage <= 0;\n prev.addEventListener('click', function () { uaLoadCards(_uaCardPage - 1); });\n var next = document.createElement('button');\n next.className = 'btn btn-sm'; next.type = 'button'; next.textContent = '下一页';\n next.disabled = _uaCardPage >= pages - 1;\n next.addEventListener('click', function () { uaLoadCards(_uaCardPage + 1); });\n var info = document.createElement('span');\n info.className = 'hint';\n info.textContent = '第 ' + (_uaCardPage + 1) + ' / ' + pages + ' 页 · 共 ' + _uaCardTotal + ' 张';\n pager.appendChild(prev);\n pager.appendChild(info);\n pager.appendChild(next);\n }\n function uaLoadCards(page) {\n if (typeof page === 'number') _uaCardPage = Math.max(0, page);\n api('/admin/site/cards/list', { limit: UA_CARD_PAGE_SIZE, offset: _uaCardPage * UA_CARD_PAGE_SIZE })\n .then(function (data) {\n var body = $('#ua-cards-body');\n if (!body) return;\n if (data.status !== 200) { body.innerHTML = '加载失败'; return; }\n var cards = (data.data && data.data.cards) || [];\n _uaCardTotal = (data.data && data.data.total) || 0;\n if (!cards.length) {\n body.innerHTML = '暂无卡密';\n _uaRenderCardPager();\n return;\n }\n body.innerHTML = cards.map(function (c) {\n var st, act;\n if (c.used_by) {\n st = '已使用';\n act = '—'; // 兑换凭证保留,不给删除/禁用\n } else if (c.disabled) {\n st = '已禁用';\n act = ' ' +\n '';\n } else {\n // 过期判定用服务端下发的 expired(客户端时钟偏差会误标)\n st = c.expired ? '已过期' : '未使用';\n act = ' ' +\n '';\n }\n return '' + escapeHtml(c.code) + '' + escapeHtml(String(c.minutes)) + ' 次' + st + '' + escapeHtml(c.used_by || '-') + '' +\n escapeHtml(c.note || '-') + '' +\n (c.expire_at ? new Date(c.expire_at * 1000).toLocaleDateString() : '永久') + '' +\n escapeHtml(c.created_at ? new Date(c.created_at * 1000).toLocaleDateString() : '-') + '' + act + '';\n }).join('');\n _uaRenderCardPager();\n Array.prototype.forEach.call(body.querySelectorAll('button[data-card-act]'), function (b) {\n b.addEventListener('click', function () {\n uaCardAction(b.getAttribute('data-card-act'), b.getAttribute('data-card-code'));\n });\n });\n });\n }\n\n /* ---- 公告 ---- */\n function uaLoadAnn() {\n api('/admin/site/ann/get', {}).then(function (data) {\n if (data.status !== 200) return;\n var d = data.data || {};\n if ($('#ua-ann-title')) $('#ua-ann-title').value = d.title || '';\n if ($('#ua-ann-content')) $('#ua-ann-content').value = d.content || '';\n if ($('#ua-ann-mode')) $('#ua-ann-mode').value = d.popup_mode || 'off';\n });\n }\n function uaSaveAnn() {\n api('/admin/site/ann/save', {\n title: ($('#ua-ann-title') || {}).value || '',\n content: ($('#ua-ann-content') || {}).value || '',\n popup_mode: ($('#ua-ann-mode') || {}).value || 'off'\n }).then(function (d) { toast(d.message || '已保存', d.status === 200 ? 'success' : 'error'); });\n }\n\n /* ---- 数据库 ---- */\n function fmtSize(n) {\n if (!n && n !== 0) return '-';\n if (n > 1048576) return (n / 1048576).toFixed(2) + ' MB';\n if (n > 1024) return (n / 1024).toFixed(1) + ' KB';\n return n + ' B';\n }\n function uaLoadDb() {\n api('/admin/site/backup/list', {}).then(function (data) {\n var body = $('#ua-db-body');\n if (!body) return;\n if (data.status !== 200) { body.innerHTML = '加载失败'; return; }\n var d = data.data || {};\n var size = $('#ua-db-size'); if (size) size.textContent = fmtSize(d.db_size || 0);\n var hours = $('#ua-db-hours'); if (hours && d.interval_hours != null) hours.value = d.interval_hours;\n var baks = d.backups || [];\n if (!baks.length) { body.innerHTML = '暂无备份'; return; }\n body.innerHTML = baks.map(function (b) {\n return '' + escapeHtml(b.name) + '' + fmtSize(b.size) + '' +\n escapeHtml(b.time) + '' +\n '下载 ' +\n ' ' +\n '';\n }).join('');\n $$('[data-restore]', body).forEach(function (b) {\n b.addEventListener('click', function () {\n if (!window.confirm('确定用该备份覆盖当前数据库?')) return;\n api('/admin/site/backup/restore', { name: b.getAttribute('data-restore') })\n .then(function (d2) {\n toast(d2.message || '已恢复', d2.status === 200 ? 'success' : 'error');\n if (d2.status === 200) setTimeout(function () { location.reload(); }, 1200);\n });\n });\n });\n $$('[data-bdel]', body).forEach(function (b) {\n b.addEventListener('click', function () {\n if (!window.confirm('确定删除该备份?')) return;\n api('/admin/site/backup/delete', { name: b.getAttribute('data-bdel') })\n .then(function (d2) { toast(d2.message || '已删除', d2.status === 200 ? 'success' : 'error'); uaLoadDb(); });\n });\n });\n });\n }\n function uaBackup() {\n api('/admin/site/backup/create', {}).then(function (d) {\n toast(d.message || '备份完成', d.status === 200 ? 'success' : 'error');\n uaLoadDb();\n });\n }\n function uaBackupAuto() {\n api('/admin/site/backup/auto', { hours: ($('#ua-db-hours') || {}).value || 0 })\n .then(function (d) { toast(d.message || '已保存', d.status === 200 ? 'success' : 'error'); });\n }\n function uaBackupUpload(file) {\n var fd = new FormData();\n fd.append('file', file);\n fetch('/admin/site/backup/upload', { method: 'POST', body: fd, credentials: 'same-origin' })\n .then(function (r) {\n if (!r.ok) throw new Error('上传失败(HTTP ' + r.status + ')');\n return r.json();\n })\n .then(function (d) {\n toast(d.message || '上传完成', d.status === 200 ? 'success' : 'error');\n uaLoadDb();\n })\n .catch(function (err) {\n // 全站唯一绕过统一请求封装的调用此前无失败兜底——\n // 网络失败/非 JSON 响应时管理员毫无感知还制造 unhandledrejection 噪音\n toast((err && err.message) || '备份上传失败,请检查网络后重试', 'error');\n });\n }\n\n /* ---------------- 绑定 ---------------- */\n function bind() {\n bindAuthModal();\n var s1 = $('#login-submit'); if (s1) s1.addEventListener('click', doLogin);\n var s2 = $('#login-password'); if (s2) s2.addEventListener('keydown', function (e) { if (e.key === 'Enter') doLogin(); });\n // 回车提交覆盖全部输入框(登录用户名框 / 注册四框)\n var s2u = $('#login-username'); if (s2u) s2u.addEventListener('keydown', function (e) { if (e.key === 'Enter') doLogin(); });\n var s3 = $('#reg-submit'); if (s3) s3.addEventListener('click', doRegister);\n var s4 = $('#reg-send-code'); if (s4) s4.addEventListener('click', sendCode);\n ['#reg-username', '#reg-password', '#reg-email', '#reg-code'].forEach(function (sel) {\n var el = $(sel);\n if (el) el.addEventListener('keydown', function (e) { if (e.key === 'Enter') doRegister(); });\n });\n // 密码明文切换(登录/注册/找回)\n [['#login-pwd-eye', '#login-password'], ['#reg-pwd-eye', '#reg-password'], ['#forgot-pwd-eye', '#forgot-password']].forEach(function (pair) {\n var eye = $(pair[0]), input = $(pair[1]);\n if (!eye || !input) return;\n eye.addEventListener('click', function () {\n var show = input.type === 'password';\n input.type = show ? 'text' : 'password';\n eye.textContent = show ? '隐藏' : '显示';\n });\n });\n // 发码后修改邮箱 → 提前终止倒计时并恢复按钮,提示需重发\n var regEmail = $('#reg-email');\n if (regEmail) regEmail.addEventListener('input', function () {\n var btn = $('#reg-send-code');\n if (btn && btn.disabled && /^\\d+s$/.test(btn.textContent)) {\n clearInterval(window.__regCodeTimer || 0);\n btn.disabled = false; btn.textContent = '发送验证码';\n toast('邮箱已修改,请重新发送验证码', 'info');\n }\n });\n // 找回视图——发码/提交/回车/改邮箱终止倒计时(对齐注册交互)\n var fsc = $('#forgot-send-code'); if (fsc) fsc.addEventListener('click', doForgotSendCode);\n var fsub = $('#forgot-submit'); if (fsub) fsub.addEventListener('click', doForgotReset);\n ['#forgot-email', '#forgot-code', '#forgot-password'].forEach(function (sel) {\n var el = $(sel);\n if (el) el.addEventListener('keydown', function (e) { if (e.key === 'Enter') doForgotReset(); });\n });\n var forgotEmail = $('#forgot-email');\n if (forgotEmail) forgotEmail.addEventListener('input', function () {\n var btn = $('#forgot-send-code');\n if (btn && btn.disabled && /^\\d+s$/.test(btn.textContent)) {\n clearInterval(window.__forgotCodeTimer || 0);\n btn.disabled = false; btn.textContent = '发送验证码';\n toast('邮箱已修改,请重新发送验证码', 'info');\n }\n });\n // 管理员两步验证——发码/验证提交/回车提交\n var asc = $('#a2fa-send'); if (asc) asc.addEventListener('click', doA2faSendCode);\n var asb = $('#a2fa-submit'); if (asb) asb.addEventListener('click', doA2faVerify);\n ['#a2fa-email', '#a2fa-code'].forEach(function (sel) {\n var el = $(sel);\n if (el) el.addEventListener('keydown', function (e) { if (e.key === 'Enter') doA2faVerify(); });\n });\n var s6 = $('#announce-ok'); if (s6) s6.addEventListener('click', function () { closeModal('announce-modal'); });\n\n var ucTab = $('#tab-usercenter');\n if (ucTab) ucTab.addEventListener('click', renderUserCenter);\n var uaTab = $('#tab-useradmin');\n if (uaTab) uaTab.addEventListener('click', uaShowGate);\n var av = $('#user-avatar');\n if (av) av.addEventListener('click', function () {\n if (user && user.role === 'admin') { if (uaTab) uaTab.click(); }\n else { var t = $('#tab-usercenter'); if (t) t.click(); }\n });\n var ucRedeem = $('#uc-card-redeem'); if (ucRedeem) ucRedeem.addEventListener('click', doRedeem);\n var ucAnn = $('#uc-ann-view'); if (ucAnn) ucAnn.addEventListener('click', function () { maybeShowAnnouncement(true); }); // 手动查看强制展示\n var ucLogout = $('#uc-logout'); if (ucLogout) ucLogout.addEventListener('click', doLogout);\n\n uaBindSide();\n var b1 = $('#ua-users-refresh'); if (b1) b1.addEventListener('click', uaLoadUsers);\n var b2 = $('#ua-cookie-refresh'); if (b2) b2.addEventListener('click', uaLoadCookieStatus);\n var b3 = $('#ua-qr-create'); if (b3) b3.addEventListener('click', uaQrCreate);\n var b4 = $('#ua-cookie-delete'); if (b4) b4.addEventListener('click', uaCookieDelete);\n var b5 = $('#ua-smtp-save'); if (b5) b5.addEventListener('click', uaSaveSmtp);\n var b6 = $('#ua-smtp-test'); if (b6) b6.addEventListener('click', uaTestSmtp);\n var b7 = $('#ua-log-refresh'); if (b7) b7.addEventListener('click', function () { uaLoadLogs(); });\n var b8 = $('#ua-log-tab-ok'); if (b8) b8.addEventListener('click', function () { uaLogsType = 'success'; uaLogPage = 1; uaLoadLogs(); });\n var b9 = $('#ua-log-tab-fail'); if (b9) b9.addEventListener('click', function () { uaLogsType = 'fail'; uaLogPage = 1; uaLoadLogs(); });\n var blogPrev = $('#ua-log-prev'); if (blogPrev) blogPrev.addEventListener('click', function () { if (uaLogPage > 1) { uaLogPage--; uaLoadLogs(); } });\n // next 补边界(原实现可翻到空页——前端无 pages 时放宽为 999 防呆)\n var blogNext = $('#ua-log-next'); if (blogNext) blogNext.addEventListener('click', function () { var maxP = window._uaLogPages || 999; if (uaLogPage < maxP) { uaLogPage++; uaLoadLogs(); } });\n var blogClear = $('#ua-log-clear'); if (blogClear) blogClear.addEventListener('click', uaClearLogs);\n var b10 = $('#ua-card-gen'); if (b10) b10.addEventListener('click', uaGenCards);\n var cardType = $('#ua-card-minutes');\n if (cardType) cardType.addEventListener('change', function () {\n var custom = $('#ua-card-custom');\n if (custom) custom.hidden = cardType.value !== 'custom';\n if (cardType.value === 'custom' && custom) custom.focus();\n });\n var b11 = $('#ua-ann-save'); if (b11) b11.addEventListener('click', uaSaveAnn);\n var b12 = $('#ua-db-backup'); if (b12) b12.addEventListener('click', uaBackup);\n var b13 = $('#ua-db-auto'); if (b13) b13.addEventListener('click', uaBackupAuto);\n var b14 = $('#ua-db-upload');\n if (b14) b14.addEventListener('change', function () {\n if (b14.files && b14.files[0]) uaBackupUpload(b14.files[0]);\n b14.value = '';\n });\n\n }\n\n function init() {\n bind();\n refreshSession();\n }\n\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', init);\n } else {\n init();\n }\n\n}\n"],"names":["__authBoot","cb","P","v","e","SITE_VERSION","CHANGELOG","$","s","root","$$","toastWrap","toast","msg","type","t","api","url","params","body","k","ctl","timer","r","d","apiGet","getDeviceId","KEY","user","durationText","ann","smtpOk","registerCredits","BUS_MODALS","openModal","id","busOpen","m","closeModal","busClose","renderAuthArea","showRegister","regBtn","a","box","el","guest","uarea","pill","av","ucTab","uaTab","gTab","refreshSession","data","renderUserCenter","maybeShowAnnouncement","_lastAuthToast","authToastOnce","now","expired","showExpiredModal","_lm","_fv","_a2v","_authViewOpen","hideForgotView","hideAdmin2faView","_reg","c","old","mask","go","close","afterAuth","openRegisterFlow","gate","bindAuthModal","lo","ro","b","p","g1","g2","gl1","gf","showForgotView","fbl","a2b","doLogin","btn","username","password","showAdmin2faView","_REG_EMAIL_RE","_REG_NAME_RE","regShowError","line","regClearError","sendCode","email","left","forgotShowError","forgotClearError","forgotStopCodeTimer","form","fv","em","doForgotSendCode","doForgotReset","code","fe","fc","fp","_a2faTicket","a2faShowError","a2faClearError","a2faStopTimer","ticket","emailMask","ae","ac","doA2faSendCode","ci","doA2faVerify","doRegister","doLogout","ex","search","fmtTime","ts","content","cl","i","doRedeem","input","force","guestSeen","l","escapeHtml","_cm","uaLoaded","uaLogsType","uaShowGate","isAdmin","uaLoadUsers","uaLoadCookieStatus","uaLoadSmtp","uaLoadLogs","uaLoadCards","uaLoadAnn","uaLoadDb","uaBindSide","item","back","pkShow","pkInput","pkCopyToClipboard","text","pkCopy","pkRotate","uaInjectUserToolbar","refresh","uaCreateUserModal","cancel","submit","users","cnt","u","disabled","banned","uid","dur","cred","dev","oldpwd","newpwd","name","reason","ck","uaQrTimer","uaUnikey","uaQrGen","info","uaQrCreate","tip","uri","uaQrPoll","myGen","st","uaCookieDelete","uaSaveSmtp","uaTestSmtp","to","uaLogPage","logs","total","pages","uaClearLogs","uaGenCards","creditsVal","_uaCardPage","_uaCardTotal","UA_CARD_PAGE_SIZE","uaCardAction","act","_uaRenderCardPager","pager","prev","next","page","cards","uaSaveAnn","fmtSize","n","size","hours","baks","d2","uaBackup","uaBackupAuto","uaBackupUpload","file","fd","err","bind","s1","s2","s2u","s3","s4","sel","pair","eye","show","regEmail","fsc","fsub","forgotEmail","asc","asb","s6","ucRedeem","ucAnn","ucLogout","b1","b2","b3","b4","b5","b6","b7","b8","b9","blogPrev","blogNext","maxP","blogClear","b10","cardType","custom","b11","b12","b13","b14","init"],"mappings":"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"} \ No newline at end of file diff --git a/frontend/dist/index.html b/frontend/dist/index.html new file mode 100644 index 0000000..27e94ab --- /dev/null +++ b/frontend/dist/index.html @@ -0,0 +1,26 @@ + + + + + + + 云村小助手 + + + + +
+ + +