Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import telebot
- from telebot import types
- from config import TOKEN
- bot = telebot.TeleBot(TOKEN)
- user_profiles = {}
- user_responses = {}
- questions = [
- "Тебе нравится создавать и конструировать вещи?",
- "Интересуешься ли ты компьютерными технологиями и программированием?",
- "Любишь ли ты рисовать или заниматься дизайном?",
- "Увлекаешься ли ты изучением живой природы и биологии?",
- "Интересуешься ли техникой, машиностроением или автомобилями?",
- "Хочешь ли ты узнать больше о науке о Земле и географии?",
- "Привлекает ли тебя мир науки о космосе и авиации?",
- "Мечтаешь ли создавать новые материалы с помощью нанотехнологий?",
- "Получаешь ли ты удовольствие от решения сложных математических задач?",
- "Нравится ли тебе узнавать о новых научных открытиях и изобретениях?",
- "Есть ли у тебя интерес к созданию компьютерных игр или приложений?",
- "Любишь ли ты работать с руками, создавая физические объекты или модели?",
- "Мечтаешь ли ты стать инженером или изобретателем?",
- "Интересуешься ли ты экологией и устойчивым развитием?",
- "Привлекает ли тебя работа с видео и аудио технологиями?",
- "Хотел бы ты изучать космос или заниматься астрономией?"
- ]
- directions_descriptions = {
- 'robo': 'Робоквантум: Основан на проектировании и управлении робототехническими системами.',
- 'design': 'Промдизайн: Фокусируется на проектировании объектов массового производства.',
- 'it': 'IT-квантум: Сосредоточен на информационных технологиях для решения прикладных задач.',
- 'hitech': 'Hi-Tech цех: Занимается передовыми технологиями для материализации проектов.',
- 'auto': 'Автоквантум: Включает разработки в области наземного транспорта, проектирование и конструирование.',
- 'aero': 'Аэроквантум: Ориентирован на создание летательных аппаратов, включая беспилотные.',
- 'nano': 'Наноквантум: Охватывает исследование на наноразмерном уровне и создание новых материалов.',
- 'geo': 'Геоквантум: Работа с геоинформационными технологиями и пространственными данными.',
- 'bio': 'Биоквантум: Инженерно-биологические системы, прикладная биология и биотехнологии.',
- 'energy': 'Энерджиквантум: Знакомство с основами традиционной и альтернативной энергетики.',
- 'vr': 'VR квантум: Разработка приложений виртуальной, дополненной и смешанной реальности.',
- 'math': 'Математика: Удовольствие от решения математических задач и разработки новых алгоритмов.',
- 'science': 'Наука: Страсть к открытиям и изучению окружающего мира на всех уровнях.',
- 'programming': 'Программирование: Создание новых программных решений и приложений.',
- 'engineering': 'Инженерия: Проектирование и создание новых технологий и машин.',
- 'invent': 'Изобретения: Разработка новых устройств и технологий для улучшения жизни.',
- 'eco': 'Экология: Забота о природе и разработка устойчивых технологий.',
- 'media': 'Медиа: Работа с новыми формами медиаконтента и технологиями вещания.',
- 'astro': 'Астрономия: Изучение космоса и всего, что в нем находится.'
- }
- # Функция для отправки вопросов пользователю
- def send_question(chat_id, question_num):
- markup = types.InlineKeyboardMarkup(row_width=2)
- buttons = [
- types.InlineKeyboardButton("Да", callback_data=f"yes_{question_num}"),
- types.InlineKeyboardButton("Нет", callback_data=f"no_{question_num}")
- ]
- markup.add(*buttons)
- bot.send_message(chat_id, questions[question_num], reply_markup=markup)
- # Обработчик команды /start
- @bot.message_handler(commands=['start'])
- def start(message):
- chat_id = message.chat.id
- if chat_id not in user_profiles:
- user_profiles[chat_id] = {'registered': True, 'name': None, 'email': None}
- bot.send_message(chat_id, 'Добро пожаловать! Вы зарегистрированы. Пожалуйста, укажите свое имя с помощью команды /setname.')
- else:
- bot.send_message(chat_id, 'Вы уже зарегистрированы. Начнем тест?', reply_markup=get_directions_markup())
- # Функция для создания клавиатуры с направлениями
- def get_directions_markup():
- markup = types.InlineKeyboardMarkup(row_width=2)
- buttons = [
- types.InlineKeyboardButton(text=name, callback_data=data) for name, data in [
- ('Робоквантум', 'robo'), ('Промдизайн', 'design'), ('IT-квантум', 'it'),
- # Добавьте остальные кнопки по аналогии
- ]
- ]
- markup.add(*buttons)
- return markup
- # Обработчик для ввода имени пользователем
- @bot.message_handler(commands=['setname'])
- def set_name(message):
- chat_id = message.chat.id
- if chat_id in user_profiles and user_profiles[chat_id]['registered']:
- msg = bot.send_message(chat_id, 'Пожалуйста, укажите свое имя:')
- bot.register_next_step_handler(msg, process_name_step)
- else:
- bot.send_message(chat_id, 'Вы не зарегистрированы.')
- def process_name_step(message):
- chat_id = message.chat.id
- name = message.text
- user_profiles[chat_id]['name'] = name
- bot.send_message(chat_id, f'Спасибо, {name}! Ваше имя сохранено. Начнем тест?', reply_markup=get_directions_markup())
- # Обработчик ответов на вопросы теста
- @bot.callback_query_handler(func=lambda call: True)
- def callback_query(call):
- chat_id = call.message.chat.id
- data = call.data
- if data.startswith("yes_") or data.startswith("no_"):
- # Обработка ответа пользователя
- question_num = int(data.split("_")[1])
- # Здесь можно добавить логику обработки ответа
- next_question = question_num + 1
- if next_question < len(questions):
- send_question(chat_id, next_question)
- else:
- # Завершение теста
- bot.send_message(chat_id, "Тест завершен. Спасибо за участие!")
- else:
- # Обработка выбора направления
- if data in directions_descriptions:
- bot.send_message(chat_id, directions_descriptions[data])
- else:
- bot.send_message(chat_id, "Выбрано неизвестное направление.")
- bot.polling(none_stop=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement