加上撤回流程
This commit is contained in:
@@ -228,8 +228,8 @@ class GuessSongPlugin(MessagePluginInterface):
|
||||
return await self._check_answer(message)
|
||||
else: # 没有内容,提示已有游戏在进行中
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id,
|
||||
f"⚠️ 当前已有猜歌游戏在进行中,请直接回复 [猜歌名 歌名] 进行猜测\n或回复 [猜歌名 下一首] 跳过当前歌曲",
|
||||
sender)
|
||||
f"⚠️ 当前已有猜歌游戏在进行中,请直接回复 [猜歌名 歌名] 进行猜测\n或回复 [猜歌名 下一首] 跳过当前歌曲",
|
||||
sender)
|
||||
self.revoke.add_message_to_revoke(session_id, client_msg_id, create_time, new_msg_id, 4)
|
||||
return True, "已有游戏进行中"
|
||||
|
||||
@@ -243,7 +243,9 @@ class GuessSongPlugin(MessagePluginInterface):
|
||||
# 搜索歌曲
|
||||
song_info = await self._get_random_song(singer_name)
|
||||
if not song_info or not song_info.get("play_url"):
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id, f"❌未找到{singer_name or '随机'}歌曲,请重试", sender)
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id,
|
||||
f"❌未找到{singer_name or '随机'}歌曲,请重试",
|
||||
sender)
|
||||
self.revoke.add_message_to_revoke(session_id, client_msg_id, create_time, new_msg_id, 4)
|
||||
return False, "未找到歌曲"
|
||||
|
||||
@@ -264,8 +266,8 @@ class GuessSongPlugin(MessagePluginInterface):
|
||||
|
||||
# 发送游戏开始消息
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id,
|
||||
f"🎵 猜歌名游戏开始!\n请听10秒钟歌曲片段,然后回复[猜歌名 歌名]来猜测歌曲名称。\n回复[猜歌名 下一首]可跳过当前歌曲。\n歌手: {song_info.get('singer_name', '未知')}",
|
||||
sender)
|
||||
f"🎵 猜歌名游戏开始!\n请听10秒钟歌曲片段,然后回复[猜歌名 歌名]来猜测歌曲名称。\n回复[猜歌名 下一首]可跳过当前歌曲。\n歌手: {song_info.get('singer_name', '未知')}",
|
||||
sender)
|
||||
self.revoke.add_message_to_revoke(session_id, client_msg_id, create_time, new_msg_id, 30)
|
||||
|
||||
# 发送10秒音频片段
|
||||
@@ -275,7 +277,9 @@ class GuessSongPlugin(MessagePluginInterface):
|
||||
|
||||
except Exception as e:
|
||||
self.LOG.error(f"开始猜歌游戏出错: {e}")
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id, f"❌开始猜歌游戏出错,请稍后重试", sender)
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id,
|
||||
f"❌开始猜歌游戏出错,请稍后重试",
|
||||
sender)
|
||||
self.revoke.add_message_to_revoke(session_id, client_msg_id, create_time, new_msg_id, 5)
|
||||
return False, f"处理出错: {e}"
|
||||
|
||||
@@ -300,7 +304,8 @@ class GuessSongPlugin(MessagePluginInterface):
|
||||
game_data = self.redis_db.get_game_session(session_id)
|
||||
|
||||
if not game_data:
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id, "没有进行中的游戏", sender)
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id, "没有进行中的游戏",
|
||||
sender)
|
||||
self.revoke.add_message_to_revoke(session_id, client_msg_id, create_time, new_msg_id, 5)
|
||||
return False, "没有进行中的游戏"
|
||||
|
||||
@@ -335,16 +340,18 @@ class GuessSongPlugin(MessagePluginInterface):
|
||||
self.redis_db.save_game_session(session_id, game_data)
|
||||
|
||||
# 告知用户答案错误
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id, f"❌ 答案错误,请继续猜测!", sender)
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id,
|
||||
f"❌ 答案错误,请继续猜测!", sender)
|
||||
self.revoke.add_message_to_revoke(session_id, client_msg_id, create_time, new_msg_id, 4)
|
||||
|
||||
|
||||
return False, "答案错误"
|
||||
except Exception as e:
|
||||
self.LOG.error(f"检查答案出错: {e}")
|
||||
session_id = message.get("roomid", "") or message.get("sender", "")
|
||||
sender = message.get("sender", "")
|
||||
bot = message.get("bot")
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id, f"❌检查答案出错,请稍后重试", sender)
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id,
|
||||
f"❌检查答案出错,请稍后重试", sender)
|
||||
self.revoke.add_message_to_revoke(session_id, client_msg_id, create_time, new_msg_id, 4)
|
||||
return False, f"处理出错: {e}"
|
||||
|
||||
@@ -465,9 +472,9 @@ class GuessSongPlugin(MessagePluginInterface):
|
||||
|
||||
xml_message = f"{MUSIC_XML}".format(song_name=song_name, singer_name=singer_name, play_url=play_url,
|
||||
data_url=data_url, singer_pic=singer_pic)
|
||||
self.LOG.info(f"发送音乐消息:{xml_message}")
|
||||
self.LOG.debug(f"发送音乐消息:{xml_message}")
|
||||
res = await bot.send_app_message(wxid=receiver, xml=xml_message, type=0)
|
||||
self.LOG.info(f"发送音乐消息 res:{res}")
|
||||
self.LOG.debug(f"发送音乐消息 res:{res}")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
@@ -483,16 +490,20 @@ class GuessSongPlugin(MessagePluginInterface):
|
||||
current_game = self.redis_db.get_game_session(session_id)
|
||||
|
||||
if not current_game or current_game.get("status") != "playing":
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id, f"⚠️ 当前没有进行中的猜歌游戏", sender)
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id,
|
||||
f"⚠️ 当前没有进行中的猜歌游戏",
|
||||
sender)
|
||||
self.revoke.add_message_to_revoke(session_id, client_msg_id, create_time, new_msg_id, 4)
|
||||
return False, "没有进行中的游戏"
|
||||
|
||||
# 显示当前歌曲答案
|
||||
correct_answer = current_game.get("song_name", "")
|
||||
singer_name = current_game.get("singer_name", "")
|
||||
await bot.send_text_message(session_id, f"⏭️ 已跳过当前歌曲\n歌曲:{correct_answer}\n歌手:{singer_name}",
|
||||
sender)
|
||||
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id,
|
||||
f"⏭️ 已跳过当前歌曲\n歌曲:{correct_answer}\n歌手:{singer_name}",
|
||||
sender)
|
||||
self.revoke.add_message_to_revoke(session_id, client_msg_id, create_time, new_msg_id, 10)
|
||||
# 发送完整音乐
|
||||
await self._send_music_message(bot, current_game, session_id)
|
||||
|
||||
@@ -505,6 +516,8 @@ class GuessSongPlugin(MessagePluginInterface):
|
||||
|
||||
except Exception as e:
|
||||
self.LOG.error(f"跳过当前歌曲出错: {e}")
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id, f"❌跳过当前歌曲出错,请稍后重试", sender)
|
||||
client_msg_id, create_time, new_msg_id = await bot.send_text_message(session_id,
|
||||
f"❌跳过当前歌曲出错,请稍后重试",
|
||||
sender)
|
||||
self.revoke.add_message_to_revoke(session_id, client_msg_id, create_time, new_msg_id, 4)
|
||||
return False, f"处理出错: {e}"
|
||||
|
||||
Reference in New Issue
Block a user