telethon Проблема с обработчиком событий, бот дает ответ не дожидаясь ответа пользователя

При нажатии на клавишу "Найти слово в списке стоп-слов" бот выдаёт ответ "Слово "Найти слово в списке стоп-слов" отсутствует в списке стоп-слов." не дожидаясь нового сообщения, что может быть не так.

from telethon import TelegramClient, events
from telethon.tl.custom import Button

api_id = 
api_hash =
bot_token = 
owner_id = 

STATUS = False

waiting_for_input = {}

client = TelegramClient('bot', api_id, api_hash).start(bot_token=bot_token)


def create_keyboard_admin():
    keybord = [
        [Button.text('Статус парсинга'), Button.text('Редактирование стоп-слов')],
        [Button.text('Редактирование строгих слов'), Button.text('Редактирование гибких слов')],
        [Button.text('Запустить парсинг'), Button.text('Остановить парсинг')]
    ]
    return keybord


def create_keyboard_edit_stop_words():
    keybord = [
        [Button.text('Показать весь список стоп-слов'), Button.text('Найти слово в списке стоп-слов')],
        [Button.text('Добавить стоп-слово'), Button.text('Удалить стоп-слово')]
    ]
    return keybord


def create_keyboard_edit_without_accuracy_word():
    keybord = [
        [Button.text('Показать весь список гибких слов'), Button.text('Найти слово в списке гибких слов')],
        [Button.text('Добавить слово в список гибких слов'), Button.text('Удалить слово из списка гибких слов')]
    ]
    return keybord


def create_keyboard_edit_accuracy_word():
    keybord = [
        [Button.text('Показать весь список строгих слов'), Button.text('Найти слово в списке строгих слов')],
        [Button.text('Добавить слово в список строгих слов'), Button.text('Удалить слово из списка строгих слов')]
    ]
    return keybord


@client.on(events.NewMessage(pattern='/start'))
async def start(event):
    if event.sender_id == owner_id:
        await event.respond('Панель активна')
    else:
        await event.respond('У вас нет доступа')


@client.on(events.NewMessage(pattern='/admin'))
async def admin_panel(event):
    if event.sender_id == owner_id:
        await event.respond('Это админ панель! Используйте команды для управления ботом.', buttons=create_keyboard_admin())
    else:
        await event.respond('У вас нет доступа к этой команде.')


@client.on(events.NewMessage(pattern='Статус парсинга'))
async def status(event):
    if event.sender_id == owner_id:
        await event.respond('Cтатус парсинга:')
        if STATUS == True:
            await client.send_message(event.sender_id, "Парсинг в процессе")
        else:
            await client.send_message(event.sender_id, 'Парсинг выключен')
    else:
        await event.respond('У вас нет доступа к этой команде.')


@client.on(events.NewMessage(pattern='Редактирование стоп-слов'))
async def edit_stop_word(event):
    if event.sender_id == owner_id:
        await event.respond('Редактирование стоп-слов, для возвращения в главное меню используйте /admin:')
        if STATUS == True:
            await client.send_message(event.sender_id, 'Редактирование стоп-слов запрещено, парсер запущен в данный момент')
        else:
            await client.send_message(event.sender_id, 'Редактирование стоп-слов разрешено', buttons=create_keyboard_edit_stop_words())
    else:
        await event.respond('У вас нет доступа к этой команде.')


@client.on(events.NewMessage(pattern='Редактирование строгих слов'))
async def edit_accuracy_word(event):
    if event.sender_id == owner_id:
        await event.respond('Редактирование строгих слов, для возвращения в главное меню используйте /admin:')
        if STATUS == True:
            await client.send_message(event.sender_id, 'Редактирование строгих слов запрещено, парсер запущен в данный момент')
        else:
            await client.send_message(event.sender_id, 'Редактирование строгих слов разрешено', buttons=create_keyboard_edit_accuracy_word())
    else:
        await event.respond('У вас нет доступа к этой команде.')


@client.on(events.NewMessage(pattern='Редактирование гибких слов'))
async def edit_without_accuracy_word(event):
    if event.sender_id == owner_id:
        await event.respond('Редактирование гибких слов, для возвращения в главное меню используйте /admin:')
        if STATUS == True:
            await client.send_message(event.sender_id, 'Редактирование гибких слов запрещено, парсер запущен в данный момент')
        else:
            await client.send_message(event.sender_id, 'Редактирование гибких слов разрешено', buttons=create_keyboard_edit_without_accuracy_word())
    else:
        await event.respond('У вас нет доступа к этой команде.')


@client.on(events.NewMessage(pattern='Запустить парсинг'))
async def start_parsing(event):
    global STATUS
    if event.sender_id == owner_id:
        if STATUS == False:
            await event.respond('Запуск парсинга')
            STATUS = True
        else:
            await event.respond('Парсинг уже активен')
    else:
        await event.respond('У вас нет доступа к этой команде.')


@client.on(events.NewMessage(pattern='Остановить парсинг'))
async def stop_parsing(event):
    global STATUS
    if event.sender_id == owner_id:
        if STATUS == True:
            await event.respond('Остановка парсинга')
        else:
            await event.respond('Остановка не удалась, парсинг уже выключен')
    else:
        await event.respond('У вас нет доступа к этой команде.')


@client.on(events.NewMessage(pattern='Показать весь список стоп-слов'))
async def show_full_list_stop_words(event):
    if event.sender_id == owner_id and STATUS == False:
        list_stop_words = []
        with open('stop words.txt', 'r') as f:
            for line in f.readlines():
                list_stop_words.append(str(line.strip()))
        stop_words_message = '; '.join(list_stop_words)
        await event.respond(stop_words_message)
    else:
        await event.respond('У вас нет доступа к этой команде.')


@client.on(events.NewMessage(pattern='Найти слово в списке стоп-слов'))
async def buttons_search_word_in_stop_words(event):
    if event.sender_id == owner_id and not STATUS:
        waiting_for_input[event.sender_id] = 'search_word'
        await client.send_message(event.sender_id, 'Введите интересующее вас стоп-слово')
    else:
        await event.respond('У вас нет доступа к этой команде.')


@client.on(events.NewMessage(pattern='Добавить стоп-слово'))
async def add_stop_words(event):
    if event.sender_id == owner_id:
        pass


@client.on(events.NewMessage(pattern='Удалить стоп-слово'))
async def delete_stop_words(event):
    if event.sender_id == owner_id:
        pass
    pass


@client.on(events.NewMessage())
async def handle_response(event):
    if event.sender_id in waiting_for_input:
        state = waiting_for_input[event.sender_id]
        if state == 'search_word':
            search_word = event.text
            with open('stop words.txt', 'r') as f:
                data = [line.strip() for line in f.readlines()]
            if search_word in data:
                await event.respond(f'Слово "{search_word}" есть в списке стоп-слов.')
            else:
                await event.respond(f'Слово "{search_word}" отсутствует в списке стоп-слов.')

            del waiting_for_input[event.sender_id]

client.run_until_disconnected()

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