aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Tolmachov <me@igorek.dev>2022-07-09 01:45:37 +0900
committerIgor Tolmachov <me@igorek.dev>2022-07-09 01:45:37 +0900
commitdf07db973318f1a2fd11cf77cad924f1b2d824cf (patch)
treebc0e6800c9234d9a6029254bb1752188b9b5667d
parent44df09aac64a8d0d3e64971418a6c6bf670803a9 (diff)
downloadkarpov_ai_bot-df07db973318f1a2fd11cf77cad924f1b2d824cf.tar.gz
karpov_ai_bot-df07db973318f1a2fd11cf77cad924f1b2d824cf.zip
Фикс багов и /void
-rw-r--r--handlers/gen.py13
-rw-r--r--handlers/leave.py9
-rw-r--r--handlers/member.py55
-rw-r--r--handlers/pin.py14
-rw-r--r--shared/commands.py8
5 files changed, 56 insertions, 43 deletions
diff --git a/handlers/gen.py b/handlers/gen.py
index a27fb86..d324049 100644
--- a/handlers/gen.py
+++ b/handlers/gen.py
@@ -1,3 +1,5 @@
1import os
2
1import mc 3import mc
2from aiogram import types as t 4from aiogram import types as t
3 5
@@ -24,6 +26,17 @@ async def удалить_хуету(msg: t.Message):
24 await msg.answer("Ты умник, ответь на сообщение") 26 await msg.answer("Ты умник, ответь на сообщение")
25 27
26 28
29@dp.message_handler(commands=["void"])
30async def лоботомия(msg: t.Message):
31 if msg.get_args() == "Я знаю что делаю":
32 os.remove(f"data/{msg.chat.id}")
33 await msg.answer("Лоботомия проведена успешно")
34 else:
35 await msg.answer(
36 "Напишите <code>/void Я знаю что делаю</code>", parse_mode=t.ParseMode.HTML
37 )
38
39
27@dp.message_handler(commands=["chance"]) 40@dp.message_handler(commands=["chance"])
28async def изменить_шанс_срания(msg: t.Message): 41async def изменить_шанс_срания(msg: t.Message):
29 if msg.get_args(): 42 if msg.get_args():
diff --git a/handlers/leave.py b/handlers/leave.py
deleted file mode 100644
index 198e847..0000000
--- a/handlers/leave.py
+++ /dev/null
@@ -1,9 +0,0 @@
1from aiogram import types as t
2
3from shared.instances import dp
4from utils import filters as f
5
6
7@dp.my_chat_member_handler(f.user.add_member)
8async def создатьтемплейты(upd: t.ChatMemberUpdated):
9 open(f"data/{upd.chat.id}", "w").close()
diff --git a/handlers/member.py b/handlers/member.py
index 3704c33..83fd39f 100644
--- a/handlers/member.py
+++ b/handlers/member.py
@@ -3,38 +3,34 @@ from aiogram import types as t
3from shared.instances import bot, dp 3from shared.instances import bot, dp
4from utils import filters as f 4from utils import filters as f
5 5
6request_queue: list[int] = []
7
8 6
9@dp.chat_join_request_handler() 7@dp.chat_join_request_handler()
10async def приём_запроса(cjr: t.ChatJoinRequest): 8async def приём_запроса(cjr: t.ChatJoinRequest):
11 if cjr.from_user.id not in request_queue: 9 r = await bot.send_message(
12 request_queue.append(cjr.from_user.id) 10 cjr.chat.id,
13 r = await bot.send_message( 11 f'<a href="tg://user?id={cjr.from_user.id}">{cjr.from_user.mention}</a> хочет в чат',
14 cjr.chat.id, 12 parse_mode=t.ParseMode.HTML,
15 f'<a href="tg://user?id={cjr.from_user.id}">{cjr.from_user.mention}</a> хочет в чат', 13 )
16 parse_mode=t.ParseMode.HTML, 14 await bot.send_poll(
17 ) 15 cjr.chat.id,
18 await bot.send_poll( 16 "Пускаем ?",
19 cjr.chat.id, 17 [
20 "Пускаем ?", 18 "Да",
21 [ 19 "Нет",
22 "Да", 20 ],
23 "Нет", 21 False,
24 ], 22 reply_to_message_id=r.message_id,
25 False, 23 open_period=600,
26 reply_to_message_id=r.message_id, 24 reply_markup=t.InlineKeyboardMarkup().add(
27 open_period=600, 25 t.InlineKeyboardButton(
28 reply_markup=t.InlineKeyboardMarkup().add( 26 "Проверить опрос",
29 t.InlineKeyboardButton( 27 callback_data=f"check_request_poll:{cjr.from_user.id}",
30 "Проверить опрос", 28 )
31 callback_data=f"check_request_poll:{cjr.from_user.id}", 29 ),
32 ) 30 )
33 ), 31 await bot.send_message(
34 ) 32 cjr.from_user.id, "Заявка на вступление в группу будет вскоре рассмотрена"
35 await bot.send_message( 33 )
36 cjr.from_user.id, "Заявка на вступление в группу будет вскоре рассмотрена"
37 )
38 34
39 35
40@dp.callback_query_handler( 36@dp.callback_query_handler(
@@ -52,7 +48,6 @@ async def проверить_запрос(clb: t.CallbackQuery):
52 if not poll.is_closed: 48 if not poll.is_closed:
53 await bot.stop_poll(msg.chat.id, msg.message_id) 49 await bot.stop_poll(msg.chat.id, msg.message_id)
54 50
55 request_queue.remove(user_id)
56 yes = poll.options[0].voter_count 51 yes = poll.options[0].voter_count
57 no = poll.options[1].voter_count 52 no = poll.options[1].voter_count
58 win = max(yes, no) 53 win = max(yes, no)
diff --git a/handlers/pin.py b/handlers/pin.py
index dc08633..e2781c4 100644
--- a/handlers/pin.py
+++ b/handlers/pin.py
@@ -19,17 +19,23 @@ async def закрепить_хуету(msg: t.Message):
19 ["Да", "УДАЛИ НАХУЙ", "Нет"], 19 ["Да", "УДАЛИ НАХУЙ", "Нет"],
20 close_date=datetime.now() + timedelta(minutes=10), 20 close_date=datetime.now() + timedelta(minutes=10),
21 reply_markup=t.InlineKeyboardMarkup().add( 21 reply_markup=t.InlineKeyboardMarkup().add(
22 t.InlineKeyboardButton("Проверить опрос", callback_data="check_pin_poll") 22 t.InlineKeyboardButton(
23 "Проверить опрос",
24 callback_data=f"check_pin_poll:{msg.reply_to_message.id}",
25 )
23 ), 26 ),
24 ) 27 )
25 else: 28 else:
26 await msg.answer("Ты умник, ответь на сообщение") 29 await msg.answer("Ты умник, ответь на сообщение")
27 30
28 31
29@dp.callback_query_handler(f.message.is_chat, lambda clb: clb.data == "check_pin_poll") 32@dp.callback_query_handler(
33 f.message.is_chat, lambda clb: clb.data.split(":")[0] == "check_pin_poll"
34)
30async def проверить_закреп(clb: t.CallbackQuery): 35async def проверить_закреп(clb: t.CallbackQuery):
31 poll = clb.message.poll 36 poll = clb.message.poll
32 msg = clb.message 37 msg = clb.message
38 pin = int(clb.data.split(":")[1])
33 39
34 if poll.total_voter_count < 2: 40 if poll.total_voter_count < 2:
35 await clb.answer(f"Нужно хотябы 2 голоса, сейчас {poll.total_voter_count}") 41 await clb.answer(f"Нужно хотябы 2 голоса, сейчас {poll.total_voter_count}")
@@ -42,7 +48,7 @@ async def проверить_закреп(clb: t.CallbackQuery):
42 win = max(yes, delete) 48 win = max(yes, delete)
43 49
44 if win == yes: 50 if win == yes:
45 await msg.reply_to_message.pin() 51 await msg.chat.pin_message(pin)
46 elif win == delete: 52 elif win == delete:
47 await msg.reply_to_message.delete() 53 await msg.chat.delete_message(pin)
48 await msg.delete() 54 await msg.delete()
diff --git a/shared/commands.py b/shared/commands.py
index bf1a6cb..ceb6226 100644
--- a/shared/commands.py
+++ b/shared/commands.py
@@ -6,6 +6,14 @@ commands = {
6 group(): [ 6 group(): [
7 cmd("gen", "Покакать текстом"), 7 cmd("gen", "Покакать текстом"),
8 cmd("del", "Убрать говно"), 8 cmd("del", "Убрать говно"),
9 cmd("void", "Лоботомия"),
10 cmd("pin", "Закрепить говно"),
11 cmd("chance", "Установить шанс покакать в туалет"),
12 ],
13 private(): [
14 cmd("gen", "Покакать текстом"),
15 cmd("del", "Убрать говно"),
16 cmd("void", "Лоботомия"),
9 cmd("pin", "Закрепить говно"), 17 cmd("pin", "Закрепить говно"),
10 cmd("chance", "Установить шанс покакать в туалет"), 18 cmd("chance", "Установить шанс покакать в туалет"),
11 ], 19 ],