在我的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()返回一个嵌入。
答案 0 :(得分:0)
这是因为googlesearch
使用requests
会阻塞整个代码
详细了解“阻止的含义”:Here
解决方案:
要么使用aiohttp
直接向Google发送异步HTTP请求,要么找到使用满足您需求的使用异步HTTP请求的模块