mirror of
https://github.com/hanxi/xiaomusic.git
synced 2026-06-01 12:15:48 +08:00
673 lines
38 KiB
HTML
Vendored
673 lines
38 KiB
HTML
Vendored
<!doctype html>
|
||
<html lang="zh-CN">
|
||
|
||
<head>
|
||
<link rel="icon" href="/favicon.ico" />
|
||
<meta name="viewport" content="width=device-width" />
|
||
<title>小爱音箱操控面板</title>
|
||
<!-- 预加载字体文件,减少加载延迟 -->
|
||
<link rel="preload" href="./materialicons.woff2" as="font" type="font/woff2" crossorigin>
|
||
<link rel="preload" href="./materialiconsoutlined.woff2" as="font" type="font/woff2" crossorigin>
|
||
<script src="./jquery-3.7.1.min.js?version=1779336642"></script>
|
||
<script src="./setting.js?version=1779336642"></script>
|
||
<link rel="stylesheet" type="text/css" href="./setting.css?version=1779336642" />
|
||
|
||
<script async src="https://www.googletagmanager.com/gtag/js?id=G-Z09NC1K7ZW"></script>
|
||
<script>
|
||
window.dataLayer = window.dataLayer || [];
|
||
function gtag() {
|
||
dataLayer.push(arguments);
|
||
}
|
||
gtag("js", new Date());
|
||
gtag("config", "G-Z09NC1K7ZW");
|
||
</script>
|
||
</head>
|
||
|
||
<body>
|
||
<div class="setting-header" role="banner">
|
||
<div class="header-inner">
|
||
<h2>
|
||
<span>小爱音箱设置面板</span>
|
||
(<a id="version" href="https://xdocs.hanxi.cc/issues/changelog.html" target="_blank">版本未知</a>)
|
||
</h2>
|
||
<div class="header-buttons">
|
||
<button onclick="location.href = '/static/default/index.html'" aria-label="返回首页">
|
||
<span class="material-icons" aria-hidden="true">home</span>
|
||
<span>返回首页</span>
|
||
</button>
|
||
<button class="save-button" aria-label="保存配置">
|
||
<span class="material-icons" aria-hidden="true">save</span>
|
||
<span>保存配置</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="setting-container" id="setting" role="main">
|
||
<div class="setting-card setting-panel">
|
||
<div class="card-content">
|
||
<label for="mi_did">*勾选设备(至少勾选1个):</label>
|
||
<button class="option-inline mini-button" id="update-devices">获取设备列表(没自动更新时使用)</button>
|
||
<div id="mi_did" class="device-selection"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="setting-card setting-panel">
|
||
<h3 class="card-title">基础设置</h3>
|
||
<div class="card-content">
|
||
<!-- Tab 导航 -->
|
||
<div class="auth-tabs" role="tablist" aria-label="登录方式选择">
|
||
<button class="auth-tab-button active" data-tab="account-password" role="tab" aria-selected="true"
|
||
aria-controls="tab-account-password">
|
||
<span class="material-icons" aria-hidden="true">account_circle</span>
|
||
<span>账号密码登录</span>
|
||
</button>
|
||
<button class="auth-tab-button" data-tab="cookie" role="tab" aria-selected="false"
|
||
aria-controls="tab-cookie">
|
||
<span class="material-icons" aria-hidden="true">cookie</span>
|
||
<span>Cookie 登录</span>
|
||
</button>
|
||
<button class="auth-tab-button" data-tab="qrcode" role="tab" aria-selected="false"
|
||
aria-controls="tab-qrcode">
|
||
<span class="material-icons" aria-hidden="true">qr_code_2</span>
|
||
<span>二维码登录</span>
|
||
</button>
|
||
</div>
|
||
|
||
<!-- Tab 内容区域 -->
|
||
<div class="auth-tab-panels">
|
||
<!-- 账号密码登录面板 -->
|
||
<div class="auth-tab-content active" id="tab-account-password" role="tabpanel"
|
||
aria-labelledby="account-password-tab">
|
||
<div class="rows">
|
||
<div class="form-item">
|
||
<label for="account">*小米账号:</label>
|
||
<input id="account" type="text" placeholder="填写小米登录账号" aria-required="true" />
|
||
</div>
|
||
|
||
<div class="form-item">
|
||
<label for="password">*小米密码:</label>
|
||
<input id="password" type="password" placeholder="填写小米登录密码" aria-required="true" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Cookie 登录面板 -->
|
||
<div class="auth-tab-content" id="tab-cookie" role="tabpanel" aria-labelledby="cookie-tab">
|
||
<div class="rows">
|
||
<div class="form-item">
|
||
<label for="cookie">*Cookie:<a href="https://xdocs.hanxi.cc/issues/688.html"
|
||
target="_blank">文档</a></label>
|
||
<input id="cookie" type="text" placeholder="粘贴完整的 Cookie 字符串" aria-required="true" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- 二维码登录面板 -->
|
||
<div class="auth-tab-content" id="tab-qrcode" role="tabpanel" aria-labelledby="qrcode-tab">
|
||
<div class="rows">
|
||
<div class="form-item">
|
||
<label>*扫码登录:</label>
|
||
<!-- 显示二维码的容器:点击按钮后再显示 -->
|
||
<div id="qrcode-container">
|
||
<img id="qrcode-image" src="" alt="二维码" class="qrcode-image-hidden" />
|
||
<p id="qrcode-status">点击下方按钮获取登录二维码</p>
|
||
</div>
|
||
<button id="refresh-qrcode">获取二维码</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- 公共配置项 -->
|
||
<div class="rows" style="margin-top: 20px">
|
||
<div class="form-item">
|
||
<label for="hostname" class="setting-label">*NAS的IP或域名:
|
||
<button class="option-inline mini-button" id="auto-hostname" aria-label="自动填写主机名">
|
||
<span class="material-icons" aria-hidden="true">auto_fix_high</span>
|
||
<span>自动填</span>
|
||
</button>
|
||
</label>
|
||
<input id="hostname" type="text" aria-required="true" />
|
||
</div>
|
||
|
||
<div class="form-item">
|
||
<label for="public_port" class="setting-label">*本地端口:
|
||
<button class="option-inline mini-button" id="auto-port" aria-label="自动填写端口">
|
||
<span class="material-icons" aria-hidden="true">auto_fix_high</span>
|
||
<span>自动填</span>
|
||
</button>
|
||
</label>
|
||
<input id="public_port" type="number" value="58090" aria-required="true" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="advanced-config-toggle" id="advancedConfigToggle" role="button" aria-expanded="false"
|
||
aria-controls="advancedConfigContent" tabindex="0">
|
||
<span>⚠️</span>
|
||
<span class="advanced-config-toggle-text">以下为高级配置,请谨慎修改,错误配置可能影响系统运行</span>
|
||
<span class="advanced-config-toggle-icon">▼</span>
|
||
</div>
|
||
|
||
<div class="advanced-config-content" id="advancedConfigContent">
|
||
<div class="config-tabs" role="tablist" aria-label="高级配置分类">
|
||
<button type="button" class="config-tab-button active" data-tab="filepath" role="tab" aria-selected="true" aria-controls="tab-filepath">文件路径</button>
|
||
<button type="button" class="config-tab-button" data-tab="filewatch" role="tab" aria-selected="false" aria-controls="tab-filewatch">文件监控</button>
|
||
<button type="button" class="config-tab-button" data-tab="playback" role="tab" aria-selected="false" aria-controls="tab-playback">播放控制</button>
|
||
<button type="button" class="config-tab-button" data-tab="search" role="tab" aria-selected="false" aria-controls="tab-search">搜索匹配</button>
|
||
<button type="button" class="config-tab-button" data-tab="audio" role="tab" aria-selected="false" aria-controls="tab-audio">音频处理</button>
|
||
<button type="button" class="config-tab-button" data-tab="tts" role="tab" aria-selected="false" aria-controls="tab-tts">语音TTS</button>
|
||
<button type="button" class="config-tab-button" data-tab="voicecmd" role="tab" aria-selected="false" aria-controls="tab-voicecmd">语音命令</button>
|
||
<button type="button" class="config-tab-button" data-tab="network" role="tab" aria-selected="false" aria-controls="tab-network">网络下载</button>
|
||
<button type="button" class="config-tab-button" data-tab="device" role="tab" aria-selected="false" aria-controls="tab-device">设备对话</button>
|
||
<button type="button" class="config-tab-button" data-tab="playlist" role="tab" aria-selected="false" aria-controls="tab-playlist">歌单定时</button>
|
||
<button type="button" class="config-tab-button" data-tab="security" role="tab" aria-selected="false" aria-controls="tab-security">安全访问</button>
|
||
<button type="button" class="config-tab-button" data-tab="other" role="tab" aria-selected="false" aria-controls="tab-other">其他</button>
|
||
</div>
|
||
<div class="config-tab-panels">
|
||
<div class="config-tab-content setting-panel active" id="tab-filepath" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="music_path">音乐目录:</label>
|
||
<input id="music_path" type="text" value="music" />
|
||
|
||
<label for="download_path">音乐下载目录(必须是music的子目录):</label>
|
||
<input id="download_path" type="text" value="music/download" />
|
||
|
||
<label for="conf_path">配置文件目录:</label>
|
||
<input id="conf_path" type="text" />
|
||
|
||
<label for="cache_dir">缓存文件目录:</label>
|
||
<input id="cache_dir" type="text" value="music/cache" />
|
||
|
||
<label for="cache_max_size_mb">在线歌曲缓存容量(MB, 0为不缓存):</label>
|
||
<input id="cache_max_size_mb" type="number" value="500" />
|
||
|
||
<label for="temp_path">临时文件目录:</label>
|
||
<input id="temp_path" type="text" value="music/tmp" />
|
||
|
||
<label for="ffmpeg_location">ffmpeg路径:</label>
|
||
<input id="ffmpeg_location" type="text" value="./ffmpeg/bin" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-filewatch" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="enable_file_watch">启用目录监控(自动刷新音乐列表):</label>
|
||
<select id="enable_file_watch">
|
||
<option value="true">开启</option>
|
||
<option value="false" selected>关闭</option>
|
||
</select>
|
||
|
||
<label for="file_watch_debounce">刷新列表延迟时间(秒):</label>
|
||
<input id="file_watch_debounce" type="number" value="10" />
|
||
|
||
<label for="enable_auto_clean_temp">启用定时清理临时文件(每日凌晨3点):</label>
|
||
<select id="enable_auto_clean_temp">
|
||
<option value="true" selected>开启</option>
|
||
<option value="false">关闭</option>
|
||
</select>
|
||
|
||
<label for="exclude_dirs">忽略目录(逗号分割):</label>
|
||
<input id="exclude_dirs" type="text" value="@eaDir,tmp" />
|
||
|
||
<label for="ignore_tag_dirs">不扫描标签信息目录(逗号分割):</label>
|
||
<input id="ignore_tag_dirs" type="text" value="" />
|
||
|
||
<label for="music_path_depth">目录深度:</label>
|
||
<input id="music_path_depth" type="number" value="10" />
|
||
|
||
<label for="recently_added_playlist_len">最近新增的歌曲数量:</label>
|
||
<input id="recently_added_playlist_len" type="number" value="50" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-playback" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="delay_sec">下一首歌延迟播放秒数(支持负数):</label>
|
||
<input id="delay_sec" type="number" value="0" />
|
||
|
||
<label for="use_music_api">型号兼容模式:</label>
|
||
<select id="use_music_api">
|
||
<option value="true">true</option>
|
||
<option value="false" selected>false</option>
|
||
</select>
|
||
|
||
<label for="continue_play">启用触屏版歌曲封面及歌词,启用继续播放(可能导致兼容性问题):</label>
|
||
<select id="continue_play">
|
||
<option value="true">true</option>
|
||
<option value="false" selected>false</option>
|
||
</select>
|
||
|
||
<div style="display: flex; gap: 15px; align-items: flex-end; width: 100%;">
|
||
|
||
<div style="flex: 1; display: flex; flex-direction: column;">
|
||
<label for="use_music_audio_id" style="margin-bottom: 6px; display: block;">触屏版默认封面选择(触屏版歌曲封面设为true,才能选择):</label>
|
||
<select id="use_music_audio_id" style="width: 100%;">
|
||
<option value="436490277987655" data-img="https://y.gtimg.cn/music/photo_new/T001R500x500M000000XFSu32aHi5w_7.jpg" selected>星河雀影</option>
|
||
<option value="2284848025338642973" data-img="https://y.gtimg.cn/music/photo_new/T002R500x500M000003MUXTN0hp00B_1.jpg">鲸落</option>
|
||
<option value="3032977774822294038" data-img="https://y.gtimg.cn/music/photo_new/T002R500x500M000000P52RF0ePrMh_1.jpg">仲夏涟漪</option>
|
||
<option value="3573885250148762567" data-img="https://y.gtimg.cn/music/photo_new/T002R500x500M000001XSQmy0sbGRe_1.jpg">星辰妙漫</option>
|
||
<option value="2821554561643067278" data-img="https://y.gtimg.cn/music/photo_new/T002R500x500M000003mtKhW0DFTMt_3.jpg">所念皆星河</option>
|
||
<option value="1949968393125757902" data-img="https://y.gtimg.cn/music/photo_new/T002R500x500M000003zlK2H16UvnY_2.jpg">柳岸泊舟</option>
|
||
<option value="1963040443250771008" data-img="https://y.gtimg.cn/music/photo_new/T002R500x500M000004HWTo41EPK3L_2.jpg">花冠少女</option>
|
||
<option value="703059981413384476" data-img="https://y.gtimg.cn/music/photo_new/T002R500x500M000002OGzkK12zb2D_1.jpg">月夜</option>
|
||
<option value="2182123779048604035" data-img="https://y.gtimg.cn/music/photo_new/T002R500x500M000001wIZl83iCjqo_1.jpg">橘子海</option>
|
||
<option value="1299407089048748519" data-img="https://y.gtimg.cn/music/photo_new/T001R500x500M000002knSQ01Ts1vS_0.jpg">拾音者</option>
|
||
<option value="2234266363446166675" data-img="https://y.gtimg.cn/music/photo_new/T002R500x500M000003TkJYk3nWUoB_2.jpg">唱片</option>
|
||
<option value="224322594261696542" data-img="https://y.gtimg.cn/music/photo_new/T002R500x500M000003k0x5s4Ale28_1.jpg">音符</option>
|
||
|
||
</select>
|
||
</div>
|
||
|
||
<img id="cover_preview" src="" style="width: 64px; height: 64px; border-radius: 6px; object-fit: cover; border: 1px solid #ddd; display: none;" alt="预览" />
|
||
</div>
|
||
|
||
<label for="use_music_id" style="display: none">触屏版显示歌曲分段ID:</label>
|
||
<input id="use_music_id" type="text" value="355454500" style="display: none"/>
|
||
|
||
<label for="active_cmd">允许唤醒的命令:</label>
|
||
<input id="active_cmd" type="text"
|
||
value="play,set_play_type_rnd,playlocal,play_music_list,play_music_list_index,stop_after_minute,stop,play_next,play_prev,set_play_type_one,set_play_type_all,set_play_type_sin,set_play_type_seq,gen_music_list,add_to_favorites,del_from_favorites,cmd_del_music,online_play,singer_play" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-search" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="fuzzy_match_cutoff">模糊匹配阈值(0.1~0.9):</label>
|
||
<input id="fuzzy_match_cutoff" type="number" value="0.6" />
|
||
|
||
<label for="enable_fuzzy_match">开启模糊搜索:</label>
|
||
<select id="enable_fuzzy_match">
|
||
<option value="true" selected>true</option>
|
||
<option value="false">false</option>
|
||
</select>
|
||
|
||
<label for="enable_multi_result_selection">开启多结果选择功能:</label>
|
||
<select id="enable_multi_result_selection" onchange="toggleMultiResultAction()">
|
||
<option value="true" selected>开启</option>
|
||
<option value="false">关闭</option>
|
||
</select>
|
||
|
||
<div id="multi_result_action_row" style="display:none;">
|
||
<label for="multi_result_action">多结果处理:</label>
|
||
<select id="multi_result_action">
|
||
<option value="random" selected>随机播放</option>
|
||
<option value="first">从第一首开始播放</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-audio" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="get_duration_type">获取时长方式:</label>
|
||
<select id="get_duration_type">
|
||
<option value="ffprobe" selected>ffprobe</option>
|
||
<option value="mutagen">mutagen</option>
|
||
</select>
|
||
|
||
<label for="loudnorm">均衡歌曲音量大小(loudnorm滤镜):</label>
|
||
<input id="loudnorm" type="text" placeholder="loudnorm=I=-14:TP=-1.5:LRA=6" />
|
||
|
||
<label for="remove_id3tag">去除MP3 ID3v2和填充:</label>
|
||
<select id="remove_id3tag">
|
||
<option value="true">true</option>
|
||
<option value="false" selected>false</option>
|
||
</select>
|
||
|
||
<label for="convert_to_mp3">转换为MP3:</label>
|
||
<select id="convert_to_mp3">
|
||
<option value="true">true</option>
|
||
<option value="false" selected>false</option>
|
||
</select>
|
||
|
||
<label for="enable_save_tag">启用ID3标签写入文件:</label>
|
||
<select id="enable_save_tag">
|
||
<option value="true">true</option>
|
||
<option value="false" selected>false</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-tts" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="edge_tts_voice">Edge-TTS 语音角色:</label>
|
||
<select id="edge_tts_voice">
|
||
<option value="disable">不使用(默认)</option>
|
||
<option value="zh-CN-XiaoxiaoNeural">晓晓 (女声,温柔)</option>
|
||
<option value="zh-CN-XiaoyiNeural" selected>
|
||
晓伊 (女声,活泼)
|
||
</option>
|
||
<option value="zh-CN-YunjianNeural">云健 (男声,成熟)</option>
|
||
<option value="zh-CN-YunxiNeural">云希 (男声,阳光)</option>
|
||
<option value="zh-CN-YunxiaNeural">云夏 (男声,少年)</option>
|
||
<option value="zh-CN-YunyangNeural">云扬 (男声,新闻)</option>
|
||
<option value="zh-CN-liaoning-XiaobeiNeural">
|
||
晓北 (女声,东北)
|
||
</option>
|
||
<option value="zh-CN-shaanxi-XiaoniNeural">
|
||
晓妮 (女声,陕西)
|
||
</option>
|
||
<option value="zh-HK-HiuGaaiNeural">曉佳 (女声,粤语)</option>
|
||
<option value="zh-HK-HiuMaanNeural">曉曼 (女声,粤语)</option>
|
||
<option value="zh-HK-WanLungNeural">雲龍 (男声,粤语)</option>
|
||
<option value="zh-TW-HsiaoChenNeural">曉臻 (女声,台湾)</option>
|
||
<option value="zh-TW-YunJheNeural">雲哲 (男声,台湾)</option>
|
||
<option value="zh-TW-HsiaoYuNeural">曉雨 (女声,台湾)</option>
|
||
</select>
|
||
|
||
<label for="stop_tts_msg">停止提示音 (触屏音箱建议留空):</label>
|
||
<input id="stop_tts_msg" type="text" value="收到,再见" />
|
||
|
||
<label for="play_type_one_tts_msg">单曲循环提示音:</label>
|
||
<input id="play_type_one_tts_msg" type="text" value="已经设置为单曲循环" />
|
||
|
||
<label for="play_type_all_tts_msg">全部循环提示音:</label>
|
||
<input id="play_type_all_tts_msg" type="text" value="已经设置为全部循环" />
|
||
|
||
<label for="play_type_rnd_tts_msg">随机播放提示音:</label>
|
||
<input id="play_type_rnd_tts_msg" type="text" value="已经设置为随机播放" />
|
||
|
||
<label for="play_type_sin_tts_msg">单曲播放提示音:</label>
|
||
<input id="play_type_sin_tts_msg" type="text" value="已经设置为单曲播放" />
|
||
|
||
<label for="play_type_seq_tts_msg">顺序播放提示音:</label>
|
||
<input id="play_type_seq_tts_msg" type="text" value="已经设置为顺序播放" />
|
||
|
||
<label for="search_prompt_audio">搜索成功,语音提示:</label>
|
||
<select id="search_prompt_audio">
|
||
<option value="xiaomusic_ok.mp3" selected>xiaomusic_ok.mp3 ("小Music收到")</option>
|
||
<option value="silence.mp3">silence.mp3 (静默)</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-voicecmd" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="keywords_playlocal">播放本地歌曲口令:</label>
|
||
<input id="keywords_playlocal" type="text" value="播放本地歌曲,本地播放歌曲" />
|
||
|
||
<label for="keywords_play">播放歌曲口令:</label>
|
||
<input id="keywords_play" type="text" value="播放歌曲,放歌曲" />
|
||
|
||
<label for="keywords_playlist">播放列表口令:</label>
|
||
<input id="keywords_playlist" type="text" value="播放列表,播放歌单" />
|
||
|
||
<label for="keywords_stop">停止口令:</label>
|
||
<input id="keywords_stop" type="text" value="关机,暂停,停止,停止播放" />
|
||
|
||
<label for="keywords_online_play">在线播放口令(在线搜索接口或插件):</label>
|
||
<input id="keywords_online_play" type="text" value="在线播放" />
|
||
|
||
<label for="keywords_online_playlist_play">在线搜索歌单口令(在线搜索接口或插件):</label>
|
||
<input id="keywords_online_playlist_play" type="text" value="在线歌单,搜索歌单" />
|
||
|
||
<label for="keywords_singer_play">播放歌手口令(会搜索歌手并创建歌单):</label>
|
||
<input id="keywords_singer_play" type="text" value="播放歌手" />
|
||
|
||
<label for="enable_cmd_del_music">开启语音删除歌曲:</label>
|
||
<select id="enable_cmd_del_music">
|
||
<option value="true">true</option>
|
||
<option value="false" selected>false</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-network" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="search_prefix">XIAOMUSIC_SEARCH(歌曲下载方式):</label>
|
||
<select id="search_prefix">
|
||
<option value="bilisearch:">bilisearch:</option>
|
||
<option value="ytsearch:">ytsearch:</option>
|
||
</select>
|
||
|
||
<label for="proxy">XIAOMUSIC_PROXY(ytsearch需要):</label>
|
||
<input id="proxy" type="text" placeholder="http://192.168.2.5:8080" />
|
||
|
||
<label for="web_music_proxy">网络歌曲过代理:</label>
|
||
<select id="web_music_proxy">
|
||
<option value="true" selected>true</option>
|
||
<option value="false">false</option>
|
||
</select>
|
||
|
||
<label for="disable_download">关闭下载功能:</label>
|
||
<select id="disable_download">
|
||
<option value="true">true</option>
|
||
<option value="false" selected>false</option>
|
||
</select>
|
||
|
||
<label for="enable_yt_dlp_cookies">启用yt-dlp-cookies(需要先上传yt-dlp-cookies.txt文件):</label>
|
||
<select id="enable_yt_dlp_cookies">
|
||
<option value="true">true</option>
|
||
<option value="false" selected>false</option>
|
||
</select>
|
||
|
||
<label for="yt_dlp_cookies_file">上传yt_dlp_cookies.txt文件:<a
|
||
href="https://xdocs.hanxi.cc/issues/210.html" target="_blank">文档</a></label>
|
||
<div class="file-upload-section">
|
||
<input id="yt_dlp_cookies_file" name="file" type="file" />
|
||
<button id="upload_yt_dlp_cookie">
|
||
<span class="material-icons">upload_file</span>
|
||
<span>上传yt_dlp_cookies</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-device" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="group_list">设备分组配置(不推荐,声音不同步):<a href="https://xdocs.hanxi.cc/issues/366.html"
|
||
target="_blank">文档</a></label>
|
||
<input id="group_list" type="text" placeholder="did1:组名1,did2:组名1,did3:组名2" />
|
||
|
||
<label for="enable_pull_ask">获取对话记录:</label>
|
||
<select id="enable_pull_ask">
|
||
<option value="true">true</option>
|
||
<option value="false selected">false</option>
|
||
</select>
|
||
|
||
<label for="pull_ask_sec">获取对话记录间隔(秒):</label>
|
||
<input id="pull_ask_sec" type="number" value="1" />
|
||
|
||
<label for="get_ask_by_mina">特殊型号获取对话记录:</label>
|
||
<select id="get_ask_by_mina">
|
||
<option value="true">true</option>
|
||
<option value="false" selected>false</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-playlist" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="music_list_url" class="setting-label">歌单地址:
|
||
<button class="option-inline mini-button" id="get_music_list">
|
||
<span class="material-icons">sync_alt</span>
|
||
<span>获取歌单</span>
|
||
</button>
|
||
</label>
|
||
<input id="music_list_url" type="text"
|
||
value="https://gist.githubusercontent.com/hanxi/dda82d964a28f8110f8fba81c3ff8314/raw/example.json" />
|
||
|
||
<label for="music_list_json">歌单内容:<a href="https://xdocs.hanxi.cc/issues/78.html"
|
||
target="_blank">格式文档</a></label>
|
||
<textarea id="music_list_json" type="text"></textarea>
|
||
|
||
<label for="crontab_json">定时任务:<a href="https://xdocs.hanxi.cc/issues/182.html"
|
||
target="_blank">格式文档</a></label>
|
||
<textarea id="crontab_json" type="text"></textarea>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-security" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="disable_httpauth">关闭控制台密码验证:</label>
|
||
<select id="disable_httpauth">
|
||
<option value="true" selected>true</option>
|
||
<option value="false">false</option>
|
||
</select>
|
||
|
||
<label for="httpauth_username">控制台账户:</label>
|
||
<input id="httpauth_username" type="text" value="" />
|
||
|
||
<label for="httpauth_password">控制台密码:</label>
|
||
<input id="httpauth_password" type="password" value="" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="config-tab-content setting-panel" id="tab-other" role="tabpanel">
|
||
<div class="card-content">
|
||
<div class="rows">
|
||
<label for="verbose">是否开启调试日志:</label>
|
||
<select id="verbose">
|
||
<option value="true">true</option>
|
||
<option value="false" selected>false</option>
|
||
</select>
|
||
|
||
<label for="log_file">日志路径:</label>
|
||
<input id="log_file" type="text" value="xiaomusic.log.txt" />
|
||
|
||
<label for="enable_analytics">开启谷歌数据统计(无敏感数据):</label>
|
||
<select id="enable_analytics">
|
||
<option value="true" selected>true</option>
|
||
<option value="false">false</option>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="setting-footer">
|
||
<div class="button-section">
|
||
<div class="section-header collapsed" id="operationToggle">
|
||
<h3 class="button-section-title">功能操作</h3>
|
||
<span class="section-toggle-icon">▼</span>
|
||
</div>
|
||
<div class="section-content collapsed" id="operationContent">
|
||
<div class="button-grid">
|
||
<button id="refresh_music_tag">
|
||
<span class="material-icons">refresh</span>
|
||
<span>刷新tag</span>
|
||
</button>
|
||
<button id="clear_cache">
|
||
<span class="material-icons">delete_sweep</span>
|
||
<span>清空缓存</span>
|
||
</button>
|
||
<button id="cleantempdir">
|
||
<span class="material-icons">folder_delete</span>
|
||
<span>清空临时目录</span>
|
||
</button>
|
||
<a href="/downloadlog" download="xiaomusic.txt">
|
||
<button>
|
||
<span class="material-icons">download</span>
|
||
<span>下载日志文件</span>
|
||
</button>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="button-section">
|
||
<div class="section-header collapsed" id="toolsToggle">
|
||
<h3 class="button-section-title">工具链接</h3>
|
||
<span class="section-toggle-icon">▼</span>
|
||
</div>
|
||
<div class="section-content collapsed" id="toolsContent">
|
||
<div class="link-grid">
|
||
<a href="/docs" target="_blank" class="link-card">
|
||
<div class="link-card-icon">
|
||
<span class="material-icons">description</span>
|
||
</div>
|
||
<div class="link-card-content">
|
||
<div class="link-card-title">接口文档</div>
|
||
<div class="link-card-description">查看 API 接口文档</div>
|
||
</div>
|
||
</a>
|
||
<a href="./m3u.html" target="_blank" class="link-card">
|
||
<div class="link-card-icon">
|
||
<span class="material-icons">swap_horiz</span>
|
||
</div>
|
||
<div class="link-card-content">
|
||
<div class="link-card-title">m3u转换</div>
|
||
<div class="link-card-description">转换 m3u 播放列表格式</div>
|
||
</div>
|
||
</a>
|
||
<a href="./downloadtool.html" target="_blank" class="link-card">
|
||
<div class="link-card-icon">
|
||
<span class="material-icons">cloud_download</span>
|
||
</div>
|
||
<div class="link-card-content">
|
||
<div class="link-card-title">歌曲下载工具</div>
|
||
<div class="link-card-description">在线搜索并下载歌曲</div>
|
||
</div>
|
||
</a>
|
||
<a href="./merge/index.html" target="_blank" class="link-card">
|
||
<div class="link-card-icon">
|
||
<span class="material-icons">merge_type</span>
|
||
</div>
|
||
<div class="link-card-content">
|
||
<div class="link-card-title">歌单合并工具</div>
|
||
<div class="link-card-description">合并多个歌单文件</div>
|
||
</div>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="button-section">
|
||
<h3 class="button-section-title">社区支持</h3>
|
||
<div class="community-support-content">
|
||
<div class="community-buttons-grid">
|
||
<a href="https://afdian.com/a/imhanxi" target="_blank">
|
||
<button class="btn-sponsor">
|
||
<span class="material-icons">favorite</span>
|
||
<span>爱发电</span>
|
||
</button>
|
||
</a>
|
||
<a href="https://github.com/hanxi/xiaomusic" target="_blank">
|
||
<button class="btn-github">
|
||
<span class="material-icons">star</span>
|
||
<span>点个 Star</span>
|
||
</button>
|
||
</a>
|
||
</div>
|
||
<div class="qrcode-container">
|
||
<img class="qrcode" src="./qrcode.png" alt="请涵曦喝奶茶🧋" />
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<footer>
|
||
<p>
|
||
Powered by
|
||
<a href="https://xdocs.hanxi.cc" target="_blank">XiaoMusic</a>
|
||
</p>
|
||
</footer>
|
||
</body>
|
||
|
||
</html>
|