我正在尝试制作一个 Discord 机器人来侦听 webhook 并在它收到来自 webhook 的 ping 时在不和谐频道中发送消息。似乎由于线程在 python 中的工作方式,我无法在主线程上同时运行 Quart 服务器和 Discord.py 机器人。我正在尝试将机器人和服务器都迁移到他们自己的线程上。Quart 是 Flask 的异步实现,因此线程需要是异步的。有谁知道我怎么能做到这一点?我尝试了几种方法都不起作用
问问题
776 次
1 回答
1
这是我写的一小段代码。这一切都应该奏效。如果你不使用 .env 文件,你可以复制粘贴你的令牌。但是,我强烈建议使用 .env 文件来处理秘密的事情。
import discord
import os
from discord.ext import commands
from dotenv import load_dotenv
from quart import Quart
load_dotenv()
TOKEN = os.getenv("DISCORD_TOKEN")
PREFIX = "!"
bot = commands.Bot(command_prefix=PREFIX)
@bot.event
async def on_ready():
print(f'{bot.user} has connected to Discord!')
@bot.command(name="hi")
async def hi_command(ctx):
await ctx.channel.send("hello")
app = Quart(__name__)
@app.route("/")
async def hello():
return "hello world"
bot.loop.create_task(app.run_task())
bot.run(TOKEN)
于 2021-04-20T03:15:28.410 回答