Заново вызывается handler(Telethon)

Это client-bot telegram

Когда доходить код до команды await event.message.click(data = (event.message.to_dict()['reply_markup']['rows'][0]['buttons'][0]['data'])) в def Quests(event), то normal_handler(event) заново запускается

import sys
import logging
import asyncio
from telethon import TelegramClient, sync, events, Button
from time import sleep

api_id = your id
api_hash = 'your hash'
client = TelegramClient('arkold', api_id, api_hash)

stamina_alreadycheck = False

print("Нажмите кнопку героя в Chat Wars боте")

async def StaminaCheker(event):
    try:
        if "Выносливость" in str(event.message.to_dict()['message']):
            StaminaHandler = str(event.message.to_dict()['message'])

            NumOfStamina = int(StaminaHandler[StaminaHandler.index("Выносливость: ")+14]+StaminaHandler[StaminaHandler.index("Выносливость: ")+15])
            stamina_alreadycheck = True
            await client.send_message('Chat Wars 3', '?Квесты')
            return NumOfStamina
        else:
            print("Герой не прописался игре")
    except:
        print(StaminaHandler[StaminaHandler.index("Выносливость: ")+14])
        NumOfStamina = int(StaminaHandler[StaminaHandler.index("Выносливость: ")+14])
        stamina_alreadycheck = True
        await client.send_message('Chat Wars 3', '?Квесты')
        return NumOfStamina

async def Quests(event):
    MessageHandler = 'В лесу всякое может случиться' in event.message.to_dict()['message']
    if MessageHandler != 1:
        print(event.message)
        while(True):
            await event.message.click(data = (event.message.to_dict()['reply_markup']['rows'][0]['buttons'][0]['data']))
            break
    else:
        choice = int(input("1 - Лес, 2 - Болото, 3 - Долина, 4 - ГРАБИТЬ КОРОВАНЫ, 5 - Арены: "))
        if choice == 1:
            await event.message.click(data = (event.message.to_dict()['reply_markup']['rows'][0]['buttons'][0]['data']))
        elif choice == 2:
            await event.message.click(data = (event.message.to_dict()['reply_markup']['rows'][0]['buttons'][1]['data']))
        elif choice == 3:
            await event.message.click(data = (event.message.to_dict()['reply_markup']['rows'][0]['buttons'][2]['data']))
        elif choice == 4:
            await event.message.click(data = (event.message.to_dict()['reply_markup']['rows'][0]['buttons'][3]['data']))
        else:
            print('такой расклад событий не предусмотрен программистами(сори)')
            stamina_alreadycheck = False
            client.send_message("Chat Wars 3", "?Герой")

async def StaminaTime(event):
    StaminaTimeHandler = event.message.to_dict()['message']
    try:
        StaminaTime = int(StaminaTimeHandler[StaminaTimeHandler.index("⏰")+1]+StaminaTimeHandler[StaminaTimeHandler.index("⏰")+2])*60
        sleep(StaminaTime)
    except:
        if(StaminaTimeHandler[StaminaTimeHandler.index("⏰")+1] != 'м'):  
            StaminaTime = int(StaminaTimeHandler[StaminaTimeHandler.index("⏰")+1])*60
            sleep(StaminaTime)
        else:
            sleep(61)

@client.on(events.NewMessage(chats=("Chat Wars 3"), incoming = True))
async def normal_handler(event):    
    try:    
        if stamina_alreadycheck == False:
            if await StaminaCheker(event) == 0:
                StaminaTime(event)

                
        else:
            await Quests(event)
      
    except Exception as e: print(e)
#326

client.start()
client.run_until_disconnected()

for dialog in client.iter_dialogs():
    print(dialog.title)


Ответы (0 шт):