From 7c7fab7853f257f246d39dce4ac77668dcd41032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Thu, 10 Mar 2022 20:10:29 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B2=D0=B0=D1=8F=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=87=D0=B0=D1=8F=20=D0=B2=D0=B5=D1=80=D1=81?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Может отправлять сообщения в группу, удаляет их через заколоченный внутри промежуток времени. --- main.py | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 main.py diff --git a/main.py b/main.py new file mode 100644 index 0000000..1182588 --- /dev/null +++ b/main.py @@ -0,0 +1,62 @@ +import os +import logging +import threading +from aiogram import Bot, Dispatcher, executor, types +from time import sleep +from aiogram.utils.exceptions import MessageToDeleteNotFound +import asyncio +from datetime import timedelta + +logging.basicConfig(level=logging.INFO) +DELAY_TIME = 1 +API_TOKEN = os.getenv("TELEGRAM_API_TOKEN") +bot = Bot(token=API_TOKEN) +dp = Dispatcher(bot) + + +def auth(func): + # нужно будет узнать свой id + async def wrapper(message): + # if message["from"]["id"] != 123: + # return await message.replay("Access Denied", reply=False) + return await func(message) + + return wrapper + + +async def clean_up(message_id: int, delay_min: int): + await asyncio.sleep(delay_min * 60) + try: + await bot.delete_message(chat_id="@gorgorod_information", message_id=message_id) + + except MessageToDeleteNotFound: + print("Ошибка удаления сообщения") + + +@dp.message_handler(commands=["start", "help"]) +@auth +async def send_welcome(message: types.Message): + await message.reply( + "Бот для отправки новостей\n\n" "Еще одна строка\n", reply=False + ) + + +@dp.message_handler(commands=["mes"]) +@auth +async def send_to_chanel(message: types.Message): + + deletion_time = message.date + timedelta(minutes=DELAY_TIME) + out_text = f"{message.text[5:]} \n\nБудет удалено в *{deletion_time}*" + result = await bot.send_message( + chat_id="@gorgorod_information", + text=out_text, + disable_notification=True, + parse_mode="Markdown", + ) + print(message.message_id) + print(result.message_id) + await clean_up(message_id=result.message_id, delay_min=DELAY_TIME) + + +if __name__ == "__main__": + executor.start_polling(dp, skip_updates=True)