添加猜歌名功能,从API中提取歌曲前奏,然后猜歌名
This commit is contained in:
@@ -185,7 +185,8 @@ class GuessSongPlugin(MessagePluginInterface):
|
|||||||
if content: # 有内容,视为答案
|
if content: # 有内容,视为答案
|
||||||
return await self._check_answer(message)
|
return await self._check_answer(message)
|
||||||
else: # 没有内容,提示已有游戏在进行中
|
else: # 没有内容,提示已有游戏在进行中
|
||||||
await bot.send_text_message(session_id, f"⚠️ 当前已有猜歌游戏在进行中,请直接回复 [猜歌名 歌名] 进行猜测", sender)
|
await bot.send_text_message(session_id,
|
||||||
|
f"⚠️ 当前已有猜歌游戏在进行中,请直接回复 [猜歌名 歌名] 进行猜测", sender)
|
||||||
return True, "已有游戏进行中"
|
return True, "已有游戏进行中"
|
||||||
|
|
||||||
# 否则开始新游戏(可以指定歌手或随机)
|
# 否则开始新游戏(可以指定歌手或随机)
|
||||||
@@ -235,8 +236,13 @@ class GuessSongPlugin(MessagePluginInterface):
|
|||||||
# 从message中提取所需参数
|
# 从message中提取所需参数
|
||||||
sender = message.get("sender", "")
|
sender = message.get("sender", "")
|
||||||
session_id = message.get("roomid", "") or sender # 如果没有roomid,使用sender作为session_id
|
session_id = message.get("roomid", "") or sender # 如果没有roomid,使用sender作为session_id
|
||||||
answer = message.get("content", "").strip() # 从消息内容中获取答案
|
content = message.get("content", "").strip() # 从消息内容中获取答案
|
||||||
bot = message.get("bot")
|
bot = message.get("bot")
|
||||||
|
answer = None
|
||||||
|
for cmd in self._commands:
|
||||||
|
if content.startswith(cmd):
|
||||||
|
answer = content[len(cmd):].strip()
|
||||||
|
break
|
||||||
|
|
||||||
# 从Redis获取游戏数据
|
# 从Redis获取游戏数据
|
||||||
game_data = None
|
game_data = None
|
||||||
@@ -248,7 +254,6 @@ class GuessSongPlugin(MessagePluginInterface):
|
|||||||
|
|
||||||
correct_answer = game_data.get("song_name", "")
|
correct_answer = game_data.get("song_name", "")
|
||||||
singer_name = game_data.get("singer_name", "")
|
singer_name = game_data.get("singer_name", "")
|
||||||
|
|
||||||
# 检查答案是否正确(简单比较,可以改进为模糊匹配)
|
# 检查答案是否正确(简单比较,可以改进为模糊匹配)
|
||||||
if answer.lower() == correct_answer.lower():
|
if answer.lower() == correct_answer.lower():
|
||||||
# 游戏结束,发送成功消息
|
# 游戏结束,发送成功消息
|
||||||
|
|||||||
Reference in New Issue
Block a user