Привет! Я делаю бота с pytelegrambotapi, и хочу сделать возможной отправку сообщений в заранее указанное время
import telebot
from config import token
from datetime import datetime
from random import randint
from config import quotes
import os
from telebot import TeleBot
from telebot import types
import time
import schedule
bot=telebot.TeleBot(token,parse_mode='html')
@bot.message_handler(commands=["start"])
def start_message(message):
bot.reply_to(message,'<i> Привет, {0.first_name}!</i>'.format(message.from_user))
daytime= types.InlineKeyboardMarkup()
but1= types.InlineKeyboardButton('Утром', callback_data='утро')
but2= types.InlineKeyboardButton('Днём', callback_data= 'день')
but3= types.InlineKeyboardButton('Вечером', callback_data= 'вечер')
daytime.add(but1,but2,but3)
bot.reply_to(message,'Когда ты хочешь получать мои сообщения?', reply_markup= daytime)
@bot.callback_query_handler(func=lambda call: True)
def hour_changer(call):
if call.data == 'утро':
keyboard_morning= types.InlineKeyboardMarkup()
m_bt1= types.InlineKeyboardButton('06:00', callback_data ='06:00')
m_bt2= types.InlineKeyboardButton('07:00', callback_data ='07:00')
m_bt3= types.InlineKeyboardButton('08:00', callback_data ='08:00')
m_bt4= types.InlineKeyboardButton('09:00', callback_data ='09:00')
m_bt5= types.InlineKeyboardButton('10:00', callback_data ='10:00')
m_bt6= types.InlineKeyboardButton('11:00', callback_data ='11:00')
m_bt7= types.InlineKeyboardButton('12:00', callback_data ='12:00')
keyboard_morning.add(m_bt1, m_bt2, m_bt3, m_bt4, m_bt5, m_bt6, m_bt7)
bot.answer_callback_query(call.id, 'Выбери удобное время')
bot.edit_message_text(chat_id= call.message.chat.id, message_id= call.message.message_id, text= 'Выбери удобное время', reply_markup= keyboard_morning,)
elif call.data == 'день':
keyboard_day= types.InlineKeyboardMarkup()
d_bt1= types.InlineKeyboardButton('13:00', callback_data = '13:00')
d_bt2= types.InlineKeyboardButton('14:00', callback_data = '14:00')
d_bt3= types.InlineKeyboardButton('15:00', callback_data = '15:00')
d_bt4= types.InlineKeyboardButton('16:00', callback_data = '16:00')
d_bt5= types.InlineKeyboardButton('17:00', callback_data = '17:00')
d_bt6= types.InlineKeyboardButton('18:00', callback_data = '18:00')
keyboard_day.add(d_bt1, d_bt2, d_bt3, d_bt4, d_bt5, d_bt6)
bot.answer_callback_query(call.id, 'Выбери удобное время')
bot.edit_message_text(chat_id= call.message.chat.id, message_id= call.message.message_id, text= 'Выбери удобное время', reply_markup= keyboard_day)
elif call.data == 'вечер':
keyboard_evening= types.InlineKeyboardMarkup()
e_bt1= types.InlineKeyboardButton('19:00', callback_data= '19:00')
e_bt2= types.InlineKeyboardButton('20:00', callback_data= '20:00')
e_bt3= types.InlineKeyboardButton('21:00', callback_data= '21:00')
e_bt4= types.InlineKeyboardButton('22:00', callback_data= '22:00')
e_bt5= types.InlineKeyboardButton('23:00', callback_data= '23:00')
keyboard_evening.add(e_bt1, e_bt2, e_bt3, e_bt4, e_bt5)
bot.answer_callback_query(call.id, 'Выбери удобное время')
bot.edit_message_text(chat_id= call.message.chat.id, message_id= call.message.message_id, text= 'Выбери удобное время', reply_markup= keyboard_evening)
@bot.callback_query_handler(func=lambda call: True)
def send_qoute(call):
if call.data == '20:00':
bot.edit_message_text(chat_id= call.message.chat.id, message_id= call.message.message_id, text= 'Вfdgdfgdfgdfg')
#schedule.every().day.at(int(x)).do(send_quote())
#while True:
# schedule.run_pending()
# time.sleep(60)
bot.infinity_polling()
Мои вопросы в следующем:
Как сделать второй уровень вложенности?
Как вытащить значение времени и присвоить его переменной, чтобы затем использовать в модуле schedule?
Как корректно оформить отправку сообщения через данный модуль? Заранее спасибо