Задать вопрос

Как отправлять сообщения от бота в pyrogram с задержкой (300 секунд)?

Мне нужно отправлять сообщение через 5 минут после того как пользователь напишет что нибудь.
Я пробовал и через delay, там ничего не получалось, и через часовые пояса, там выходила ошибка что модуль zone слишком старый, используйте новый

Напишите как добавить задержку, используя delay
import pathlib

from configparser import ConfigParser

import aiofiles
from pyrogram import Client
from pyrogram import filters
from pyrogram.types import Message


# instantiate
config = ConfigParser()
# Читаем существ файл
config.read('config.ini')

# Читаем значения из раздела
api_id = config.get('pyrogram', 'api_id')
api_hash = config.get('pyrogram', 'api_hash')

pathlib.Path('users.txt').touch(exist_ok=True)

# Текст ответа
text = 'Привет'
photo = '2023-04-08_20-35-22.png'
app = Client(name='my_account', api_id=api_id, api_hash=api_hash)


@app.on_message(filters=filters.private)
async def job(_: Client, message: Message):
    # Получение юзеров из 'users.txt'
    async with aiofiles.open(file='users.txt', mode='r', encoding='utf-8') as file:
        users = (await file.read()).split('\n')
    # Если юзера нет в 'users.txt'
    if message.chat.id not in users:
        # Запись id юзера в файл
        with open("users.txt") as file:
            find = message.from_user.id in set(map(int, file.readlines()))

        if not find:
            with open("users.txt", mode='a+') as file:
                file.write(str(message.from_user.id) + "\n")
            await app.send_message(chat_id=message.from_user.id, text=text)
            await app.send_photo(chat_id=message.from_user.id, photo=photo)
            await app.delete_messages(chat_id=message.chat.id, message_ids=message.id)
        else:
            pass

    else:
        pass


app.run()
  • Вопрос задан
  • 317 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ваш ответ на вопрос

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

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