diff options
| -rw-r--r-- | handlers/generate.py | 79 | ||||
| -rw-r--r-- | handlers/on_message.py | 2 | ||||
| -rw-r--r-- | shared/commands.py | 4 | ||||
| -rw-r--r-- | test.py | 28 |
4 files changed, 106 insertions, 7 deletions
diff --git a/handlers/generate.py b/handlers/generate.py index d0985c0..240b105 100644 --- a/handlers/generate.py +++ b/handlers/generate.py | |||
| @@ -1,15 +1,84 @@ | |||
| 1 | from datetime import datetime, timedelta | ||
| 2 | |||
| 1 | import mc | 3 | import mc |
| 2 | from shared.instances import dp | 4 | from shared.instances import dp, bot |
| 3 | from aiogram import types as t | 5 | from aiogram import types as t |
| 4 | from utils import filters as f | 6 | from utils import filters as f |
| 5 | 7 | ||
| 6 | 8 | poll_ids = {} | |
| 7 | @dp.message_handler(f.message.chance(10), f.message.is_chat, content_types=[t.ContentType.ANY]) | ||
| 8 | async def срать_сообщение_с_шансом(msg: t.Message): | ||
| 9 | await сгенерировать_хуету(msg) | ||
| 10 | 9 | ||
| 11 | 10 | ||
| 12 | @dp.message_handler(f.message.is_chat, commands=['gen']) | 11 | @dp.message_handler(f.message.is_chat, commands=['gen']) |
| 13 | async def сгенерировать_хуету(msg: t.Message): | 12 | async def сгенерировать_хуету(msg: t.Message): |
| 14 | samples = mc.util.load_txt_samples('samples.txt', separator='§') | 13 | samples = mc.util.load_txt_samples('samples.txt', separator='§') |
| 15 | await msg.answer(mc.StringGenerator(samples=samples).generate_string()) | 14 | await msg.answer(mc.StringGenerator(samples=samples).generate_string()) |
| 15 | |||
| 16 | |||
| 17 | @dp.message_handler(f.message.is_chat, commands=["del"]) | ||
| 18 | async def удалить_хуету(msg: t.Message): | ||
| 19 | await msg.delete() | ||
| 20 | |||
| 21 | if msg.reply_to_message: | ||
| 22 | if msg.reply_to_message.from_user.id in [bot.id, msg.from_user.id]: | ||
| 23 | await msg.reply_to_message.delete() | ||
| 24 | else: | ||
| 25 | await msg.answer("Ты умник, можно только свои или мои удалять") | ||
| 26 | else: | ||
| 27 | await msg.answer("Ты умник, ответь на сообщение") | ||
| 28 | |||
| 29 | |||
| 30 | @dp.message_handler(f.message.is_chat, commands=["pin"]) | ||
| 31 | async def закрепить_хуету(msg: t.Message): | ||
| 32 | await msg.delete() | ||
| 33 | |||
| 34 | btns = t.InlineKeyboardMarkup().add( | ||
| 35 | t.InlineKeyboardButton("Проверить сейчас", callback_data="chek") | ||
| 36 | ) | ||
| 37 | |||
| 38 | if msg.reply_to_message: | ||
| 39 | if msg.reply_to_message.from_user.id == bot.id: | ||
| 40 | poll = await msg.reply_to_message.reply_poll( | ||
| 41 | "Закрепить ?", | ||
| 42 | [ | ||
| 43 | "Да", | ||
| 44 | "УДАЛИ НАХУЙ", | ||
| 45 | "Нет" | ||
| 46 | ], | ||
| 47 | close_date=datetime.now() + timedelta(minutes=10), | ||
| 48 | reply_markup=btns | ||
| 49 | ) | ||
| 50 | |||
| 51 | poll_ids[poll.poll.id] = msg.reply_to_message | ||
| 52 | |||
| 53 | else: | ||
| 54 | await msg.answer("Ты умник, можно только мои закреплять") | ||
| 55 | else: | ||
| 56 | await msg.answer("Ты умник, ответь на сообщение") | ||
| 57 | |||
| 58 | |||
| 59 | @dp.message_handler(f.message.chance(10), f.message.is_chat, content_types=[t.ContentType.ANY]) | ||
| 60 | async def срать_сообщение_с_шансом(msg: t.Message): | ||
| 61 | await сгенерировать_хуету(msg) | ||
| 62 | |||
| 63 | |||
| 64 | @dp.poll_handler() | ||
| 65 | async def время_вышло(poll: t.Poll): | ||
| 66 | if poll.is_closed and poll.total_voter_count > 0: | ||
| 67 | yes = poll.options[0].voter_count | ||
| 68 | delete = poll.options[1].voter_count | ||
| 69 | win = max(yes, delete) | ||
| 70 | |||
| 71 | try: | ||
| 72 | msg: t.Message = poll_ids[poll.id] | ||
| 73 | except KeyError: | ||
| 74 | return | ||
| 75 | |||
| 76 | if win == yes: | ||
| 77 | await msg.pin() | ||
| 78 | elif win == delete: | ||
| 79 | await msg.delete() | ||
| 80 | |||
| 81 | |||
| 82 | @dp.callback_query_handler(f.message.is_chat, lambda clb: clb.data == "chek") | ||
| 83 | async def проверить_опрос(clb: t.CallbackQuery): | ||
| 84 | await bot.stop_poll(clb.message.chat.id, clb.message.message_id) | ||
diff --git a/handlers/on_message.py b/handlers/on_message.py index ee514ee..5a216e2 100644 --- a/handlers/on_message.py +++ b/handlers/on_message.py | |||
| @@ -8,7 +8,7 @@ async def сосалка(msg: t.Message): | |||
| 8 | if text.startswith('/'): | 8 | if text.startswith('/'): |
| 9 | return False | 9 | return False |
| 10 | with open('samples.txt', 'a+') as file: | 10 | with open('samples.txt', 'a+') as file: |
| 11 | file.write(text.replace('§', '').lower() + '§') | 11 | file.write(text.replace('§', '') + '§') |
| 12 | return False | 12 | return False |
| 13 | 13 | ||
| 14 | 14 | ||
diff --git a/shared/commands.py b/shared/commands.py index ffed9c3..fb3279d 100644 --- a/shared/commands.py +++ b/shared/commands.py | |||
| @@ -2,6 +2,8 @@ from aiogram.types import BotCommand as cmd, BotCommandScopeAllGroupChats as gro | |||
| 2 | 2 | ||
| 3 | commands = { | 3 | commands = { |
| 4 | group(): [ | 4 | group(): [ |
| 5 | cmd('gen', 'жидко пукнуть') | 5 | cmd('gen', 'Высрвть текст'), |
| 6 | cmd('del', 'Смыть говно'), | ||
| 7 | cmd('pin', 'Повесить говно на стенку'), | ||
| 6 | ] | 8 | ] |
| 7 | } | 9 | } |
| @@ -0,0 +1,28 @@ | |||
| 1 | n = int(input()) | ||
| 2 | lt = [] | ||
| 3 | |||
| 4 | for i in range(n - 1): | ||
| 5 | lt += [list(map(str, input().split()))] | ||
| 6 | |||
| 7 | lts = [lt[0]] | ||
| 8 | l = lt[0][0] | ||
| 9 | r = lt[0][1] | ||
| 10 | lt.pop(0) | ||
| 11 | |||
| 12 | for i in range(n - 2): | ||
| 13 | for j in range(len(lt)): | ||
| 14 | if lt[j][0] == r: | ||
| 15 | lts += [lt[j]] | ||
| 16 | lt.pop(j) | ||
| 17 | r = lts[-1][-1] | ||
| 18 | break | ||
| 19 | elif lt[j][1] == l: | ||
| 20 | lts = [lt[j]] + lts | ||
| 21 | lt.pop(j) | ||
| 22 | l = lts[0][0] | ||
| 23 | break | ||
| 24 | |||
| 25 | for i in range(n - 2, -1, -1): | ||
| 26 | print(lts[i][1]) | ||
| 27 | |||
| 28 | print(lts[0][0]) | ||
