@Pyhon3x

Почему имя message не определено?

Есть код бота:
spoiler
import telebot;
from telebot import types
import time

bot = telebot.TeleBot('*Нельзя*');


org_name = '';
org_time = '';
dd = ''
mm = ''
yy = ''
h = ''
m = ''
s = ''
name = '';
surname = '';
age = 0;
@bot.message_handler(content_types=['text'])
def start(message):
    if message.text == '/reg':
        bot.send_message(message.from_user.id, "Как тебя зовут?");
        bot.register_next_step_handler(message, get_name); #следующий шаг – функция get_name
    elif message.text == '/органайзер':
    	bot.send_message(message.from_user.id, "Введи название события");
    	bot.register_next_step_handler(message, get_dd);
    elif message.text == '/help':
    	bot.send_message(message.from_user.id, '---------------О нас--------------')
    	bot.send_message(message.from_user.id, '|Я бот кампании TS©   |(TSecret.xyz)')
    	bot.send_message(message.from_user.id, '|И тут возможны такие действия:  ')
    	bot.send_message(message.from_user.id, '|1. Связь с администрацией       ')
    	bot.send_message(message.from_user.id, '|2. Уведомления об ошибках       |(Программы TS)')
    	bot.send_message(message.from_user.id, '|3. Уведомления об ошибках       |(Сайт TSecret.xyz)')
    	bot.send_message(message.from_user.id, '|4. Пожертвования                ')
    	bot.send_message(message.from_user.id, '|5. Команда Редакторов           ')
    	bot.send_message(message.from_user.id, '>    |Участие                     ')
    elif message.text == '/log':

    	if name != '' and surname != '' and age != 0:
    		bot.send_message(message.from_user.id, '|нет|')
    	else:
    		bot.send_message(message.from_user.id, '|yes|')
    elif message.text == 'test':
    	reg.step1()

    else:
        bot.send_message(message.from_user.id, 'Напиши /help');

def get_dd(message):
	global dd
	global mm
	global yy
	global h
	global m
	global s
	global org_time;
	keyboard_dd = types.InlineKeyboardMarkup()
	key_1 = types.InlineKeyboardButton(text='01', callback_data='01'); #кнопка «Да»
	key_2 = types.InlineKeyboardButton(text='02', callback_data='02')
	key_3 = types.InlineKeyboardButton(text='03', callback_data='03')
	key_4 = types.InlineKeyboardButton(text='04', callback_data='04')
	key_5 = types.InlineKeyboardButton(text='05', callback_data='05')
	key_6 = types.InlineKeyboardButton(text='06', callback_data='06')
	key_7 = types.InlineKeyboardButton(text='07', callback_data='07')
	key_8 = types.InlineKeyboardButton(text='08', callback_data='08')
	key_9 = types.InlineKeyboardButton(text='09', callback_data='09')
	key_10 = types.InlineKeyboardButton(text='10', callback_data='10')
	key_11 = types.InlineKeyboardButton(text='11', callback_data='11')
	key_12 = types.InlineKeyboardButton(text='12', callback_data='12')
	key_13 = types.InlineKeyboardButton(text='13', callback_data='13')
	key_14 = types.InlineKeyboardButton(text='14', callback_data='14')
	key_15 = types.InlineKeyboardButton(text='15', callback_data='15')
	key_16 = types.InlineKeyboardButton(text='16', callback_data='16')
	key_17 = types.InlineKeyboardButton(text='17', callback_data='17')
	key_18 = types.InlineKeyboardButton(text='18', callback_data='18')
	key_19 = types.InlineKeyboardButton(text='19', callback_data='19')
	key_20 = types.InlineKeyboardButton(text='20', callback_data='20')
	key_21 = types.InlineKeyboardButton(text='21', callback_data='21')
	key_22 = types.InlineKeyboardButton(text='22', callback_data='22')
	key_23 = types.InlineKeyboardButton(text='23', callback_data='23')
	key_24 = types.InlineKeyboardButton(text='24', callback_data='24')
	key_25 = types.InlineKeyboardButton(text='25', callback_data='25')
	key_26 = types.InlineKeyboardButton(text='26', callback_data='26')
	key_27 = types.InlineKeyboardButton(text='27', callback_data='27')
	key_28 = types.InlineKeyboardButton(text='28', callback_data='28')
	key_29 = types.InlineKeyboardButton(text='29', callback_data='29')
	key_30 = types.InlineKeyboardButton(text='30', callback_data='30')
	key_31 = types.InlineKeyboardButton(text='31', callback_data='31')
	keyboard_dd.add(key_1)
	keyboard_dd.add(key_2)
	keyboard_dd.add(key_3)
	keyboard_dd.add(key_4)
	keyboard_dd.add(key_5)
	keyboard_dd.add(key_6)
	keyboard_dd.add(key_7)
	keyboard_dd.add(key_8)
	keyboard_dd.add(key_9)
	keyboard_dd.add(key_10)
	keyboard_dd.add(key_11)
	keyboard_dd.add(key_12)
	keyboard_dd.add(key_13)
	keyboard_dd.add(key_14)
	keyboard_dd.add(key_15)
	keyboard_dd.add(key_16)
	keyboard_dd.add(key_17)
	keyboard_dd.add(key_18)
	keyboard_dd.add(key_19)
	keyboard_dd.add(key_20)
	keyboard_dd.add(key_21)
	keyboard_dd.add(key_22)
	keyboard_dd.add(key_23)
	keyboard_dd.add(key_24)
	keyboard_dd.add(key_25)
	keyboard_dd.add(key_26)
	keyboard_dd.add(key_27)
	keyboard_dd.add(key_28)
	keyboard_dd.add(key_29)
	keyboard_dd.add(key_30)
	keyboard_dd.add(key_31)
	ddt = 'Выбери день'
	bot.send_message(message.from_user.id, text=ddt, reply_markup=keyboard_dd)
@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
	if call.data == '01':
		dd = '01'
		bot.send_message(call.message.chat.id, 'Ок, продолжаем, отправляю тебя на следующий этап...')
		bot.send_message(call.message.chat.id, '3...')
		time.sleep(1)
		bot.send_message(call.message.chat.id, '2...')
		time.sleep(1)
		bot.send_message(call.message.chat.id, '1...')
		time.sleep(1)
		bot.send_message(call.message.chat.id, 'Этап 2')
		get_mm()


def get_mm():
	print("ok")
	keyboard_mm = types.InlineKeyboardMarkup()
	key_1 = types.InlineKeyboardButton(text='Январь', callback_data='01')
	key_2 = types.InlineKeyboardButton(text='Февраль', callback_data='02')
	key_3 = types.InlineKeyboardButton(text='Март', callback_data='03')
	key_4 = types.InlineKeyboardButton(text='Апрель', callback_data='04')
	key_5 = types.InlineKeyboardButton(text='Май', callback_data='05')
	key_6 = types.InlineKeyboardButton(text='Июнь', callback_data='06')
	key_7 = types.InlineKeyboardButton(text='Июль', callback_data='07')
	key_8 = types.InlineKeyboardButton(text='Август', callback_data='08')
	key_9 = types.InlineKeyboardButton(text='Сентябрь', callback_data='09')
	key_10 = types.InlineKeyboardButton(text='Октябрь', callback_data='10')
	key_11 = types.InlineKeyboardButton(text='Ноябрь', callback_data='11')
	key_12 = types.InlineKeyboardButton(text='Декабрь', callback_data='12')
	keyboard_mm.add(key_1)
	keyboard_mm.add(key_2)
	keyboard_mm.add(key_3)
	keyboard_mm.add(key_4)
	keyboard_mm.add(key_5)
	keyboard_mm.add(key_6)
	keyboard_mm.add(key_7)
	keyboard_mm.add(key_8)
	keyboard_mm.add(key_9)
	keyboard_mm.add(key_10)
	keyboard_mm.add(key_11)
	keyboard_mm.add(key_12)
	q1 = 'Ok'
	bot.send_message(message.from_user.id, text=q1, reply_markup=keyboard_mm)

	'''org_time = message.text;
				
				keyboard = types.InlineKeyboardMarkup(); #наша клавиатура
				key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes'); #кнопка «Да»
				keyboard.add(key_yes); #добавляем кнопку в клавиатуру
				key_no= types.InlineKeyboardButton(text='Нет', callback_data='no');
				keyboard.add(key_no);
				question = 'В '+org_time+' тебе напомнить о '+org_name+'? (Нажми нет для отмены ' + org_name;
				bot.send_message(message.from_user.id, text=question, reply_markup=keyboard)'''

@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
	if call.data == "yes":
		bot.send_message(call.message.chat.id, 'Запомню : )')
		from datetime import datetime

		while True:
			now = datetime.now() # объект содержит дату и время

			dt_string = now.strftime("%d/%m/%Y %H:%M:%S")# строка, содержащая дату и время в формате dd/mm/YY H:M:S
			if(dt_string==org_time): #Если строка с датой и временем равна строке с нужной датой и временем, то выводится дата и время
				print("date and time =", dt_string)	
				bot.send_message(call.message.chat.id, 'Привет я пришел напомнить про ' + org_name)
				break

	elif call.data == 'no':
		bot.send_message(call.message.chat.id, 'Операция отменена пользователем')

def get_name(message): #получаем фамилию
    global name;
    name = message.text;
    bot.send_message(message.from_user.id, 'Какая у тебя фамилия?');
    bot.register_next_step_handler(message, get_surname);

def get_surname(message):
    global surname;
    surname = message.text;
    bot.send_message(message.from_user.id, 'Сколько тебе лет? (если введешь не цифрами то в коде произойдет сбой, не делай этого!)');
    bot.register_next_step_handler(message, get_age);

def get_age(message):
    global age;

    while age == 0: #проверяем что возраст изменился
        try:
             age = int(message.text) #проверяем, что возраст введен корректно
        except Exception:
             bot.send_message(message.from_user.id, 'Цифрами, пожалуйста');
    keyboard = types.InlineKeyboardMarkup(); #наша клавиатура
    key_yes = types.InlineKeyboardButton(text='Да', callback_data='yes'); #кнопка «Да»
    keyboard.add(key_yes); #добавляем кнопку в клавиатуру
    key_no= types.InlineKeyboardButton(text='Нет', callback_data='no');
    keyboard.add(key_no);
    question = 'Тебе '+str(age)+' лет, тебя зовут '+name+' '+surname+'?';
    bot.send_message(message.from_user.id, text=question, reply_markup=keyboard)

@bot.callback_query_handler(func=lambda call: True)
def callback_worker(call):
	if call.data == "yes":
		bot.send_message(call.message.chat.id, 'Запомню : )')
		question2 = 'Пользователь Передал свои данные:' + '\n    Имя: ' + name + '\n    Фамилия: ' + surname + '\n    Возраст: ' + str(age)
		print(question2)



bot.polling(none_stop=True, interval=0)


Как сделать так что-бы на строке 165 message определялась
Заранее спасибо)
  • Вопрос задан
  • 400 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kiriharu
Python backend, Linux enjoyer
Cкажу что ваш код очень сильно попахивает дешевой лапшой. Поэтому рекомендую раскидать его по файликам или хотя-бы по функциям. Ад какой-то.
А что за ошибку выкидывает то?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы