feat: 外网访问端口可独立配置

This commit is contained in:
涵曦 2024-07-04 10:15:48 +00:00
parent 485a42a9a0
commit ce9adcee7f
3 changed files with 10 additions and 2 deletions

View File

@ -56,7 +56,8 @@ class Config:
music_path: str = os.getenv("XIAOMUSIC_MUSIC_PATH", "music") music_path: str = os.getenv("XIAOMUSIC_MUSIC_PATH", "music")
conf_path: str = os.getenv("XIAOMUSIC_CONF_PATH", None) conf_path: str = os.getenv("XIAOMUSIC_CONF_PATH", None)
hostname: str = os.getenv("XIAOMUSIC_HOSTNAME", "192.168.2.5") hostname: str = os.getenv("XIAOMUSIC_HOSTNAME", "192.168.2.5")
port: int = int(os.getenv("XIAOMUSIC_PORT", "8090")) port: int = int(os.getenv("XIAOMUSIC_PORT", "8090")) # 监听端口
public_port: int = int(os.getenv("XIAOMUSIC_PUBLIC_PORT", 0)) # 歌曲访问端口
proxy: str | None = os.getenv("XIAOMUSIC_PROXY", None) proxy: str | None = os.getenv("XIAOMUSIC_PROXY", None)
search_prefix: str = os.getenv( search_prefix: str = os.getenv(
"XIAOMUSIC_SEARCH", "bilisearch:" "XIAOMUSIC_SEARCH", "bilisearch:"

View File

@ -96,6 +96,9 @@
<option value="false">false</option> <option value="false">false</option>
</select> </select>
<label for="public_port">外网访问端口(0表示跟监听端口一致):</label>
<input id="public_port" type="number" value="0"></input>
<label for="stop_tts_msg">停止提示音:</label> <label for="stop_tts_msg">停止提示音:</label>
<input id="stop_tts_msg" type="text" value="收到,再见"></input> <input id="stop_tts_msg" type="text" value="收到,再见"></input>
<label for="keywords_playlocal">播放本地歌曲口令:</label> <label for="keywords_playlocal">播放本地歌曲口令:</label>

View File

@ -105,6 +105,10 @@ class XiaoMusic:
self.hostname = self.config.hostname self.hostname = self.config.hostname
self.port = self.config.port self.port = self.config.port
self.public_port = self.config.public_port
if self.public_port == 0:
self.public_port = self.port
self.proxy = self.config.proxy self.proxy = self.config.proxy
self.search_prefix = self.config.search_prefix self.search_prefix = self.config.search_prefix
self.ffmpeg_location = self.config.ffmpeg_location self.ffmpeg_location = self.config.ffmpeg_location
@ -456,7 +460,7 @@ class XiaoMusic:
"get_music_url local music. name:%s, filename:%s", name, filename "get_music_url local music. name:%s, filename:%s", name, filename
) )
encoded_name = urllib.parse.quote(filename) encoded_name = urllib.parse.quote(filename)
return f"http://{self.hostname}:{self.port}/{encoded_name}" return f"http://{self.hostname}:{self.public_port}/{encoded_name}"
# 递归获取目录下所有歌曲,生成随机播放列表 # 递归获取目录下所有歌曲,生成随机播放列表
def _gen_all_music_list(self): def _gen_all_music_list(self):