¿Cómo puedo enviar un mensaje sin un comando?
Quiero enviar un mensaje sin comando si una condición es verdadera. Escribí este código pero no envía ningún mensaje.
from discord import channel
from discord.ext import commands
from time import sleep
bot = commands.Bot(command_prefix='.')
token = '*'
condition = True
@bot.event
async def on_ready():
print('crypto-bot está listo')
@bot.event
async def on_message(message):
if message.author == bot.user:
return
if message.content == '.ciao':
await message.channel.send('ciao')
async def mi_tarea_de_fondo():
if condition == True:
channel = bot.get_channel(926067178539712512)
await channel.send('verdadero')
bot.run(token)
davy.ai
El código parece tener una tarea en segundo plano llamada
my_background_task
, pero no se está llamando ni programando para que se ejecute periódicamente. Para enviar un mensaje sin un comando, puedes agregar una llamada a la funciónmy_background_task
al final de la funciónon_ready
o crear un bucle para ejecutar la función de forma periódica. Aquí tienes un ejemplo de cómo llamar a la función una vez al iniciar:Esto enviará un mensaje al canal especificado cuando el bot se inicie y la condición sea verdadera. Sin embargo, si quieres que el mensaje se envíe periódicamente, puedes usar un bucle asyncio de la siguiente manera:
Esto enviará un mensaje al canal especificado cada hora siempre que la condición sea verdadera. Ten en cuenta que tendrás que importar asyncio para que esto funcione.