调整json数据

This commit is contained in:
liuwei
2025-06-03 17:37:22 +08:00
parent cba367b7a7
commit bfc0a48d50

View File

@@ -190,7 +190,8 @@ class GuessSongPlugin(MessagePluginInterface):
return await self._check_answer(message) return await self._check_answer(message)
else: # 没有内容,提示已有游戏在进行中 else: # 没有内容,提示已有游戏在进行中
await bot.send_text_message(session_id, await bot.send_text_message(session_id,
f"⚠️ 当前已有猜歌游戏在进行中,请直接回复 [猜歌名 歌名] 进行猜测\n或回复 [猜歌名 下一首] 跳过当前歌曲", sender) f"⚠️ 当前已有猜歌游戏在进行中,请直接回复 [猜歌名 歌名] 进行猜测\n或回复 [猜歌名 下一首] 跳过当前歌曲",
sender)
return True, "已有游戏进行中" return True, "已有游戏进行中"
# 否则开始新游戏(可以指定歌手或随机) # 否则开始新游戏(可以指定歌手或随机)
@@ -306,7 +307,7 @@ class GuessSongPlugin(MessagePluginInterface):
# 构建API请求URL - 使用抖音音乐API # 构建API请求URL - 使用抖音音乐API
if singer_name: if singer_name:
# 如果指定了歌手,搜索该歌手的歌曲 # 如果指定了歌手,搜索该歌手的歌曲
api_url = f"https://www.hhlqilongzhu.cn/api/joox/juhe_music.php?msg={singer_name}&type=json" api_url = f"https://hhlqilongzhu.cn/api/dg_douyinmusic.php?msg={singer_name}&type=json"
else: else:
# 如果没有指定歌手,使用热门歌手列表 # 如果没有指定歌手,使用热门歌手列表
popular_singers = [ popular_singers = [
@@ -315,7 +316,7 @@ class GuessSongPlugin(MessagePluginInterface):
"王菲", "张惠妹", "孙燕姿", "蔡依林", "五月天" "王菲", "张惠妹", "孙燕姿", "蔡依林", "五月天"
] ]
random_singer = random.choice(popular_singers) random_singer = random.choice(popular_singers)
api_url = f"https://www.hhlqilongzhu.cn/api/joox/juhe_music.php?msg={random_singer}&type=json" api_url = f"https://hhlqilongzhu.cn/api/dg_douyinmusic.php?msg={random_singer}&type=json"
# 发送请求获取歌曲列表 # 发送请求获取歌曲列表
response = requests.get(api_url) response = requests.get(api_url)
@@ -326,12 +327,16 @@ class GuessSongPlugin(MessagePluginInterface):
# 解析响应数据 # 解析响应数据
json_data = response.json() json_data = response.json()
if not json_data.get("data") or json_data.get("code") != 200:
self.LOG.error(f"API 返回数据格式错误: {json_data}")
return {}
# 从歌曲列表中随机选择一首 # 从歌曲列表中随机选择一首
song_list = json_data song_list = json_data.get("data")
if not song_list or not isinstance(song_list, list) or len(song_list) == 0: if not song_list or not isinstance(song_list, list) or len(song_list) == 0:
self.LOG.error(f"未找到歌曲列表或列表为空") self.LOG.error(f"未找到歌曲列表或列表为空")
return {} return {}
# self.LOG.debug(f"song_list:{song_list}")
# 随机选择一首歌曲 # 随机选择一首歌曲
random_song = random.choice(song_list) random_song = random.choice(song_list)
@@ -363,7 +368,7 @@ class GuessSongPlugin(MessagePluginInterface):
} }
except Exception as e: except Exception as e:
self.LOG.exception(f"获取随机歌曲出错: {e}") self.LOG.error(f"获取随机歌曲出错: {e}")
return {} return {}
async def _send_song_clip(self, bot: WechatAPIClient, song_info: Dict[str, Any], session_id: str) -> bool: async def _send_song_clip(self, bot: WechatAPIClient, song_info: Dict[str, Any], session_id: str) -> bool:
@@ -486,7 +491,8 @@ class GuessSongPlugin(MessagePluginInterface):
# 显示当前歌曲答案 # 显示当前歌曲答案
correct_answer = current_game.get("song_name", "") correct_answer = current_game.get("song_name", "")
singer_name = current_game.get("singer_name", "") singer_name = current_game.get("singer_name", "")
await bot.send_text_message(session_id, f"⏭️ 已跳过当前歌曲\n歌曲:{correct_answer}\n歌手:{singer_name}", sender) await bot.send_text_message(session_id, f"⏭️ 已跳过当前歌曲\n歌曲:{correct_answer}\n歌手:{singer_name}",
sender)
# 发送完整音乐 # 发送完整音乐
await self._send_music_message(bot, current_game, session_id) await self._send_music_message(bot, current_game, session_id)