使两个或多个命令能够在discord.py中同时运行

时间:2020-11-08 02:37:17

标签: python python-3.x discord discord.py

在我的Discord机器人上,我有一个命令可以搜索Google用户输入的内容。但是,如果此命令同时在两个或多个不同的位置运行,则第一个搜索必须在第二个之前加载将开始。我怎样才能同时跑步? 这是搜索代码:

@bot.command("search")
async def search(ctx, *, arg=""):
    if arg == "":
        await ctx.send(embed=error(title="No Query", desc="You need to put in what you want to search"))
    else:
        
        loading = await ctx.send(embed=msg(thumbnail="https://media4.giphy.com/media/dOmQEMUbT2fWKy7hCA/giphy.gif"))
        results = []
        for j in googlesearch.search(arg, tld='com', lang='en', num=10, start=0, stop=10, pause=2.0, safe="on"):
            results.append(j)
        answer = ""
        for i in range(0, len(results)):
            answer += results[i] + "\n"
        await loading.delete()
        if answer.replace(" ", "") == "":
            answer = "No Results (aww man)"
        await ctx.send(embed=msg(title="Search results", desc=answer + "\n Most relevant results at the top."))

导入为import googlesearch
msg()返回一个嵌入。

1 个答案:

答案 0 :(得分:0)

这是因为googlesearch使用requests会阻塞整个代码

详细了解“阻止的含义”:Here

解决方案:

要么使用aiohttp直接向Google发送异步HTTP请求,要么找到使用满足您需求的使用异步HTTP请求的模块