Как для тг бота сделать одновременно слушатель сообщений и выполнение чего-то в цикле?

Начал изучать пайтон, хочу сделать простого бота, который чекает рсс ленту и посылает в канал ссылку, если есть новый пост. Но при этом хочу сделать возможность отключать новости и добавлять фиды. Для этого нужно, чтобы бот слушал сообщения. Ниже код, который я пробовал. Переставлял местами опрос бота и цикл, но работает что-то одно. Подскажите, что почитать, где посмотреть. Боты с похожими функциями смотрел в гитхабе, но там что-то очень сложное
import telebot, time
from config.config import BOT_TOKEN

bot = telebot.TeleBot(BOT_TOKEN)


@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
    bot.reply_to(message, "Howdy, how are you doing?")


@bot.message_handler(func=lambda message: True)
def echo_all(message):
    bot.reply_to(message, message.text)


bot.polling()

while True:
    print('Hello')
    time.sleep(1)
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Советую почитать про основы работы асинхронных программ.

Но если на пальцах, считай, что из bot.polling() программа не выйдет до своего завершения. Она там будет крутиться, ждать события, и дёргать обработчики.

Поэтому всё, что ты хочешь научить бота делать, нужно делать
  • ИЛИ в рамках фреймворка (какого кстати? pyTelegramBotAPI? Он это не умеет)
  • ИЛИ в рамках отдельного потока, который запускать до вызова bot.polling()
  • ИЛИ вообще в рамках отдельного скрипта, который вызывать по крону.

Если в рамках потока, нужно будет посмотреть, позволяет ли телебот вызывать методы из другого потока.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 03:54
1500 руб./за проект
22 нояб. 2024, в 02:56
10000 руб./за проект
22 нояб. 2024, в 00:55
500 руб./за проект