Дисциплина CS2 → «Counter-Strike 2» в текстах и кнопке выбора игры
Отображаемое название дисциплины расписано полностью: кнопка выбора игры, приветствие, список направлений, вопрос об уровне, значение game, инфо интенсива, описание услуги. Ввод «CS2» по-прежнему распознаётся (+ counter/strike). Метка game_cs2 и UTM summer_intensive не тронуты (внутренние). Название продукта «Летний интенсив CS2» оставлено как есть. pytest 36 passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -827,8 +827,8 @@ class VKBotApplication:
|
|||||||
db.update_user_state(user_id, "BAZA_AGE")
|
db.update_user_state(user_id, "BAZA_AGE")
|
||||||
self.send_message(user_id, "Сколько лет игроку?", keyboard=get_baza_age_keyboard())
|
self.send_message(user_id, "Сколько лет игроку?", keyboard=get_baza_age_keyboard())
|
||||||
return
|
return
|
||||||
if "cs" in text_lower or "кс" in text_lower or "контр" in text_lower:
|
if "counter" in text_lower or "strike" in text_lower or "cs" in text_lower or "кс" in text_lower or "контр" in text_lower:
|
||||||
game, metka = "CS2", "game_cs2"
|
game, metka = "Counter-Strike 2", "game_cs2"
|
||||||
elif "dota" in text_lower or "дота" in text_lower:
|
elif "dota" in text_lower or "дота" in text_lower:
|
||||||
game, metka = "Dota 2", "game_dota2"
|
game, metka = "Dota 2", "game_dota2"
|
||||||
elif "tank" in text_lower or "танк" in text_lower or "wot" in text_lower:
|
elif "tank" in text_lower or "танк" in text_lower or "wot" in text_lower:
|
||||||
@@ -837,7 +837,7 @@ class VKBotApplication:
|
|||||||
db.update_user_state(user_id, "BAZA_GAME_OTHER")
|
db.update_user_state(user_id, "BAZA_GAME_OTHER")
|
||||||
self.send_message(
|
self.send_message(
|
||||||
user_id,
|
user_id,
|
||||||
"Сейчас основные направления БАЗЫ — CS2, Dota 2 и World of Tanks.\n"
|
"Сейчас основные направления БАЗЫ — Counter-Strike 2, Dota 2 и World of Tanks.\n"
|
||||||
"Напишите название игры одним сообщением. Мы передадим запрос менеджеру и сообщим, "
|
"Напишите название игры одним сообщением. Мы передадим запрос менеджеру и сообщим, "
|
||||||
"можем ли предложить подходящего тренера.",
|
"можем ли предложить подходящего тренера.",
|
||||||
keyboard=get_baza_menu_only_keyboard()
|
keyboard=get_baza_menu_only_keyboard()
|
||||||
@@ -1061,7 +1061,7 @@ class VKBotApplication:
|
|||||||
if age and "младше 12" not in age:
|
if age and "младше 12" not in age:
|
||||||
# возраст уже известен из подбора — не переспрашиваем (§15)
|
# возраст уже известен из подбора — не переспрашиваем (§15)
|
||||||
db.update_user_state(user_id, "BAZA_INT_LEVEL")
|
db.update_user_state(user_id, "BAZA_INT_LEVEL")
|
||||||
self.send_message(user_id, "Какой сейчас уровень в CS2?", keyboard=get_baza_int_level_keyboard())
|
self.send_message(user_id, "Какой сейчас уровень в Counter-Strike 2?", keyboard=get_baza_int_level_keyboard())
|
||||||
else:
|
else:
|
||||||
db.update_user_state(user_id, "BAZA_INT_AGE")
|
db.update_user_state(user_id, "BAZA_INT_AGE")
|
||||||
self.send_message(user_id, "Сколько лет игроку?", keyboard=get_baza_age_keyboard())
|
self.send_message(user_id, "Сколько лет игроку?", keyboard=get_baza_age_keyboard())
|
||||||
@@ -1096,7 +1096,7 @@ class VKBotApplication:
|
|||||||
return
|
return
|
||||||
db.set_profile_field(user_id, "age", age)
|
db.set_profile_field(user_id, "age", age)
|
||||||
db.update_user_state(user_id, "BAZA_INT_LEVEL")
|
db.update_user_state(user_id, "BAZA_INT_LEVEL")
|
||||||
self.send_message(user_id, "Какой сейчас уровень в CS2?", keyboard=get_baza_int_level_keyboard())
|
self.send_message(user_id, "Какой сейчас уровень в Counter-Strike 2?", keyboard=get_baza_int_level_keyboard())
|
||||||
|
|
||||||
def _handle_baza_int_young(self, user_id: int, text: str, text_lower: str):
|
def _handle_baza_int_young(self, user_id: int, text: str, text_lower: str):
|
||||||
if text_lower.startswith("передать"):
|
if text_lower.startswith("передать"):
|
||||||
@@ -1125,7 +1125,7 @@ class VKBotApplication:
|
|||||||
self.send_message(user_id, "Выберите уровень на кнопках ниже 👇", keyboard=get_baza_int_level_keyboard())
|
self.send_message(user_id, "Выберите уровень на кнопках ниже 👇", keyboard=get_baza_int_level_keyboard())
|
||||||
return
|
return
|
||||||
db.set_profile_field(user_id, "level", match)
|
db.set_profile_field(user_id, "level", match)
|
||||||
db.set_profile_field(user_id, "game", "CS2 (интенсив)")
|
db.set_profile_field(user_id, "game", "Counter-Strike 2 (интенсив)")
|
||||||
db.update_user_state(user_id, "BAZA_INT_PAY_INTRO")
|
db.update_user_state(user_id, "BAZA_INT_PAY_INTRO")
|
||||||
self.send_message(
|
self.send_message(
|
||||||
user_id,
|
user_id,
|
||||||
|
|||||||
@@ -126,10 +126,16 @@ MAIN_TRIGGERS = ["начать", "тренировки", "занятия", "це
|
|||||||
"привет", "здравствуйте", "старт", "меню"]
|
"привет", "здравствуйте", "старт", "меню"]
|
||||||
SUMMER_TRIGGERS = ["лето", "интенсив", "летний интенсив", "интенсив cs2", "хочу на интенсив"]
|
SUMMER_TRIGGERS = ["лето", "интенсив", "летний интенсив", "интенсив cs2", "хочу на интенсив"]
|
||||||
|
|
||||||
|
# --- Вебинар «Точка входа в киберспорт» ---
|
||||||
|
WEBINAR_TITLE = "Точка входа в киберспорт"
|
||||||
|
WEBINAR_DATE = "30 июля"
|
||||||
|
WEBINAR_TIME = "19:00"
|
||||||
|
WEBINAR_PAYLOAD = "webinar_register"
|
||||||
|
|
||||||
# --- Тексты (по ТЗ, редактируемые) ---
|
# --- Тексты (по ТЗ, редактируемые) ---
|
||||||
GREETING_BAZA = (
|
GREETING_BAZA = (
|
||||||
"Привет! Это Кибершкола БАЗА 🎮\n\n"
|
"Привет! Это Кибершкола БАЗА 🎮\n\n"
|
||||||
"Мы проводим онлайн-тренировки по CS2, Dota 2 и World of Tanks для подростков 12+.\n"
|
"Мы проводим онлайн-тренировки по Counter-Strike 2, Dota 2 и World of Tanks для подростков 12+.\n"
|
||||||
"Помогу подобрать подходящий формат, посмотреть цены или записаться на тренировку."
|
"Помогу подобрать подходящий формат, посмотреть цены или записаться на тренировку."
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -147,7 +153,7 @@ PRICES_TEXT = (
|
|||||||
|
|
||||||
INTENSIVE_PRICE = "1 990 ₽"
|
INTENSIVE_PRICE = "1 990 ₽"
|
||||||
INTENSIVE_INFO = (
|
INTENSIVE_INFO = (
|
||||||
"Привет! Вы написали кодовое слово «лето» — рассказываю про летний интенсив по CS2 🔥\n\n"
|
"Привет! Вы написали кодовое слово «лето» — рассказываю про летний интенсив по Counter-Strike 2 🔥\n\n"
|
||||||
"Это 4 онлайн-тренировки по 90 минут с тренером.\n"
|
"Это 4 онлайн-тренировки по 90 минут с тренером.\n"
|
||||||
"На интенсиве участники будут:\n"
|
"На интенсиве участники будут:\n"
|
||||||
"— разбирать роли и командную игру;\n"
|
"— разбирать роли и командную игру;\n"
|
||||||
@@ -162,7 +168,7 @@ SERVICES = {
|
|||||||
"1": {
|
"1": {
|
||||||
"name": "Counter-Strike 2 🔫",
|
"name": "Counter-Strike 2 🔫",
|
||||||
"price": "от 870 ₽ / занятие",
|
"price": "от 870 ₽ / занятие",
|
||||||
"description": "Тренировки по CS2: aim, раскидки гранат, командная тактика. Разовое занятие 870 ₽, абонементы от 2 790 ₽."
|
"description": "Тренировки по Counter-Strike 2: aim, раскидки гранат, командная тактика. Разовое занятие 870 ₽, абонементы от 2 790 ₽."
|
||||||
},
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"name": "Dota 2 🎮",
|
"name": "Dota 2 🎮",
|
||||||
|
|||||||
+1
-1
@@ -69,7 +69,7 @@ def get_baza_younger12_keyboard() -> str:
|
|||||||
|
|
||||||
|
|
||||||
def get_baza_game_keyboard() -> str:
|
def get_baza_game_keyboard() -> str:
|
||||||
return _kb([["CS2", "Dota 2"], ["World of Tanks", "Другая игра"]], back=True)
|
return _kb([["Counter-Strike 2", "Dota 2"], ["World of Tanks", "Другая игра"]], back=True)
|
||||||
|
|
||||||
|
|
||||||
def get_baza_level_keyboard() -> str:
|
def get_baza_level_keyboard() -> str:
|
||||||
|
|||||||
+1
-1
@@ -20,7 +20,7 @@ def test_baza_group_funnel_to_payment(app):
|
|||||||
app.handle_message(u, "Групповые тренировки"); assert _state(u) == "BAZA_GROUP"
|
app.handle_message(u, "Групповые тренировки"); assert _state(u) == "BAZA_GROUP"
|
||||||
app.handle_message(u, "Купить 4 тренировки"); assert _state(u) == "BAZA_PAY"
|
app.handle_message(u, "Купить 4 тренировки"); assert _state(u) == "BAZA_PAY"
|
||||||
p = _prof(u)
|
p = _prof(u)
|
||||||
assert p["role"].startswith("Родитель") and p["game"] == "CS2"
|
assert p["role"].startswith("Родитель") and p["game"] == "Counter-Strike 2"
|
||||||
assert p["format"] == "Групповые тренировки" and "4" in p["tariff"]
|
assert p["format"] == "Групповые тренировки" and "4" in p["tariff"]
|
||||||
assert p.get("started_at") # дата запуска сохранена (§13)
|
assert p.get("started_at") # дата запуска сохранена (§13)
|
||||||
assert {"role_parent", "game_cs2", "format_group", "clicked_payment", "lead_hot"} <= set(p["metki"])
|
assert {"role_parent", "game_cs2", "format_group", "clicked_payment", "lead_hot"} <= set(p["metki"])
|
||||||
|
|||||||
Reference in New Issue
Block a user