不和谐机器人正在发送多条消息



当我运行代码并且发生某些事件时,机器人一直在从第三个 elif 语句发送消息。此消息应该是指向YouTube视频的链接,因为我创建了一个函数,可以读取某人发送的消息,搜索视频并返回视频链接

我将搜索视频的代码移动到函数getVid((,将其移动到另一个名为 search.py 的文件,我尝试以许多其他方式获取视频链接,但没有任何帮助

这是导致问题(包含不和谐机器人(main.py 片段:

@client.event
async def on_message(message):
    id = client.get_guild(###)
    if message.content == "!hello":
        await message.channel.send("hi")
    elif message.content == "!members":
        await message.channel.send(f"""All members: {id.member_count}""")
    elif message.content != "!hello" or "!members":
        res = search.getVid(message.content)
        await message.channel.send(res)

这里是youtube api连接 search.py:

def getVid(txt):
    req = youtube.search().list(q=txt, part="snippet", type="video", maxResults=3)
    res = req.execute()
    count = 0
    links = []
    for item in res['items']:
        links.append(item['id']['videoId'])
        count = count+1
        if count==3:
            break
    print(links)
    vid = links[0]
    print(links[0])
    link = f"http://youtube.com/watch?v={vid}"
    return link

我知道这看起来很恶心,但我真的尽了一切努力让它工作。

第三个 elif 语句每次都运行,即使应该只执行一个语句,但是当我删除此函数时,一切都正常工作。我希望我写得足够清楚,谢谢任何帮助

elif message.content != "!hello" or "!members":

正在检查message.content != "!hello"或值"!members"是否真实。所以它总是会返回true.您需要改为执行以下操作:

elif message.content != "!hello" or message.content != "!members":

甚至:

message.content not in ["!hello", "!members"]

相关内容

  • 没有找到相关文章

最新更新