Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 26, 2018 20:00:35

random_box
Зарегистрирован: 2017-02-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

telegram бот, переменная из функции

Друзья, всем доброго дня. Пишу бота для телеграм, для обработки заявок пользователей и передачи их в систему хелпдеск GLPI. Пользователь вводит тему заявки и описание. Тема и описание записываются как строки в переменные theme и desc соответственно. Подскажите, как эти переменные использовать далее в коде? Про локальные/глобальные переменные знаю, но все равно не получается их использовать вне предела функций.

 @bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, ">>> Введите тему заявки:")
    bot.register_next_step_handler(message, add_theme)
def add_theme(message):
    theme = message.text
    bot.send_message(message.chat.id, ">>> Введите описание проблемы:")
    bot.register_next_step_handler(message, add_description)
    return theme
def add_description(message):
    desc = message.text
    bot.send_message(message.chat.id, "Спасибо! Ваша заявка принята и будет обработана в ближайшее время")
    return desc
bot.polling()

Офлайн

#2 Июль 3, 2018 11:52:32

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 323
Репутация: +  13  -
Профиль   Отправить e-mail  

telegram бот, переменная из функции

В функции используй:

 global theme
 global desc
Потом присваивай им что хочешь. Или можешь в начале коде написать:
 theme = None; desc = None
# И про ‘глобал’ не забудь
Или можешь сделать функцию, которая с ними будет делать что хочешь:
 def get_params(theme, desc):
    do_something_with_em...



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Отредактировано DamMercul (Июль 3, 2018 11:53:08)

Офлайн

#3 Июль 3, 2018 21:16:34

spikejke
Зарегистрирован: 2018-02-12
Сообщения: 42
Репутация: +  5  -
Профиль   Отправить e-mail  

telegram бот, переменная из функции

Создайте словарь - ключ будет chat.id, значение список из 2 элементов в Вашем случае theme, desc.

 users = {}
 @bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, ">>> Введите тему заявки:")
    bot.register_next_step_handler(message, add_theme)
def add_theme(message):
    theme = message.text
    chat_id = message.chat.id
    bot.send_message(message.chat.id, ">>> Введите описание проблемы:")
    bot.register_next_step_handler(message, add_description)
    users[chat_id] = [theme]
def add_description(message):
   chat_id = message.chat.id
    desc = message.text
    bot.send_message(message.chat.id, "Спасибо! Ваша заявка принята и будет обработана в ближайшее время")
    users[chat_id].append(desc)
bot.polling()

Офлайн

#4 Июль 4, 2018 22:27:51

random_box
Зарегистрирован: 2017-02-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

telegram бот, переменная из функции

spikejke
Создайте словарь - ключ будет chat.id, значение список из 2 элементов в Вашем случае theme, desc.

Благодарю, ваш совет помог! Я сделал чуть проще, создал список и добавил в него нужные мне переменные. Все отработало как надо.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version