2026 UPDATE!!!
@@ -42,7 +42,6 @@ class Messages:
|
||||
"\n/start - начать регистрацию"
|
||||
"\n/help - помощь"
|
||||
"\n/source - исходный код бота на Github"
|
||||
"\n@more_logical - для всех вопросов по мероприятию"
|
||||
"\n\nCreated by АйТи блок ВМК with love ❤️"
|
||||
)
|
||||
]
|
||||
@@ -50,22 +49,28 @@ class Messages:
|
||||
ERROR = "Произошла ошибка"
|
||||
ENTER_NAME = "Как тебя зовут?"
|
||||
ENTER_AGE = "Сколько тебе лет?"
|
||||
ENTER_GENDER = "Выбери пол (женский, мужской)"
|
||||
ENTER_GENDER = "Выбери пол"
|
||||
GENDER_WOMAN = "Я девушка" # кнопки выбора
|
||||
GENDER_MAN = "Я парень" # кнопки выбора
|
||||
ENTER_FACULTY = "С какого ты факультета?"
|
||||
ENTER_GROUP = "Напиши номер своей группы"
|
||||
ENTER_AGREE_UPLOAD = (
|
||||
"Согласен ли ты на сохранение своих данных в общую базу для подбора пар?"
|
||||
)
|
||||
REGISTRATION_CONFIRM = "<u>Твои данные:</u>\
|
||||
\n\n<b>Имя:</b> {}\
|
||||
\n<b>Возраст:</b> {}\
|
||||
\n<b>Пол:</b> {}\
|
||||
\n<b>Факультет:</b> {}\
|
||||
\n<b>Группа:</b> {}\
|
||||
\n<b>Согласие на сохранение данных:</b> {}\
|
||||
\n\nВсё верно?"
|
||||
ALREADY_REGISTERED = "Ты уже зарегистрирован. Хочешь изменить данные?"
|
||||
MATCHING_START = (
|
||||
"Мы начали подбор пар 🤩" "\nПодтверди своё нахождение в аудитории."
|
||||
)
|
||||
START_DATE = (
|
||||
"Мероприятие начнётся:" "\n🗓️ <b>4 апреля</b>" "\n\nСледите за новостями!"
|
||||
"Мероприятие начнётся:"
|
||||
"\n🗓️ <b>3 апреля в 18:00</b>"
|
||||
"\n\nСледите за новостями!"
|
||||
)
|
||||
|
||||
@@ -41,6 +41,7 @@ def start_message(message: types.Message):
|
||||
"Парень" if user.gender == "man" else "Девушка",
|
||||
user.faculty,
|
||||
user.group,
|
||||
"Да" if user.agree_upload else "Нет",
|
||||
),
|
||||
reply_markup=markup,
|
||||
)
|
||||
|
||||
|
After Width: | Height: | Size: 409 KiB |
|
After Width: | Height: | Size: 257 KiB |
|
After Width: | Height: | Size: 111 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 103 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 157 KiB |
|
After Width: | Height: | Size: 187 KiB |
|
After Width: | Height: | Size: 612 KiB |
|
After Width: | Height: | Size: 161 KiB |
|
After Width: | Height: | Size: 135 KiB |
|
After Width: | Height: | Size: 220 KiB |
|
After Width: | Height: | Size: 229 KiB |
|
After Width: | Height: | Size: 150 KiB |
|
After Width: | Height: | Size: 153 KiB |
@@ -6,6 +6,7 @@ from plugin.test import TestMessages
|
||||
from plugin.bot_instance import bot
|
||||
import os
|
||||
import re
|
||||
import random
|
||||
|
||||
|
||||
def start_reg_name(message: types.Message):
|
||||
@@ -71,33 +72,51 @@ def start_reg_group(message: types.Message):
|
||||
user = User(message.chat.id)
|
||||
user.group = message.text
|
||||
|
||||
markup = types.InlineKeyboardMarkup()
|
||||
markup.add(
|
||||
types.InlineKeyboardButton("Согласен", callback_data="upload_agree"),
|
||||
types.InlineKeyboardButton("Не согласен", callback_data="upload_skip"),
|
||||
)
|
||||
bot.send_message(message.chat.id, Messages.ENTER_AGREE_UPLOAD, reply_markup=markup)
|
||||
|
||||
return
|
||||
|
||||
|
||||
@bot.callback_query_handler(func=lambda call: "upload" in call.data)
|
||||
def start_agree_upload(call: types.CallbackQuery):
|
||||
user = User(call.message.chat.id)
|
||||
user.agree_upload = call.data.split("_")[-1] == "agree"
|
||||
|
||||
bot.edit_message_text(
|
||||
(
|
||||
"Согласен на сохранение данных в общую базу"
|
||||
if user.agree_upload
|
||||
else "Не согласен на сохранение данных в общую базу"
|
||||
),
|
||||
call.message.chat.id,
|
||||
call.message.message_id,
|
||||
reply_markup=None,
|
||||
)
|
||||
|
||||
markup = types.InlineKeyboardMarkup()
|
||||
markup.add(
|
||||
types.InlineKeyboardButton("Всё верно!", callback_data="registration_confirm"),
|
||||
types.InlineKeyboardButton("Изменить", callback_data="registration_change"),
|
||||
)
|
||||
bot.send_message(
|
||||
message.chat.id,
|
||||
call.message.chat.id,
|
||||
Messages.REGISTRATION_CONFIRM.format(
|
||||
user.name,
|
||||
user.age,
|
||||
"Парень" if user.gender == "man" else "Девушка",
|
||||
user.faculty,
|
||||
user.group,
|
||||
"Да" if user.agree_upload else "Нет",
|
||||
),
|
||||
reply_markup=markup,
|
||||
)
|
||||
|
||||
|
||||
@bot.callback_query_handler(func=lambda call: call.data == "registration_skip")
|
||||
def start_skip_reg(call: types.CallbackQuery):
|
||||
bot.edit_message_reply_markup(
|
||||
call.message.chat.id, call.message.message_id, reply_markup=None
|
||||
)
|
||||
|
||||
return
|
||||
|
||||
|
||||
@bot.callback_query_handler(func=lambda call: call.data == "registration_change")
|
||||
def start_reg_again(call: types.CallbackQuery):
|
||||
bot.edit_message_reply_markup(
|
||||
@@ -139,39 +158,102 @@ def test_question(call: types.CallbackQuery):
|
||||
call.message.chat.id, call.message.message_id, reply_markup=None
|
||||
)
|
||||
|
||||
if call.data != "test_yes":
|
||||
user.type += TestMessages.TEST_QUESTIONS[len(user.type)]["answers"][
|
||||
int(call.data[-1])
|
||||
][1]
|
||||
if call.data == "test_yes":
|
||||
last_q = -1
|
||||
else:
|
||||
last_q = int(call.data.split("_")[1].split("#")[0])
|
||||
previous_ans = int(call.data.split("#")[1])
|
||||
for ans_type in TestMessages.TEST_QUESTIONS[last_q]["answers"][previous_ans][
|
||||
"types"
|
||||
]:
|
||||
add_score = 3 if last_q == 0 else 2
|
||||
user.vector_type[ans_type] = user.vector_type.get(ans_type, 0) + add_score
|
||||
|
||||
user_ans = int(call.data[-1])
|
||||
question_last = TestMessages.TEST_QUESTIONS[len(user.type) - 1]
|
||||
text_edit = f"{question_last['question']}\n\n{'✅ ' if user_ans == 0 else ''}1. {question_last['answers'][0][0]} \n\n{'✅ ' if user_ans == 1 else ''}2. {question_last['answers'][1][0]}"
|
||||
prev_answ = "\n\n".join(
|
||||
[
|
||||
f"{'✅ ' if i == previous_ans else ''}{i+1}. {ans['text']}"
|
||||
for i, ans in enumerate(TestMessages.TEST_QUESTIONS[last_q]["answers"])
|
||||
]
|
||||
)
|
||||
|
||||
prev_text = f"{TestMessages.TEST_QUESTIONS[last_q]['question']}\n\n{prev_answ}"
|
||||
|
||||
bot.edit_message_text(
|
||||
text_edit,
|
||||
prev_text,
|
||||
call.message.chat.id,
|
||||
call.message.message_id,
|
||||
parse_mode="HTML",
|
||||
) # упростить
|
||||
)
|
||||
|
||||
if last_q == len(TestMessages.TEST_QUESTIONS) - 1:
|
||||
max_value = max(user.vector_type.values())
|
||||
max_types = [t for t, v in user.vector_type.items() if v == max_value]
|
||||
user.type = random.choice(max_types)
|
||||
|
||||
if len(user.type) == 4:
|
||||
show_result(call.message)
|
||||
return
|
||||
|
||||
question = TestMessages.TEST_QUESTIONS[len(user.type)]
|
||||
text = f"{question['question']}\n\n1. {question['answers'][0][0]} \n\n2. {question['answers'][1][0]}"
|
||||
markup = types.InlineKeyboardMarkup()
|
||||
markup.add(
|
||||
types.InlineKeyboardButton("Первый вариант", callback_data=f"test_0"),
|
||||
types.InlineKeyboardButton("Второй вариант", callback_data=f"test_1"),
|
||||
question = TestMessages.TEST_QUESTIONS[last_q + 1]
|
||||
answ = "\n\n".join(
|
||||
[f"{i+1}. {ans['text']}" for i, ans in enumerate(question["answers"])]
|
||||
)
|
||||
text = f"{question['question']}\n\n{answ}"
|
||||
|
||||
bot.send_message(call.message.chat.id, text, reply_markup=markup)
|
||||
markup = types.InlineKeyboardMarkup()
|
||||
for i in range(len(question["answers"])):
|
||||
markup.add(
|
||||
types.InlineKeyboardButton(
|
||||
f"{question['answers'][i]['short']}",
|
||||
callback_data=f"test_{last_q + 1}#{i}",
|
||||
)
|
||||
)
|
||||
|
||||
bot.send_message(call.message.chat.id, text, reply_markup=markup, parse_mode="HTML")
|
||||
|
||||
return
|
||||
|
||||
|
||||
# @bot.callback_query_handler(func=lambda call: "test" in call.data)
|
||||
# def test_question(call: types.CallbackQuery):
|
||||
# user = User(call.message.chat.id)
|
||||
|
||||
# bot.edit_message_reply_markup(
|
||||
# call.message.chat.id, call.message.message_id, reply_markup=None
|
||||
# )
|
||||
|
||||
# if call.data != "test_yes":
|
||||
# user.type += TestMessages.TEST_QUESTIONS[len(user.type)]["answers"][
|
||||
# int(call.data[-1])
|
||||
# ][1]
|
||||
|
||||
# user_ans = int(call.data[-1])
|
||||
# question_last = TestMessages.TEST_QUESTIONS[len(user.type) - 1]
|
||||
# text_edit = f"{question_last['question']}\n\n{'✅ ' if user_ans == 0 else ''}1. {question_last['answers'][0][0]} \n\n{'✅ ' if user_ans == 1 else ''}2. {question_last['answers'][1][0]}"
|
||||
|
||||
# bot.edit_message_text(
|
||||
# text_edit,
|
||||
# call.message.chat.id,
|
||||
# call.message.message_id,
|
||||
# parse_mode="HTML",
|
||||
# ) # упростить
|
||||
|
||||
# if len(user.type) == 4:
|
||||
# show_result(call.message)
|
||||
# return
|
||||
|
||||
# question = TestMessages.TEST_QUESTIONS[len(user.type)]
|
||||
# text = f"{question['question']}\n\n1. {question['answers'][0][0]} \n\n2. {question['answers'][1][0]}"
|
||||
# markup = types.InlineKeyboardMarkup()
|
||||
# markup.add(
|
||||
# types.InlineKeyboardButton("Первый вариант", callback_data=f"test_0"),
|
||||
# types.InlineKeyboardButton("Второй вариант", callback_data=f"test_1"),
|
||||
# )
|
||||
|
||||
# bot.send_message(call.message.chat.id, text, reply_markup=markup)
|
||||
|
||||
# return
|
||||
|
||||
|
||||
def show_result(message: types.Message):
|
||||
user = User(message.chat.id)
|
||||
text = TestMessages.TEST_RESULT.format(
|
||||
|
||||
@@ -1,127 +1,202 @@
|
||||
class TestMessages:
|
||||
TEST_WELCOME = (
|
||||
"Пройди следующий короткий тест, чтобы было легче <b>подобрать тебе пару</b>."
|
||||
"\n\nЗаодно узнаешь, кто ты из героев советских мультфильмов 👀"
|
||||
)
|
||||
TEST_WELCOME = "Пройди следующий короткий тест, чтобы было легче подобрать тебе пару. А еще ты узнаешь, кто ты из <b>героев славянских мифов.</b>"
|
||||
TEST_RESULT = "👉 Ты - {}!👈\n\n{}"
|
||||
TEST_FINISH = "🎉 Поздравляем! 🎉" "\nТеперь вы зарегистрированы в системе."
|
||||
TEST_QUESTIONS = [
|
||||
{
|
||||
"question": "Когда вы оказываетесь в новой компании людей, вы, как правило:",
|
||||
"question": "На кого из героев славянских мифов вы хотели бы быть похожи?",
|
||||
"answers": [
|
||||
(
|
||||
"<u><b>Легко заводите разговоры с разными людьми</b></u>.",
|
||||
"E",
|
||||
),
|
||||
(
|
||||
"<u><b>Предпочитаете сначала понаблюдать</b></u> и только потом начать общаться с теми, кто вам интересен.",
|
||||
"I",
|
||||
),
|
||||
{
|
||||
"text": "<u><b>На Перуна — защищать порядок, брать ответственность и вести других за собой ✊🏻</b></u>.",
|
||||
"types": ["ENTJ"],
|
||||
"short": "Перун!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Велеса — искать скрытые знания и понимать тайны мира 🔮</b></u>.",
|
||||
"types": ["INTP"],
|
||||
"short": "Велес!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Морену — видеть глубинные смыслы и управлять переменами 🪬</b></u>.",
|
||||
"types": ["INFJ"],
|
||||
"short": "Морена!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Стрибога — быть свободным, приносить новые идеи и перемены 😌</b></u>.",
|
||||
"types": ["ENTP"],
|
||||
"short": "Стрибог!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Ладу — создавать гармонию и помогать людям находить общий язык ☺️</b></u>.",
|
||||
"types": ["ESFJ"],
|
||||
"short": "Лада!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Макошь — заботиться о судьбах других и поддерживать близких 🫂</b></u>.",
|
||||
"types": ["ISFJ"],
|
||||
"short": "Макошь!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Ярило — жить ярко, действовать смело и наслаждаться моментом 😏</b></u>.",
|
||||
"types": ["ESTP"],
|
||||
"short": "Ярило!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Домового — защищать свой мир и сохранять стабильность 💪🏻</b></u>.",
|
||||
"types": ["ISTJ"],
|
||||
"short": "Домовой!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Чернобога — видеть стратегию и действовать по своему плану 😎</b></u>.",
|
||||
"types": ["INTJ"],
|
||||
"short": "Чернобог!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Купалу — вдохновлять других и приносить радость 🤩</b></u>.",
|
||||
"types": ["ENFP"],
|
||||
"short": "Купала!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Даждьбога — помогать людям расти и вести их к свету 🤗</b></u>.",
|
||||
"types": ["ENFJ"],
|
||||
"short": "Даждьбог!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Живу — жить в гармонии с собой и чувствовать мир 😇</b></u>.",
|
||||
"types": ["ISFP"],
|
||||
"short": "Жива!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Кощея — быть независимым и полагаться только на себя 😉</b></u>.",
|
||||
"types": ["ISTP"],
|
||||
"short": "Кощей!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Рода — создавать основы и поддерживать порядок мира 🙌🏻</b></u>.",
|
||||
"types": ["ESTJ"],
|
||||
"short": "Род!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Лелю — верить в добро и следовать своему сердцу 🫶🏻</b></u>.",
|
||||
"types": ["INFP"],
|
||||
"short": "Леля!",
|
||||
},
|
||||
{
|
||||
"text": "<u><b>На Жар-птицу — зажигать сердца и превращать жизнь в яркое приключение 🔥</b></u>.",
|
||||
"types": ["ESFP"],
|
||||
"short": "Жар-птица!",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"question": "Вы пишете книгу или создаете проект. Какой подход вам ближе?",
|
||||
"question": "На работе вам важнее всего:",
|
||||
"answers": [
|
||||
(
|
||||
"<u><b>Тщательно исследую тему</b></u>, соберу всю доступную информацию и буду двигаться шаг за шагом, основываясь на фактах.",
|
||||
"S",
|
||||
),
|
||||
(
|
||||
"<u><b>Сначала придумаю общую концепцию</b></u>, представлю мир и героев (или цели проекта), и буду импровизировать, раскрывая детали по ходу дела.",
|
||||
"N",
|
||||
),
|
||||
{
|
||||
"text": "Возможность творить и воплощать самые безумные идеи 😜.",
|
||||
"types": ["ENFP", "ENTP", "INFP", "INTP"],
|
||||
"short": "Творчество!",
|
||||
},
|
||||
{
|
||||
"text": "Профессиональный рост и постоянный апгрейд навыков 😌",
|
||||
"types": ["ENTJ", "ESTJ", "ISTJ", "ISFJ"],
|
||||
"short": "Карьера!",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"question": "Ваш друг совершил ошибку, которая имеет серьезные последствия. Как вы отреагируете?",
|
||||
"question": "В дружбе вы цените больше всего:",
|
||||
"answers": [
|
||||
(
|
||||
"<u><b>Объективно проанализирую ситуацию</b></u>, укажу на ошибки и предложу логичное решение проблемы.",
|
||||
"T",
|
||||
),
|
||||
(
|
||||
"<u><b>Постараюсь понять его мотивы</b></u>, проявить сочувствие и оказать эмоциональную поддержку, чтобы он справился с ситуацией.",
|
||||
"F",
|
||||
),
|
||||
{
|
||||
"text": "Позитивное мышление и фонтаны идей. Когда друг звонит ночью и предлагает сделать из картона ракету, чтобы улететь на Марс, я уже ищу скотч 👀",
|
||||
"types": ["ENFP", "ENTP", "ESFP", "ESTP"],
|
||||
"short": "Идеи!",
|
||||
},
|
||||
{
|
||||
"text": "Искренность. Вы знаете о друге всё: почему он не любит лук, сколько хомяков загубил в детстве и какую песню пел на выпускном 🫶🏻",
|
||||
"types": ["INFJ", "INFP", "ISFJ", "INTJ"],
|
||||
"short": "Искренность!",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"question": "Представьте, что у вас есть свободный день. Что вы выберете?",
|
||||
"question": "Что вас вдохновляет?",
|
||||
"answers": [
|
||||
(
|
||||
"<u><b>Заранее составлю план, чтобы максимально эффективно использовать время</b></u>: посетить музей, заняться спортом, встретиться с друзьями.",
|
||||
"J",
|
||||
),
|
||||
(
|
||||
"<u><b>Отложу все планы и позволю дню разворачиваться спонтанно</b></u>: почитаю книгу, прогуляюсь по парку или просто буду наслаждаться моментом.",
|
||||
"P",
|
||||
),
|
||||
{
|
||||
"text": "Галочка напротив выполненного дела и зачеркнутые пункты в плане ✅",
|
||||
"types": ["ENTJ", "ESTJ", "ISTJ", "INTJ"],
|
||||
"short": "Планирование!",
|
||||
},
|
||||
{
|
||||
"text": "Душевные разговоры, после которых хочется обнимать весь мир 🫂",
|
||||
"types": ["ENFJ", "INFJ", "ISFP", "INFP"],
|
||||
"short": "Душевность!",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
TEST_RESULTS = {
|
||||
"INTJ": (
|
||||
"Профессор Селезнёв",
|
||||
"Ты умеешь воспринимать ситуацию глобально, а твои действия точны и эффективны. Ты, как и профессор Селезнев, привык к системному подходу и логическому анализу, эксперт в своей области",
|
||||
"Чернобог",
|
||||
"Ты стратег, как Чернобог. Умеешь видеть общую картину и планировать наперёд. Ты действуешь точно и уверенно, опираясь на разум.",
|
||||
),
|
||||
"INTP": (
|
||||
"Знайка",
|
||||
"Знаешь всё про всё и даже больше. Предпочитаешь полагаться на свою голову. Любишь “покопаться” в каком-нибудь вопросе и не боишься выдвигать даже самые неожиданные гипотезы",
|
||||
"Велес",
|
||||
"Ты мудрый искатель истины, как Велес — хранитель тайных знаний. Ты стремишься понять мир глубже и видишь то, что скрыто от других. Твоя сила в интеллекте и наблюдательности.",
|
||||
),
|
||||
"INFJ": (
|
||||
"Ёжик в тумане",
|
||||
"Ты, как и Ежик, типичный интроверт, погруженный в свой внутренний мир. Ты глубоко чувствуешь окружающий мир и обладаешь богатым воображением. Хоть и бываешь застенчив и раним, но при этом ты отзывчив и добр.",
|
||||
"Морена",
|
||||
"Ты загадочная и глубокая личность, как Морена. Чувствуешь перемены и понимаешь истинную природу вещей. Твоя мудрость помогает тебе видеть то, что недоступно другим.",
|
||||
),
|
||||
"INFP": (
|
||||
"Кот Леопольд",
|
||||
"<b>«Ребята, давайте жить дружно!» </b>\n\nТы стремишься к гармонии во всех сферах жизни. Ты творческая личность, которая в принятии решений руководствуется своими ценностями и убеждениями",
|
||||
"Леля",
|
||||
"Ты чистая и искренняя душа, как Леля. Веришь в добро и следуешь своему сердцу. Твоя сила в чувствах и внутренней правде.",
|
||||
),
|
||||
"ISTJ": (
|
||||
"Кролик из Винни Пуха",
|
||||
"<b>“-И это всё потому, что у кого-то очень узкие двери! -Нет! Это всё потому, что кто-то слишком много ест!”</b>\n\nТы, как и кролик, всегда логичен и прагматичен. Не тратишь слов попусту, но в ответ на критику за словом в карман не полезешь))",
|
||||
"Домовой",
|
||||
"Ты надёжный защитник, как Домовой. Ценишь порядок, стабильность и безопасность. На тебя всегда можно положиться.",
|
||||
),
|
||||
"ISTP": (
|
||||
"Буратино",
|
||||
"Ты стремишься узнать мир и найти свое место в жизни. Ты, как и Буратино, полон энергии и любопытства. Ты всегда готов исследовать новое и пробовать разные вещи",
|
||||
"Кощей",
|
||||
"Ты независимый и сильный, как Кощей. Привык полагаться на себя, умеешь выживать и находить решения в любой ситуации.",
|
||||
),
|
||||
"ISFJ": (
|
||||
"Пятачок",
|
||||
"Ты добрый и заботливый (поросенок), всегда готов поддержать своих друзей. Любишь проявлять преданность и стремление заботиться о других, стараясь сделать их счастливыми. Как и Пятачок ты всегда готов прийти на помощь, даже если это требует смелости.",
|
||||
"Макошь",
|
||||
"Ты хранитель судьбы, как Макошь. Заботишься о других и создаёшь стабильность. Люди доверяют тебе и чувствуют рядом с тобой безопасность.",
|
||||
),
|
||||
"ISFP": (
|
||||
"Кот Матроскин",
|
||||
"Ты гибкий, очаровательный артист, всегда готовый исследовать и испытать что-то новое. Ты творческая личность, тонкая, эмоциональные и чувствительные натура",
|
||||
"Жива",
|
||||
"Ты живёшь в гармонии, как богиня Жива. Тонко чувствуешь мир и ценишь красоту. Твоя сила — в искренности и внутреннем балансе.",
|
||||
),
|
||||
"ENTJ": (
|
||||
"Сыщик из бременских музыкантов",
|
||||
"<b>Оу ес!</b>\n\nТы решителен и успешен в любом деле. Можешь легко подстроиться под обстоятельства и наперёд просчитать свои действия, прямо как гениальный сыщик!",
|
||||
"Перун",
|
||||
"Ты прирождённый лидер, как Перун — бог грома и справедливости. Ты берёшь ответственность на себя и уверенно ведёшь других. Твоя сила в решительности, порядке и способности действовать без колебаний.",
|
||||
),
|
||||
"ENTP": (
|
||||
"Карлсон",
|
||||
"<b>“В самом расцвете сил!”</b>\n\nТы экстравертен, обаятелен, остроумен, любишь привлекать внимание и постоянно придумывать новые затеи!",
|
||||
"Стрибог",
|
||||
"Ты свободный дух, как Стрибог — бог ветра. Ты приносишь новые идеи и перемены. Твоя энергия вдохновляет и открывает новые возможности.",
|
||||
),
|
||||
"ENFJ": (
|
||||
"Почтальон Печкин",
|
||||
"Своей яркой харизмой ты без усилий убеждаешь и увлекаешь других, наполняя пространство теплом и создавая отличную атмосферу для продуктивной работы.",
|
||||
"Даждьбог",
|
||||
"Ты несёшь свет и развитие, как Даждьбог. Ты вдохновляешь других и помогаешь им становиться лучше. Твоя сила в поддержке и лидерстве.",
|
||||
),
|
||||
"ENFP": (
|
||||
"Трубадур из бременских музыкантов",
|
||||
"Ты энергичный, харизматичный и независимый человек. Ты не боишься перемен и всегда открыт к чему-то новому, легко находишь общий язык с людьми, а твое творческое мышление помогает находить нестандартные решения",
|
||||
"Купала",
|
||||
"Ты приносишь радость и вдохновение, как Купала. Любишь жизнь, новые эмоции и возможности. Люди тянутся к твоему свету.",
|
||||
),
|
||||
"ESTJ": (
|
||||
"Римма Трофимовна. Мама дядя Федора",
|
||||
"Ты являешься практичным и инициативным человеком, способным организовывать своё время и задачи. Высокие стандарты, которые ты установил для себя, делают тебя надежным и вдохновляющим примером для окружающих.",
|
||||
"Род",
|
||||
"Ты создаёшь основы, как Род — создатель мира. Ты организованный и ответственный. Ты умеешь строить порядок и управлять процессами.",
|
||||
),
|
||||
"ESTP": (
|
||||
"Волк из “Ну, погоди!”",
|
||||
"Ты энергичный, авантюрный и предприимчивый. Как Волк всегда стремишься достичь своей цели и, не останавливаясь, ищешь новых приключений!",
|
||||
"Ярило",
|
||||
"Яркость и смелость, как у Ярило — бога солнца и жизни. Ты любишь действовать и не боишься риска. Ты живёшь настоящим моментом.",
|
||||
),
|
||||
"ESFJ": (
|
||||
"Дядя Федор",
|
||||
"Как и Дядя Федор, ты надежный и ответственный, на тебя всегда можно положиться. Ты внимателен к потребностям и чувствам других людей и всегда готов прийти на помощь.",
|
||||
"Лада",
|
||||
"Ты создаёшь гармонию, как богиня Лада. Умеешь объединять людей и заботиться о них. Твоя сила в доброте, поддержке и способности создавать баланс.",
|
||||
),
|
||||
"ESFP": (
|
||||
"Мышонок",
|
||||
"<b>“Какой чудесный день, какой чудесный пень…”</b>\n\nЗаводила, запевала. Всегда в центре событий. Умеешь заставить улыбнуться людей",
|
||||
"Жар-птица",
|
||||
"Ты — огонь праздника, как Жар-птица. Умеешь зажигать людей вокруг, любишь яркие впечатления и легко превращаешь обычный день в событие. Твоя сила в харизме, смелости и умении жить “здесь и сейчас”.",
|
||||
),
|
||||
}
|
||||
|
||||
@@ -18,6 +18,8 @@ class User:
|
||||
self._faculty: str = None
|
||||
self._group: str = None
|
||||
self._type: str = None
|
||||
self._agree_upload: bool = None
|
||||
self._vector_type: dict = None
|
||||
|
||||
self._load()
|
||||
|
||||
@@ -87,6 +89,28 @@ class User:
|
||||
|
||||
return self._type
|
||||
|
||||
@property
|
||||
def agree_upload(self):
|
||||
return self._agree_upload
|
||||
|
||||
@agree_upload.setter
|
||||
def agree_upload(self, value):
|
||||
self._agree_upload = value
|
||||
self.update_data()
|
||||
|
||||
return self._agree_upload
|
||||
|
||||
@property
|
||||
def vector_type(self):
|
||||
return self._vector_type
|
||||
|
||||
@vector_type.setter
|
||||
def vector_type(self, value):
|
||||
self._vector_type = value
|
||||
self.update_data()
|
||||
|
||||
return self._vector_type
|
||||
|
||||
def _into_json(self):
|
||||
return {
|
||||
"_id": self.user_id,
|
||||
@@ -96,6 +120,8 @@ class User:
|
||||
"faculty": self._faculty,
|
||||
"group": self._group,
|
||||
"type": self._type,
|
||||
"agree_upload": self._agree_upload,
|
||||
"vector_type": self._vector_type,
|
||||
}
|
||||
|
||||
def update_data(self):
|
||||
@@ -128,6 +154,8 @@ class User:
|
||||
self._faculty = data["faculty"]
|
||||
self._group = data["group"]
|
||||
self._type = data["type"]
|
||||
self._agree_upload = data["agree_upload"]
|
||||
self._vector_type = data["vector_type"]
|
||||
|
||||
@staticmethod
|
||||
def start_shuffle_reg():
|
||||
|
||||