From c1bcd73c0d82e8f30a35023f2fe7776878229e46 Mon Sep 17 00:00:00 2001 From: remr2005 Date: Sun, 30 Jun 2024 17:40:05 +0300 Subject: [PATCH] hotfix --- commands/help.py | 2 +- vote.py | 35 +++++++++++++++++++++++------------ 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/commands/help.py b/commands/help.py index 05929b4..9533360 100644 --- a/commands/help.py +++ b/commands/help.py @@ -22,7 +22,7 @@ async def help(client: Client, message: Message): print("Help command received") args = message.text.split()[1:] if len(args)==0: - await message.reply('''В общем, здрасте, наш ебейший сервак https://discord.gg/UEYQPsAuR4, а так же канал в котором есть новости о разработке https://t.me/churkopeiaForever. Список всех доступных команд: + await message.reply('''В общем, здрасте, наш ебейший сервак https://discord.gg/UEYQPsAuR4, а так же канал в котором есть новости о разработке и щитпост(его гораздо больше) https://t.me/churkopeiaForever. Список всех доступных команд: make_admin remove_admin invite diff --git a/vote.py b/vote.py index b9bf2e2..b22a488 100644 --- a/vote.py +++ b/vote.py @@ -2,20 +2,31 @@ from pyrogram import Client from pyrogram.types import Message -""" Передаёте message, client, ставить вопрос question по которому идет голосование, варианты голосования options и время в секундах time. -Функция возвращает True если голосование прошло успешно и False во всех иных случаях. -P.S Так что хуй вам, а не третья опция""" -async def vote(message: Message, client: Client,question: str, time: int=259200) -> bool: +async def vote(message: Message, client: Client, question: str, time: int = 259200) -> bool: + try: poll_message = await client.send_poll( chat_id=message.chat.id, question=question, - options=["Да","Нет"], - is_anonymous=False # Устанавливаем False, если хотите, чтобы голосование было неанонимным + options=["Да", "Нет"], + is_anonymous=False ) - # TODO:пока что голосование идет ровно time секунд и никак иначе, нужно сделать автозавершения после n% проголосовавих - await asyncio.sleep(time) - results = {option.text: option.voter_count for option in poll_message.poll.options} - # Пока что голосование всегда идет по принципу Да vs Нет, не вижу смысла это менять, но вообще было неплохло TODO: кастомное голосование + b=0 + async for m in client.get_chat_members(message.chat.id): + b+=1 + print(f"Голосование {poll_message.id} стартовало") + while True: + await asyncio.sleep(1) + time-=1 + if time<=0: + break + poll_message = await client.get_messages(message.chat.id, poll_message.id) + results = {option.text: option.voter_count for option in poll_message.poll.options} + if (results["Да"]+results["Нет"])>int(b*0.6): + break + print(f"Голосование {poll_message.id} окончено") if results["Да"] >= results["Нет"]: - return True - return False \ No newline at end of file + return True + return False + except Exception as e: + print(f"Exception occurred: {str(e)}") + return False