commit 7c7fab7853f257f246d39dce4ac77668dcd41032 Author: Дмитрий Date: Thu Mar 10 20:10:29 2022 +0300 Первая рабочая версия бота Может отправлять сообщения в группу, удаляет их через заколоченный внутри промежуток времени. 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)