From 17c62de62e5d6a2a3799618483d6dca130648357 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: Fri, 11 Mar 2022 17:02:07 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Можно использовать /question и отправлять вопрос. Пока что вопрос висит заданное в коде время. --- main.py | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/main.py b/main.py index 1182588..08347d6 100644 --- a/main.py +++ b/main.py @@ -9,16 +9,18 @@ from datetime import timedelta logging.basicConfig(level=logging.INFO) DELAY_TIME = 1 +DELAY_TIME_Q = 3 +CHAT_ID = "@gorgorod_information" +ALLOWED_USERS = [106693654, 7063133] 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) + if message["from"]["id"] not in ALLOWED_USERS: + return await message.reply("Access Denied", reply=False) return await func(message) return wrapper @@ -27,7 +29,7 @@ def auth(func): 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) + await bot.delete_message(chat_id=CHAT_ID, message_id=message_id) except MessageToDeleteNotFound: print("Ошибка удаления сообщения") @@ -37,7 +39,7 @@ async def clean_up(message_id: int, delay_min: int): @auth async def send_welcome(message: types.Message): await message.reply( - "Бот для отправки новостей\n\n" "Еще одна строка\n", reply=False + "Бот для отправки новостей\n\n" "/mes для отправки сообщения\n", reply=False ) @@ -48,15 +50,30 @@ 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", + chat_id=CHAT_ID, 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) +@dp.message_handler(commands=["question"]) +@auth +async def send_to_chanel(message: types.Message): + + deletion_time = message.date + timedelta(minutes=DELAY_TIME_Q) + out_text = f"*Внимание, вопрос!*\n\n{message.text[10:]}\n\nБудет удалено в *{deletion_time}*" + result = await bot.send_message( + chat_id=CHAT_ID, + text=out_text, + disable_notification=True, + parse_mode="Markdown", + ) + + await clean_up(message_id=result.message_id, delay_min=DELAY_TIME_Q) + + if __name__ == "__main__": executor.start_polling(dp, skip_updates=True)