Задать вопрос
@Egoria
я студент, и я новенький в деле программирования

Как вернуть сообщения которое было отправлено до команды?

Как сделать так чтоб бот оправлял предыдущее сообщения до команды как например Боту написали 1 сообщения а второе сообщения была командой и бот должен отправить 1 сообщения
import discord
from discord.ext import commands
from config import settings


intents = discord.Intents.default()
intents.message_content = True

client = discord.Client(intents=intents)
bot = commands.Bot(command_prefix="", intents=discord.Intents.all())
bot.remove_command('help')

Komands_1 = ["Привет", "hi", 'хай', 'ОГО']
Komands_2 = ["text"]

@bot.event
async def on_ready():
    print('ага, бот активен')

@bot.command(aliases = Komands_1)
async def on_message1(message):
    qwe = client.cached_messages()
    await message.send(qwe)


bot.run(settings['token'])
  • Вопрос задан
  • 85 просмотров
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@ShadowShow
Как я знаю, нельзя читать сообщения до актива бота. Можно например хранить в текстовом файле как я, но когда бот не активен, это не работает
@bot.event

async def on_message(msg):
   fopen = open('крутой текстовый файл', 'a')
   fopen.write(f'\n {msg.author}: {msg.content} \n')


а весь код чтобы еще искать с временем

import discord
import time
import asyncio
import nest_asyncio
import random
import pyautogui as pag
from discord.ext import commands
from datetime import datetime
nest_asyncio.apply()

intents = discord.Intents.all()
intents.presences = True
intents.members = True
intents.message_content = True

config = {
    'token':'токен да',
    'prefix':'!'
}

bot = commands.Bot(command_prefix=config['prefix'], intents=intents)

@bot.event

async def on_message(msg):
    if msg.author == bot.user:
        return
    if msg.content.startswith("find:"):
        search = msg.content[5:].strip()
        with open("D:\Python\IceUpgr\logs\msg.txt", mode="r") as read:
            for line in read:
                if search in line and line.startswith(f'{msg.guild.name}:'):
                    await msg.channel.send(line)
    if msg.content == "!ты пройдешь":
        pag.alert(f'{msg.author} alerted!', 'Discord')
    else:    
        datetime_object = msg.created_at.strftime("%Y-%m-%d %H:%M:%S")
        with open("D:\Python\IceUpgr\logs\msg.txt", mode="a") as file:
            file.write(f'\n{msg.guild.name}: [{datetime_object}] {msg.author}: {msg.content} \n')

bot.run(config['token'])
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы