Есть у меня команды в боте, например мута. Пишу команду, и выполняется:
await bot.restrict_chat_member(message.chat.id, message.reply_to_message.from_user.id, types.ChatPermissions(can_send_messages=False))
Но... Тут я просто ограничиваю пользователя, навечно! А мне нужно, чтобы на время. Вот, как это можно реализовать?
Вот код, если что:
import time
import logging
import config
from aiogram import Bot, Dispatcher, types, executor
from DataBase.DatabaseManager import DataBase
logging.basicConfig(level=logging.INFO)
db = DataBase('DataBase/database.db')
bot = Bot(token=config.Token)
dp = Dispatcher(bot)
chat_id = "-731258664"
@dp.message_handler(commands=["start", "pon"])
async def start(message: types.Message):
await message.answer("Чё надо?")
@dp.message_handler(text='Авы Диты')
async def ditava(message: types.Message):
photo = open('Photos/DitaAva.png', 'rb')
await bot.send_photo(chat_id, photo)
@dp.message_handler(commands=["mute"])
async def mute(message: types.Message):
if str(message.from_user.id) == config.admins:
if not message.reply_to_message:
await message.reply("Эта команда должна ОТВЕЧАТЬ на сообщение.")
return
await bot.restrict_chat_member(message.chat.id, message.reply_to_message.from_user.id, types.ChatPermissions(can_send_messages=False))
await message.reply_to_message.reply(f"Пользователь замучен.")
@dp.message_handler(commands=["unmute"])
async def unmute(message: types.Message):
if str(message.from_user.id) == config.admins:
if not message.reply_to_message:
await message.reply("Эта команда должна ОТВЕЧАТЬ на сообщение.")
return
await bot.restrict_chat_member(message.chat.id, message.reply_to_message.from_user.id, types.ChatPermissions(can_send_messages=True))
await message.reply_to_message.reply(f"Пользователь теперь может писать!")
@dp.message_handler()
async def mess_handler(message: types.Message):
text = message.text.lower()
for word in config.words:
if word in text:
await message.delete()
if not db.examination(message.from_user.id):
db.add(message.from_user.id)
if not db.mute(message.from_user.id):
print("/")
else:
await message.delete()
@dp.message_handler(content_types=["new_chat_members"])
async def newmember(message: types.Message):
await message.answer("Хай!)")
@dp.message_handler(content_types=["left_chat_member"])
async def leftmember(message: types.Message):
await message.delete()
if __name__ == "__main__":
executor.start_polling(dp)