import time from aiogram.methods import AnswerGuestQuery, SendPoll from aiogram.types import InlineQueryResultArticle, InputTextMessageContent, Message from aiogram.enums import ChatType from supergenerator import * def is_blocked(user_id): current_time = time.time() if user_id and user_id in last_command_time: time_diff = current_time - last_command_time[user_id][0] if user_id in last_error_time: time_error_diff = current_time - last_error_time[user_id] else: last_error_time[user_id] = current_time time_error_diff = 1984 if time_diff < 3: alo = "🚫 *файл не вошёл.* хватит так быстро слать свои сообщения.\n" \ f"подожди {round(3 - time_diff, 3)} секунд, брат😡😡" elif last_command_time[user_id][1] and time_diff < 10: alo = "🚫 *файл не вошёл.* я ещё не сгенерировал прошлое сообщение.\n" \ f"подожди {round(10 - time_diff, 3)} секунд, чтобы я закрыл глаза " \ "на это da." elif len(last_command_time[user_id][2]) > 1 and time_diff > 5: last_command_time[user_id] = [current_time, False, []] return "", False elif len(last_command_time[user_id][2]) > 1: alo = "🚫 *файл не вошёл.* хватит так быстро слать свои сообщения." else: return "", False if time_error_diff < 2: return "", True else: last_error_time[user_id] = current_time return alo, True return "", False def is_replied_bot(message, is_channel, user_text, config=None): if message.chat.type in [ChatType.GROUP, ChatType.SUPERGROUP, ChatType.CHANNEL]: if not is_channel: is_reply_to_bot = ( message.reply_to_message and message.reply_to_message.from_user and message.reply_to_message.from_user.is_bot and message.reply_to_message.from_user.username == BOT_USERNAME ) if config: if config.get("call") == "da": mentions_bot = any( user_text.lower().startswith(call.lower()) for call in BOT_CALLS ) for call in BOT_CALLS: if call.startswith("@"): if call.lower() in user_text.lower(): mentions_bot = True else: mentions_bot = False else: mentions_bot = any( user_text.lower().startswith(call.lower()) for call in BOT_CALLS ) for call in BOT_CALLS: if call.startswith("@"): if call.lower() in user_text.lower(): mentions_bot = True if not (is_reply_to_bot or mentions_bot): return False return True async def g_answer(data, message, text, title="da", id="1", parse_mode="Markdown"): return await data["bot"]( AnswerGuestQuery( guest_query_id=message.guest_query_id, result=InlineQueryResultArticle( id=id, title=title, input_message_content=InputTextMessageContent( message_text=text, parse_mode=parse_mode, ), ), ) ) async def answer_poll( data, message, question, options, is_anonymous=True, poll_type="regular", allows_multiple_answers=False, correct_option_id=None, user_id=None ): return await data["bot"]( SendPoll( chat_id=user_id, question=question, options=options, is_anonymous=is_anonymous, type=poll_type, allows_multiple_answers=allows_multiple_answers, correct_option_id=correct_option_id, ) )