Как в content_types=['text'] выполнять несколько функций? pyTelegramBotAPI
Возникла проблема: в декораторе @bot.message_handler(content_types=['text']) мне необходимо выполнить несколько функций, но программа выполняет только первую, а остальные просто игнорирует...
Вот код:
import telebot
from telebot import types
from collections import deque
import time
wait = deque()
@bot.message_handler(content_types=['text'])
def get_messages(message):
for i in range(19):
if message.text == word_appearance[i]:
bot.send_message(message.from_user.id,
text=word_appearance[i] + " ⟶ " + transcription_appearance[i] + " ⟶ " + translation_appearance[i])
def get_in_message(message):
into = message.text
wait.append(into)
print(wait)
def get_out_message():
while len(wait) == 0:
time.sleep(1)
out = wait.popleft()
return out
Что нужно сделать, чтобы каждая из этих функций выполняла свою работу? Заранее спасибо!
Ответы (2 шт):
Автор решения: Пожилой Никита
→ Ссылка
import telebot
from telebot import types
from collections import deque
import time
wait = deque()
@bot.message_handler(content_types=['text'])
def get_messages(message):
for i in range(19):
if message.text == word_appearance[i]:
bot.send_message(message.from_user.id,
text=word_appearance[i] + " ⟶ " + transcription_appearance[i] + " ⟶ " + translation_appearance[i])
@bot.message_handler(content_types=['text'])
def get_in_message(message):
into = message.text
wait.append(into)
print(wait)
@bot.message_handler(content_types=['text'])
def get_out_message():
while len(wait) == 0:
time.sleep(1)
out = wait.popleft()
return out
Автор решения: quasi
→ Ссылка
Если код выше верный, то на мой взгляд правильнее будет вынести функции get_in_message и get_out_message за пределы хэндлера (можно даже в модуль) и просто обращаться к ним при необходимости.
import telebot
from telebot import types
from collections import deque
import time
wait = deque()
def get_in_message(message):
wait.append(message)
print(wait)
def get_out_message():
while len(wait) == 0:
time.sleep(1)
out = wait.popleft()
return out
@bot.message_handler(content_types=['text'])
def get_messages(message):
msg = message.text
for i in range(19):
if message.text == word_appearance[i]:
bot.send_message(message.from_user.id,
text=word_appearance[i] + " ⟶ " + transcription_appearance[i] + " ⟶ " + translation_appearance[i])
get_in_message(msg)
get_out_message()