Заново вызывается 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)