Задать вопрос

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

Начал изучать пайтон, хочу сделать простого бота, который чекает рсс ленту и посылает в канал ссылку, если есть новый пост. Но при этом хочу сделать возможность отключать новости и добавлять фиды. Для этого нужно, чтобы бот слушал сообщения. Ниже код, который я пробовал. Переставлял местами опрос бота и цикл, но работает что-то одно. Подскажите, что почитать, где посмотреть. Боты с похожими функциями смотрел в гитхабе, но там что-то очень сложное
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)
  • Вопрос задан
  • 137 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Советую почитать про основы работы асинхронных программ.

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

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

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

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

Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 250 000 ₽
AST Москва
До 350 000 ₽
Wanted. Москва
До 250 000 ₽
14 янв. 2025, в 00:52
100 руб./за проект
14 янв. 2025, в 00:45
7000 руб./за проект
14 янв. 2025, в 00:39
30000 руб./за проект