Дисциплина 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")
|
||||
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,
|
||||
|
||||
@@ -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
@@ -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
@@ -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"])
|
||||
|
||||
Reference in New Issue
Block a user