B
B
Belavor2020-02-09 23:36:11
Python
Belavor, 2020-02-09 23:36:11

Why doesn't if else work inside in if bot telegram?

import telebot


bot = telebot.TeleBot('TOKEN')

day = (["Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"])
day_0 = (
     ["10:00 - 10:50\nИностранный язык,'прак' (преподаватель-магистр Сулейменова Ж.А.), К02. Учебный корпус №2, ФИТ, 216",
     "11:00 - 11:50\nМатематика 2,'лек' (и.о.доцента Оспанов М.Н.), К02. Учебный корпус №2, ФИТ, 222",
     "12:10 - 13:00\nАлгоритмы, структуры данных и программирование,'лек' (и.о. доцента Айтқожа Ж.Ж.), К02. Учебный корпус №2, ФИТ, 221"]
)

day_2 = (
     ["8:00 - 8:50\nАлгоритмы, структуры данных и программирование,'лаб' ( Адалбек А.), К02. Учебный корпус №2, ФИТ, 608",
     "9:00 - 9:50\nАлгоритмы, структуры данных и программирование,'лаб' ( Адалбек А.), К02. Учебный корпус №2, ФИТ, 608",
     "10:00 - 10:50\nКазахский (русский) язык 2,'прак' ( Шахин А.А.), К02. Учебный корпус №2, ФИТ, 711"]
)

day_3 = (
     ["10:00 - 10:50\nФизическая культура,'прак' (и.о. профессора Омаров Е.Б.)",
     "11:00 - 11:50\nФизическая культура,'прак' (и.о. профессора Омаров Е.Б.)",
     "12:10 - 13:00\nКазахский (русский) язык 2,'прак' ( Шахин А.А.), К02. Учебный корпус №2, ФИТ, 711",
     "13:10 - 14:00\nКазахский (русский) язык 2,'прак' ( Шахин А.А.), К02. Учебный корпус №2, ФИТ, 711"]
)

day_4 = (
     ["8:00 - 8:50\nИнформационно-коммуникационные технологии,'лек' (ст.преподаватель Оспанов Р.М.), К02. Учебный корпус №2, ФИТ, 712",
     "9:00 - 9:50\nИнформационно-коммуникационные технологии,'лек' (ст.преподаватель Оспанов Р.М.), К02. Учебный корпус №2, ФИТ, 712",
     "10:00 - 10:50\n Окно",
     "11:00 - 11:50\nИнформационно-коммуникационные технологии,'прак' ( Хамитова Ж.Ж.), К01. Учебный корпус №1, УАК, 352a"]
)

day_5 = (
     ["10:00 - 10:50\nМатематика 2,'прак' (ст.преп. Ахажанов Т.Б.), К02. Учебный корпус №2, ФИТ, 707",
     "11:00 - 11:50\nМатематика 2,'прак' (ст.преп. Ахажанов Т.Б.), К02. Учебный корпус №2, ФИТ, 707",
     "12:10 - 13:00\nИностранный язык,'прак' (преподаватель-магистр Сулейменова Ж.А.), К02. Учебный корпус №2, ФИТ, 707",
     "13:10 - 14:00\nИностранный язык,'прак' (преподаватель-магистр Сулейменова Ж.А.), К02. Учебный корпус №2, ФИТ, 707"]
)
uni_gr = (["АЖ-19/1","СИБ-23"])

keyboard1 = telebot.types.ReplyKeyboardMarkup(True,True)
keyboard1.row(f"{uni_gr[0]}",f"{uni_gr[1]}")

keyboard2 = telebot.types.ReplyKeyboardMarkup(True,True)
keyboard2.row(f"{day[0]}",f"{day[1]}",f"{day[2]}")
keyboard2.row(f"{day[3]}",f"{day[4]}",f"{day[5]}")

@bot.message_handler(commands=['start'])
def start_message(message):
     bot.send_message(message.chat.id, 'Which group you need' , reply_markup=keyboard1)


@bot.message_handler(content_types=['text'])
def send_text(message):
     if message.text == f"{uni_gr[0]}":
          bot.send_message(message.chat.id, 'Which day you need' , reply_markup=keyboard2)
          def send_shedudle(message):
               if message.text == f"{day[0]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_0[0]}\n\n{day_0[1]}\n\n{day_0[2]}')
               elif message.text == f"{day[1]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\nПар нет, отдыхаем')
               elif message.text == f"{day[2]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_2[0]}\n\n{day_2[1]}\n\n{day_2[2]}')
               elif message.text == f"{day[3]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_3[0]}\n\n{day_3[1]}\n\n{day_3[2]}n\n{day_3[3]}')
               elif message.text == f"{day[4]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_4[0]}\n\n{day_4[1]}\n\n{day_4[2]}n\n{day_4[3]}')
               elif message.text == f"{day[5]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_5[0]}\n\n{day_5[1]}\n\n{day_5[2]}\n\n{day_5[3]}')
     elif message.text == f"{uni_gr[1]}":
          if message.text == f"{day[0]}":
                    bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_0[0]}\n\n{day_0[1]}\n\n{day_0[2]}')
          elif message.text == f"{day[1]}":
               bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\nПар нет, отдыхаем')
          elif message.text == f"{day[2]}":
               bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_2[0]}\n\n{day_2[1]}\n\n{day_2[2]}')
          elif message.text == f"{day[3]}":
               bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_3[0]}\n\n{day_3[1]}\n\n{day_3[2]}n\n{day_3[3]}')
          elif message.text == f"{day[4]}":
               bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_4[0]}\n\n{day_4[1]}\n\n{day_4[2]}n\n{day_4[3]}')
          elif message.text == f"{day[5]}":
               bot.send_message(message.chat.id, f'Здраствуйте {message.from_user.first_name}\nСегодня:\n\n{day_5[0]}\n\n{day_5[1]}\n\n{day_5[2]}\n\n{day_5[3]}')
          
if __name__ == '__main__':
     bot.infinity_polling()

Answer the question

In order to leave comments, you need to log in

1 answer(s)
B
Big_Trouble, 2020-02-10
@Belavor

Why doesn't if else work inside in if bot telegram?

Because that's not possible here. In short: you click to select a group, a message.text with the group number comes to the send_text function, but after you click to select a day, a new message does not arrive, and the bot checks the condition if message.text == f"{uni_gr[0] }":...
There is a special object for this bot.register_next_step_handler(message, next_step)
PS Well, in general, for each group and day, prescribing a block of conditions is kind of stupid, imagine if you want to add 1-2 more groups - this is + 20 more lines of code. It is better to create a database and then all these blocks with conditions can be put into several lines.
PPS It already seems to me that my task on this site is simply to send people a link to this page

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question