N
N
NikolaiHryshkov2020-06-22 23:47:38
Python
NikolaiHryshkov, 2020-06-22 23:47:38

If else elif code doesn't work, Python?

Why does the code stop working?

@bot.callback_query_handler(func=lambda c:True)
def ukraine(c):
      if c.data == 'Українська': 
Все работает а вот начиная с 
def internatura(c):
Уже нет:

Пример кода:
import config
import telebot
from telebot import types
from requests import get

bot = telebot.TeleBot(config.token)

@bot.message_handler(commands=['start'])
def inline(message):
    key = types.InlineKeyboardMarkup()
    but_1 = types.InlineKeyboardButton(text="Українська", callback_data="Українська")
    but_2 = types.InlineKeyboardButton(text="English", callback_data="English")
    key.add(but_1, but_2)
    bot.send_photo(message.chat.id,open("C:\АСУ\Bot\ЕМБ.jpg","rb"))
    bot.send_message(message.chat.id, "Доброго дня " + message.from_user.first_name + ", Я бот-консультант . Радий Вас вітати.Оберіть будь ласка мову спілкування.Good day. I am a chat bot of Kyiv Medical University. Glad to welcome you. Please choose the language of communication.", reply_markup=key, )
@bot.callback_query_handler(func=lambda c:True)
def ukraine(c):
      if c.data == 'Українська':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Вступ", callback_data="Вступ")
        but_2 = types.InlineKeyboardButton(text="Післядипломна освіта", callback_data="Післядипломна освіта")
        but_3 = types.InlineKeyboardButton(text="Студенту", callback_data="Студенту")
        but_4 = types.InlineKeyboardButton(text="Довідник контактів", callback_data="Довідник контактів")
        but_5 = types.InlineKeyboardButton(text="Реквізити-Оплата", url="https://k.edu.ua/oplata/")
        key.add(but_1, but_2)
        key.add(but_3, but_4)
        key.add(but_5)
        bot.send_message(c.message.chat.id, 'Оберіть будь ласка розділ який Вас цікавить.', reply_markup=key)
      if c.data == 'Вступ':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Вступ для вітчизняних студентів", callback_data="Вступ для вітчизняних студентів")
        but_2 = types.InlineKeyboardButton(text="Вступ для іноземних студентів", callback_data="Вступ для іноземних студентів")
        but_3 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1, but_2)
        key.add(but_3)
        bot.send_message(c.message.chat.id, 'Бажаєте вступити до Київського медичного університет?', reply_markup=key)
      if c.data == 'Вступ для вітчизняних студентів':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Грант", callback_data="Грант")
        but_2 = types.InlineKeyboardButton(text="Календар вступника", callback_data="Календар вступника")
        but_3 = types.InlineKeyboardButton(text="Правила прийому", url="https://k.edu.ua/admission-requirements-y/")
        but_4 = types.InlineKeyboardButton(text="Програми вступних випробувань", url="https://u.edu.ua/programy-vstupnuh-viprobuvan/")
        but_5 = types.InlineKeyboardButton(text="Задати питання", url="t.me/kedu")
        key.add(but_1, but_2)
        key.add(but_3, but_4)
        key.add(but_5)
        bot.send_message(c.message.chat.id, 'Задайте ваше питання в чаті Абітурієнт  @kedu або зателефонуйте до приймальної комісії +3806844031, +3805033701', reply_markup=key)
def internatura(c):
      if c.data == 'Післядипломна освіта':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Більше інформації на офіційному сайті", url="https://u.edu.ua/internatura-v-universiteti/")
        but_2 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1)
        key.add(but_2)
        bot.send_message(c.message.chat.id, 'Задайте будь ласка ваше питання відділу відділу післядипломної освіти: @hrysov або зателефонуйте за номером телефону: +38 (099) 3-71-34', reply_markup=key)
def student(c):
      if c.data == 'Студенту':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Відпрацювання пропущених занять", callback_data="Відпрацювання пропущених занять")
        but_2 = types.InlineKeyboardButton(text="Довідка для військомату", url="https://u.edu.ua/dovidka-do-rvk/")
        but_3 = types.InlineKeyboardButton(text="Відновити студентський квиток", url="https://u.edu.ua/vidnoviti-studentskij-kvitok/")
        but_4 = types.InlineKeyboardButton(text="Контакти Деканатів", callback_data="Контакти Деканатів")
        but_5 = types.InlineKeyboardButton(text="Задати питання", callback_data="@kudu")
        but_6 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1, but_2)
        key.add(but_3, but_4)
        key.add(but_5, but_6)
        bot.send_message(c.message.chat.id, 'Оберіть будь ласка розділ який Вас цікавить.', reply_markup=key)
      if c.data == 'Контакти Деканатів':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1)
        bot.send_message(c.message.chat.id, config.kontdek, reply_markup=key)
      if c.data == 'Вступ для іноземних студентів':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1)
        bot.send_message(c.message.chat.id, 'Задайте будь ласка ваше питання відбіркоій комісії з прийому іноземних громадян та осіб без громадянства: @hryshkov або зателефонуйте за номером телефону: +38 (073) 2613-41', reply_markup=key)
      if c.data == 'Відпрацювання пропущених занять':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="Для вітчизняних студентів", url="https://docs.google.com/forms/d/e/1FAIpQLSdVMhrSX1_s98kRzsam5Dcs8_G_uKh31-LOu_PAgfS3JemDpw/viewform")
        but_2 = types.InlineKeyboardButton(text="Для іноземних студентів", url="https://docs.google.com/forms/u/5/d/e/1FAIpQLSdwLJjlUKwu_PoBOodB_g8AfAFIwpzhATR6cnV-mzRYgRH6VQ/viewform?usp=sf_link")
        but_3 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1, but_2)
        key.add(but_3)
        bot.send_message(c.message.chat.id, 'Зробіть будь ласка Ваш вибір', reply_markup=key)
      if c.data == 'Довідник контактів':
        key = types.InlineKeyboardMarkup()
        but_1 = types.InlineKeyboardButton(text="До попереднього меню", callback_data="До попереднього меню")
        key.add(but_1)
        bot.send_message(c.message.chat.id, config.kontdov, reply_markup=key)

if __name__ == '__main__':
    bot.polling(none_stop=True)

Answer the question

In order to leave comments, you need to log in

1 answer(s)
M
Maxim, 2020-06-22
@XTerris

The decorator is only used for one function. That is, only for ukraine, and the rest of the functions are considered as separate ones and, accordingly, are not called at all.
Just put it all in one function, or call internatura and student at the end of ukraine.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question