From 265874b406ea14484492ed7ec213c3ce1599e0c2 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: Sat, 19 Mar 2022 18:24:02 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D1=87=D0=B0=D1=82=D0=BE=D0=B2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Получение ид_чата по его имени (для переезда в другой чат). Также начал делать "паническую кнопку", уже кидает юзера в чс и удаляет чат. --- main.py | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 44 insertions(+), 4 deletions(-) diff --git a/main.py b/main.py index 699be4a..ccf17ee 100644 --- a/main.py +++ b/main.py @@ -70,6 +70,25 @@ async def send_welcome(message: types.Message): ) +@dp.message_handler(commands=["channel_id"]) +async def get_channel_id(message: types.Message) -> None: + """Возвращает id канала по его имени""" + if message["from"]["id"] not in ADMINS: + return + + c_id = message.text[12:] + + result = await bot.send_message( + chat_id=c_id, + text="ping", + disable_notification=True, + ) + + await message.reply( + f"Ид чата {c_id}: *{result.sender_chat.id}*", parse_mode="Markdown" + ) + + @dp.message_handler(commands=["mes"]) @auth async def send_to_chanel(message: types.Message): @@ -82,7 +101,7 @@ async def send_to_chanel(message: types.Message): disable_notification=True, parse_mode="Markdown", ) - + print(result.sender_chat.id) await clean_up(message_id=result.message_id, delay_min=DELAY_TIME) @@ -150,9 +169,6 @@ async def add_me(message: types.Message): finded_token: Token = next((t for t in tokens_list if t.token == user_token), None) - if finded_token.expired(): - print("Пизда токену") - # если с токеном все впорядке, то добавляем юзера в базу if finded_token and not finded_token.expired(): new_user: Allowed_user = Allowed_user( @@ -185,6 +201,30 @@ async def add_me(message: types.Message): await message.reply(msg, reply=False, parse_mode="Markdown") +@dp.message_handler(commands=["stop"]) +@auth +async def stop_and_panic(message: types.Message) -> None: + """Panic-button для бота. + + При нажатии: + - кидает юзера в чс чата и удаляет его, + - удаляет из белого списка. + """ + u_id = message["from"]["id"] + finded_user: Allowed_user = ( + session.query(Allowed_user).filter(Allowed_user.user_id == u_id).first() + ) + await bot.kick_chat_member( + chat_id=CHAT_ID, user_id=finded_user.user_id, revoke_messages=True + ) + session.delete(finded_user) + session.commit() + + # рассылка сообщения админам что юзер нажал паническую кнопку. Нужны ид чатов. + # for admin_id in ADMINS: + # await bot.send_meassage() + + @dp.message_handler(commands=["wlc"]) @auth async def wlc(message: types.Message):