Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 28, 2022 00:39:21

PotatoFish96
Зарегистрирован: 2022-06-28
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вылезает ошибка в телеграм боте, при вводе ФИО

Здравствуйте! Помогите мне пожалуйста, я не могу понять, почему у меня вылезает ошибка при написании своего ФИО в боте (Вот кусок кода)

 def process_fullname_step(message):
    try:
        chat_id = message.chat.id
        user.fullname = message.text
        user_dict[chat_id] = user
        msg = bot.send_message(chat.id, 'Введите ваш номер телефона и способ связи с вами (Telegram,'
                                        'Viber, WhatsApp, VK или звонок по номеру', reply_markup=markup)
        bot.register_next_step_handler(msg, number)
    except Exception as e:
        bot.reply_to(message, 'Упс!')
Прошу вам помочь мне, потому что я уже не знаю как её можно решить…

Офлайн

#2 Июнь 28, 2022 00:43:49

PotatoFish96
Зарегистрирован: 2022-06-28
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вылезает ошибка в телеграм боте, при вводе ФИО

Если кому нужно, то вот весь код:

 import config
import telebot
from telebot import types
from string import Template
bot = telebot.TeleBot(config.token)
user_dict = {}
class User:
    def __init__(self, city):
        self.city = city
        keys = ['fullname', 'number', 'сatgor', 'product']
        for key in keys:
            self.key = None
@bot.message_handler(commands=['start'])
def start(message):
    markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
    btn_2 = types.InlineKeyboardButton('Наш магазин 🏬')
    btn_3 = types.KeyboardButton('Группа с отзывами 📈')
    btn_5 = types.KeyboardButton('Что ты умеешь 👀')
    btn_6 = types.KeyboardButton('Подать заявку 👩‍💻')
    markup.add(btn_2, btn_3, btn_5, btn_6)
    bot.send_message(message.chat.id, 'Здравствуй! Меня зовут Гоша! Внизу ты увидишь'
                                      ' кнопки для моего управления!',
                     reply_markup=markup)
@bot.message_handler(commands=['reg'])
def reg(message):
    msg = bot.reply_to(message, """\
    Введите название вашего города:
    """)
    bot.register_next_step_handler(msg, process_city_step)
def process_city_step(message):
    try:
        chat_id = message.chat.id
        user_dict[chat_id] = User(message.text)
        msg = bot.reply_to(message, 'Введите ваше полное ФИО:')
        bot.register_next_step_handler(msg, process_fullname_step)
    except Exception as e:
        bot.reply_to(message, 'Упс!')
def process_fullname_step(message):
    try:
        chat_id = message.chat.id
        user.fullname = message.text
        user_dict[chat_id] = user
        msg = bot.send_message(chat.id, 'Введите ваш номер телефона и способ связи с вами (Telegram,'
                                        'Viber, WhatsApp, VK или звонок по номеру', reply_markup=markup)
        bot.register_next_step_handler(msg, process_number_step)
    except Exception as e:
        bot.reply_to(message, 'Упс!')
def process_number_step(message):
    try:
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=3)
        btn_1 = types.InlineKeyboardButton('Мясорубки')
        btn_2 = types.KeyboardButton('Соковыжималки')
        btn_3 = types.KeyboardButton('Винодельни')
        btn_4 = types.KeyboardButton('Машинки для стрижки овец')
        btn_5 = types.KeyboardButton('Прялки')
        markup.add(btn_1, btn_2, btn_3, btn_4, btn_5)
        chat.id = message.chat.id
        user = user_dict[chat_id]
        user.number = message.text
        msg = bot.send_message(chat.id, 'Выберете категорию товаров:', reply_markup=markup)
        bot.register_next_step_handler(msg, process_catgor_step)
    except Exception as e:
        bot.reply_to(message, 'ooooops!')
def process_catgor_step(message):
    try:
        chat.id = message.chat.id
        user = user_dict[chat_id]
        user.cargor = message.text
        markup = types.ReplyKeyboardRemove(selective=False)
        msg = bot.send_message(chat.id, 'Введите модель товара\n'
                                        'Если не знаете какую модель выбрать, можете написать "Затрудняюсь"'
                                        'и когда заявка будет отправлена, с вами свяжется менеджер'
                                        'и поможет вам подобрать модель', reply_markup=markup)
        bot.register_next_step_handler(msg, process_product_step)
    except Exception as e:
        bot.reply_to(message, 'ooooops!')
def process_product_step(message):
    try:
        chat.id = message.chat.id
        user = user_dict[chat_id]
        user.product = message.text
        bot.send_message(chat.id, getRegData(user, 'Отлично, в скором времени наш менеджер свжется с вами!\n'
                                                   'Вот ваша заявка: ', message.from_user.first_name),
                         parse_mode='Markdown')
        bot.send_message(config.chat, getRegData(user, 'Заявка от пользователя!', bot.get_me().username),
                         parse_mode='Markdown')
    except Exception as e:
        bot.reply_to(message, 'ooooops!')
def getRegData(user, title, name):
    t = Template(
        '$title *$name* \n Город: *$usercity* \n ФИО: *$fullname* \n Номер телефона и способ связи: *$number* \n Категория товара: *$catgor* \n Модель товара: *$model*')
    return t.substitute({
        'title': title,
        'name': name,
        'usercity': user.city,
        'fullname': user.fullname,
        'number': user.number,
        'catgor': user.catgor,
        'model': user.product
    })
@bot.message_handler(content_types=['text'])
def get_user_text(message):
    if (message.text == 'Наш магазин 🏬'):
        markup = types.InlineKeyboardMarkup()
        btn_1 = types.InlineKeyboardButton('*Ссылка на канал*', url='https://t.me/TestDmi')
        markup.add(btn_1)
        bot.send_message(message.chat.id, 'Вот ссылка, на нашу группу в ТГ', reply_markup=markup)
    elif (message.text == 'Группа с отзывами 📈'):
        markup = types.InlineKeyboardMarkup()
        btn_1 = types.InlineKeyboardButton('*Ссылка на отзывы*', url='http://t.me/testDmi')
        markup.add(btn_1)
        bot.send_message(message.chat.id, "Вот ссылка, на наша группа с отзывами (Скоро будет новая😉)",
                         reply_markup=markup)
    elif (message.text == 'Что ты умеешь 👀'):
        bot.send_message(message.chat.id, "Я могу рассказать тебе, где что находится, рассказать "
                                          "для чего был создан, и я могу создать заявку!")
    elif (message.text == 'Подать заявку 👩‍💻'):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=1)
        btn_2 = types.InlineKeyboardButton('/reg')
        btn_3 = types.InlineKeyboardButton('Я передумал(а)')
        markup.add(btn_2, btn_3)
        bot.send_message(message.chat.id, "Нажмите на кнопку '/reg' для заполнения заявки!", reply_markup=markup)
    elif (message.text == 'Я передумал(а)'):
        markup = types.ReplyKeyboardMarkup(resize_keyboard=True, row_width=2)
        btn_2 = types.InlineKeyboardButton('Наш магазин 🏬')
        btn_3 = types.KeyboardButton('Группа с отзывами 📈')
        btn_5 = types.KeyboardButton('Что ты умеешь 👀')
        btn_6 = types.KeyboardButton('Подать заявку 👩‍💻')
        markup.add(btn_2, btn_3, btn_5, btn_6)
        bot.send_message(message.chat.id, 'Перевожу вас к основным кнопкам для моего взаимодействия!',
                         reply_markup=markup)
    else:
        bot.send_message(message.chat.id, 'Я ещё разрабатываюсь, извините, я не могу понять вас')
bot.enable_save_next_step_handlers(delay=2)
bot.load_next_step_handlers()
bot.polling(none_stop=True)

Офлайн

#3 Июнь 28, 2022 02:25:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

Вылезает ошибка в телеграм боте, при вводе ФИО

PotatoFish96
я не могу понять, почему у меня вылезает ошибка
Сделай везде нормальные имена для переменных.

Тут chat_id
PotatoFish96
  
chat_id = message.chat.id
Тут chat.id
PotatoFish96
  
msg = bot.send_message(chat.id, 'Введите ваш номер телефона и способ связи с вами (Telegram,'
Сделай везде chatid и обращайся к нему везде одинаково.
  
chatid = message.chat.id
msg = bot.send_message(chatid, 'Введите ваш номер телефона и способ связи с вами (Telegram,'
Во всех функциях так сделай.



Офлайн

#4 Июнь 28, 2022 21:32:46

PotatoFish96
Зарегистрирован: 2022-06-28
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Вылезает ошибка в телеграм боте, при вводе ФИО

py.user.next
Понял, спасибо большое!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version