@fr0s1ee

Как сделать так, чтобы бот отправил сообщение после определённого времени, но можно было что либо делать в боте?

Такая проблема. Мне надо чтобы бот отправил сообщение через какое-то время, но пока время не истекло бот будет работать и отвечать на команды и тд.
Я думал что можно так:
from time import sleep
from telebot import types
TOKEN = "мой токен"
bot = telebot.TeleBot(TOKEN)

@bot.message_handler(commands=['start'])
def start(message):
      markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
      sub_trial = types.KeyboardButton(text='Пробная подписка')
      pars = types.KeyboardButton(text='Начать парсить')
      markup.add(sub_trial, pars)
      bot.send_message(chat_id=message.chat.id, text='Hello', reply_markup=markup)

@bot.message_handler(content_types=['text'])
def text(message):
      if message.chat.type == 'private':
            if message.text == 'Пробная подписка':
                  bot.send_message(chat_id=message.chat.id, text='Подписка активирована. Подписка закончится через 10 секунд)
                  sleep(10)
                  bot.send_message(chat_id=message.chat.id, text='Подписка закончилась')
            if message.text == 'Начать парсить':
                 bot.send_message(chat_id=message.chat.id, text='Вот результаты парсинга:')
и как мне сделать так чтобы сначало нажав кнопку 'Пробная подписка' начался обратный отсчёт и я мог нажать на кнопку 'Начать парсить' не ждав 10 секунд?
  • Вопрос задан
  • 115 просмотров
Решения вопроса 1
Bagadan
@Bagadan
Я богдан
чат гпт сказал так

import telebot
import datetime
import schedule
import time

# Введите здесь токен вашего бота
TOKEN = 'YOUR_BOT_TOKEN'

# Создаем экземпляр бота
bot = telebot.TeleBot(TOKEN)

# Функция, которая будет вызываться каждый день в 15:00
def scheduled_reply():
    # Отправляем сообщение в определенный чат
    chat_id = 'CHAT_ID'  # Замените на ID чата, в который вы хотите отправить сообщение
    message = "Привет! Это ежедневное сообщение от бота."
    bot.send_message(chat_id, message)

# Обработчик команды /start
@bot.message_handler(commands=['start'])
def start(message):
    # Отправляем приветственное сообщение
    bot.reply_to(message, "Привет! Я бот, который будет отвечать раз в день в 15:00.")

# Обработчик команды /hello
@bot.message_handler(commands=['hello'])
def hello(message):
    # Отправляем приветственное сообщение
    bot.reply_to(message, "Привет! Как дела?")

# Планирование выполнения функции scheduled_reply каждый день в 15:00
schedule.every().day.at("15:00").do(scheduled_reply)

# Запуск планировщика в отдельном потоке
def scheduler():
    while True:
        schedule.run_pending()
        time.sleep(1)

# Запускаем обработчик команд и планировщик в отдельных потоках
import threading

command_thread = threading.Thread(target=bot.infinity_polling)
scheduler_thread = threading.Thread(target=scheduler)

command_thread.start()
scheduler_thread.start()


я несколько раз переспросил его уверен ли он в своем ответе он пару раз поправил
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы