Мне нужно отправлять сообщение через 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()