aboutsummaryrefslogtreecommitdiff
path: root/handlers/member.py
diff options
context:
space:
mode:
authorIgor Tolmachov <me@igorek.dev>2022-12-05 22:29:41 +0900
committerIgor Tolmachov <me@igorek.dev>2022-12-05 22:29:41 +0900
commit0de7969d30e3e57d681afdfcadd245f6988a0342 (patch)
treebc0957e9208f51354aa2330dc20a090b7f680823 /handlers/member.py
parent0d5cab62b0d077ad7946b64a534e3914f1cc79dd (diff)
downloadkarpov_ai_bot-0de7969d30e3e57d681afdfcadd245f6988a0342.tar.gz
karpov_ai_bot-0de7969d30e3e57d681afdfcadd245f6988a0342.zip
2.1
Diffstat (limited to 'handlers/member.py')
-rw-r--r--handlers/member.py23
1 files changed, 20 insertions, 3 deletions
diff --git a/handlers/member.py b/handlers/member.py
index 830351d..b228f6c 100644
--- a/handlers/member.py
+++ b/handlers/member.py
@@ -1,17 +1,22 @@
1from aiogram import types as t 1from aiogram import types as t
2 2
3from shared.instances import bot, config, dp 3from shared.instances import bot, chats, dp
4from utils import filters as f 4from utils import filters as f
5 5
6polls: dict[int, int] = {}
7
6 8
7@dp.chat_join_request_handler() 9@dp.chat_join_request_handler()
8async def new_member(cjr: t.ChatJoinRequest) -> None: 10async def new_member(cjr: t.ChatJoinRequest) -> None:
11 if cjr.from_user.id in polls:
12 return
13
9 reply = await bot.send_message( 14 reply = await bot.send_message(
10 cjr.chat.id, 15 cjr.chat.id,
11 f'<a href="tg://user?id={cjr.from_user.id}">{cjr.from_user.mention}</a> хочет в чат', 16 f'<a href="tg://user?id={cjr.from_user.id}">{cjr.from_user.mention}</a> хочет в чат',
12 parse_mode=t.ParseMode.HTML, 17 parse_mode=t.ParseMode.HTML,
13 ) 18 )
14 await reply.reply_poll( 19 poll = await reply.reply_poll(
15 "Пускаем ?", 20 "Пускаем ?",
16 [ 21 [
17 "Да", 22 "Да",
@@ -28,6 +33,18 @@ async def new_member(cjr: t.ChatJoinRequest) -> None:
28 await bot.send_message( 33 await bot.send_message(
29 cjr.from_user.id, "Заявка на вступление в группу будет вскоре рассмотрена" 34 cjr.from_user.id, "Заявка на вступление в группу будет вскоре рассмотрена"
30 ) 35 )
36 polls[cjr.from_user.id] = poll.message_id
37
38
39@dp.chat_member_handler(f.user.new_user)
40async def admin_accept_member(cmu: t.ChatMemberUpdated) -> None:
41 user_id = cmu.new_chat_member.user.id
42 if user_id in polls:
43 polls.pop(user_id)
44 await bot.send_message(
45 user_id,
46 "Ваша заявка на вступление принята, добро пожаловать в группу",
47 )
31 48
32 49
33@dp.callback_query_handler( 50@dp.callback_query_handler(
@@ -38,7 +55,7 @@ async def check_poll(clb: t.CallbackQuery) -> None:
38 msg = clb.message 55 msg = clb.message
39 data = clb.data.split(":") 56 data = clb.data.split(":")
40 user_id = int(data[1]) 57 user_id = int(data[1])
41 min_answers = config.get_config(msg.chat.id).members.answer_count 58 min_answers = chats.get(msg.chat.id).members.answer_count
42 59
43 if poll.total_voter_count < min_answers: 60 if poll.total_voter_count < min_answers:
44 await clb.answer( 61 await clb.answer(