Здравствуйте. Я пытаюсь написать своего телеграм-бота на Python но возникли проблемы, а именно программу (бота) жутко “колбасит ” при отправки сообщения даты (которая выбирается из кастомной клавиатуры(см. гиф-анимацию)). Подскажите, как исправить данный “косяк”?) Вот код самого телеграм-бота и гиф-анимация:
"""
Написание бота для Телеграм
"""
import telebot
import constants
import re
bot = telebot.TeleBot(constants.token)
print(bot.get_me())
import datetime
now = datetime.date.today()
check = datetime.timedelta(days=1)
import time
def log(message, answer):
print( "\n ______________")
from datetime import datetime
print (datetime.now())
print("Сообщение от {0} {1}. (id={2}) \n Текст {3}". format(message.from_user.first_name,
message.from_user.last_name,
str(message.from_user.id),
message.text))
print(answer)
@bot.message_handler(commands=['start']) # стоки 26-27 декораторы, которые реагируют только на команду "старт"
def handle_text(message):
if 1:
user_markup = telebot.types.ReplyKeyboardMarkup(True, True)
user_markup.row("/start")
bot.send_message(message.from_user.id, "Здравствуй, {0}!".format(message.from_user.first_name),
reply_markup=user_markup)
answer = "Здравствуй, {0}!".format(message.from_user.first_name)
log(message, answer)
user_markup = telebot.types.ReplyKeyboardMarkup(True, True)
user_markup.row("Мужской", "Женский")
user_markup.row("/start")
bot.send_message(message.from_user.id, "Выберите пол персонажа", reply_markup=user_markup)
answer = "Выберите пол персонажа"
log(message, answer)
@bot.message_handler(func=lambda message: message.text == 'Мужской') # строки 43-44 - декораторы, которые
# реагируют,как я понял, только на определённое сообщение(например'Мужской')
def handle_text(message):
user_markup = telebot.types.ReplyKeyboardMarkup(True, True)
user_markup.row(str(now), str(now + check), str(now + check * 2))
user_markup.row(str(now + check * 3), str(now + check * 4), str(now + check * 5))
user_markup.row(str(now + check * 6), str(now + check * 7), str(now + check * 8))
user_markup.row(str(now + check * 9), str(now + check * 10), str(now + check * 11))
user_markup.row(str(now + check * 12), str(now + check * 13), str(now + check * 14))
user_markup.row(str(now + check * 15), str(now + check * 16), str(now + check * 17))
user_markup.row(str(now + check * 18), str(now + check * 19), str(now + check * 20))
user_markup.row(str(now + check * 21), str(now + check * 22), str(now + check * 23))
user_markup.row(str(now + check * 24), str(now + check * 25), str(now + check * 26))
user_markup.row(str(now + check * 27), str(now + check * 28), str(now + check * 29))
user_markup.row("/start")
bot.send_message(message.from_user.id, "Выберите дату рождения(год/месяц/число)", reply_markup=user_markup)
answer = "Выберите дату рождения(год/месяц/число)"
log(message, answer)
l = (message.text)
for val in l:
@bot.message_handler(content_types=['text'])
def sse(message):
if re.match(r'[\b\b\b\b\w\b\b\w\b\b]', val) and len(message.text) == 10:
g = str(message.text)
file = open('TeleBot.txt', 'a')
D = ["Дата рождения: " + g]
answer = ("Дата рождения: " + g)
log(message, answer)
for index in D:
file.write(
'__________________________________________________________________ \n' + index + '\n')
file.close()
bot.send_message(message.from_user.id, 'Дату записал)')
else:
bot.send_message(message.from_user.id, 'Некоректный ввод1')
val1=message.text
if re.match(r'[\b\b\b\b\w\b\b\w\b\b]', val1):
user_markup = telebot.types.ReplyKeyboardMarkup(True, True)
user_markup.row("00:00", "01:00", "02:00")
user_markup.row("03:00", "04:00", "05:00")
user_markup.row("06:00", "07:00", "08:00")
user_markup.row("09:00", "10:00", "11:00")
user_markup.row("12:00", "13:00", "14:00")
user_markup.row("15:00", "16:00", "17:00")
user_markup.row("18:00", "19:00", "20:00")
user_markup.row("21:00", "22:00", "23:00")
user_markup.row("/start")
bot.send_message(message.from_user.id, "Теперь выберите время встречи",
reply_markup=user_markup)
answer = ("Теперь выберите время встречи")
log(message, answer)
p = (message.text)
for valu in p:
if re.match(r'[\b\b\w\b\b]', valu): # and len(message.text) == 5:
q = str(message.text)
file = open('TeleBot.txt', 'a')
C = ["Время встречи: " + q]
answer = ("Время встречи: " + q)
log(message, answer)
for index in C:
file.write(
'__________________________________________________________________ \n' + index + '\n')
file.close()
bot.send_message(message.from_user.id, 'Время тоже записал)')
else:
bot.send_message(message.from_user.id, 'Некоректный ввод2')
else:
bot.send_message(message.from_user.id, 'Некоректный ввод3')
else:
bot.send_message(message.from_user.id, "Вы не имеете прав доступа к администраторскому разделу бота!")
answer = "Вы не имеете прав доступа к администраторскому разделу бота!"
log(message, answer)
bot.polling(none_stop=True, interval=0)