Дисциплина 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:
Kenik
2026-07-26 10:29:32 +03:00
parent 7caecb1c72
commit 348b944638
4 changed files with 17 additions and 11 deletions
+6 -6
View File
@@ -827,8 +827,8 @@ class VKBotApplication:
db.update_user_state(user_id, "BAZA_AGE")
self.send_message(user_id, "Сколько лет игроку?", keyboard=get_baza_age_keyboard())
return
if "cs" in text_lower or "кс" in text_lower or "контр" in text_lower:
game, metka = "CS2", "game_cs2"
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 = "Counter-Strike 2", "game_cs2"
elif "dota" in text_lower or "дота" in text_lower:
game, metka = "Dota 2", "game_dota2"
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")
self.send_message(
user_id,
"Сейчас основные направления БАЗЫ — CS2, Dota 2 и World of Tanks.\n"
"Сейчас основные направления БАЗЫ — Counter-Strike 2, Dota 2 и World of Tanks.\n"
"Напишите название игры одним сообщением. Мы передадим запрос менеджеру и сообщим, "
"можем ли предложить подходящего тренера.",
keyboard=get_baza_menu_only_keyboard()
@@ -1061,7 +1061,7 @@ class VKBotApplication:
if age and "младше 12" not in age:
# возраст уже известен из подбора — не переспрашиваем (§15)
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:
db.update_user_state(user_id, "BAZA_INT_AGE")
self.send_message(user_id, "Сколько лет игроку?", keyboard=get_baza_age_keyboard())
@@ -1096,7 +1096,7 @@ class VKBotApplication:
return
db.set_profile_field(user_id, "age", age)
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):
if text_lower.startswith("передать"):
@@ -1125,7 +1125,7 @@ class VKBotApplication:
self.send_message(user_id, "Выберите уровень на кнопках ниже 👇", keyboard=get_baza_int_level_keyboard())
return
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")
self.send_message(
user_id,
+9 -3
View File
@@ -126,10 +126,16 @@ MAIN_TRIGGERS = ["начать", "тренировки", "занятия", "це
"привет", "здравствуйте", "старт", "меню"]
SUMMER_TRIGGERS = ["лето", "интенсив", "летний интенсив", "интенсив cs2", "хочу на интенсив"]
# --- Вебинар «Точка входа в киберспорт» ---
WEBINAR_TITLE = "Точка входа в киберспорт"
WEBINAR_DATE = "30 июля"
WEBINAR_TIME = "19:00"
WEBINAR_PAYLOAD = "webinar_register"
# --- Тексты (по ТЗ, редактируемые) ---
GREETING_BAZA = (
"Привет! Это Кибершкола БАЗА 🎮\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_INFO = (
"Привет! Вы написали кодовое слово «лето» — рассказываю про летний интенсив по CS2 🔥\n\n"
"Привет! Вы написали кодовое слово «лето» — рассказываю про летний интенсив по Counter-Strike 2 🔥\n\n"
"Это 4 онлайн-тренировки по 90 минут с тренером.\n"
"На интенсиве участники будут:\n"
"— разбирать роли и командную игру;\n"
@@ -162,7 +168,7 @@ SERVICES = {
"1": {
"name": "Counter-Strike 2 🔫",
"price": "от 870 ₽ / занятие",
"description": "Тренировки по CS2: aim, раскидки гранат, командная тактика. Разовое занятие 870 ₽, абонементы от 2 790 ₽."
"description": "Тренировки по Counter-Strike 2: aim, раскидки гранат, командная тактика. Разовое занятие 870 ₽, абонементы от 2 790 ₽."
},
"2": {
"name": "Dota 2 🎮",
+1 -1
View File
@@ -69,7 +69,7 @@ def get_baza_younger12_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:
+1 -1
View File
@@ -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, "Купить 4 тренировки"); assert _state(u) == "BAZA_PAY"
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.get("started_at") # дата запуска сохранена (§13)
assert {"role_parent", "game_cs2", "format_group", "clicked_payment", "lead_hot"} <= set(p["metki"])