0

我正在尝试制作一个 Discord 机器人来侦听 webhook 并在它收到来自 webhook 的 ping 时在不和谐频道中发送消息。似乎由于线程在 python 中的工作方式,我无法在主线程上同时运行 Quart 服务器和 Discord.py 机器人。我正在尝试将机器人和服务器都迁移到他们自己的线程上。Quart 是 Fl​​ask 的异步实现,因此线程需要是异步的。有谁知道我怎么能做到这一点?我尝试了几种方法都不起作用

4

1 回答 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 回答