refactor: streamline referral payment message and improve text clarity

This commit is contained in:
2026-04-18 22:47:24 +07:00
parent 78a0ef9750
commit 97c187bafb
3 changed files with 35 additions and 26 deletions

View File

@@ -84,9 +84,7 @@ async def refpay_cb(
await cb.message.answer(USER_NO_REFERAL, reply_markup=close_kb) await cb.message.answer(USER_NO_REFERAL, reply_markup=close_kb)
return return
msg = await cb.message.answer( msg = await cb.message.answer(SPECIFY_REFERAL_PAYMENT_AMOUNT, reply_markup=close_kb)
SPECIFY_REFERAL_PAYMENT_AMOUNT, reply_markup=close_kb
)
ctx = GeneralMessageContext(msg=msg) ctx = GeneralMessageContext(msg=msg)
await state.set_state(AdminStorage.refpay_amount) await state.set_state(AdminStorage.refpay_amount)
await state.set_data({"ctx": ctx}) await state.set_data({"ctx": ctx})

View File

@@ -33,7 +33,10 @@ payment_gateways: InlineKeyboardMarkup = InlineKeyboardBuilder(
] ]
).as_markup() ).as_markup()
close_kb: InlineKeyboardMarkup = InlineKeyboardBuilder([[InlineKeyboardButton(text="", callback_data="delete")]]).as_markup() close_kb: InlineKeyboardMarkup = InlineKeyboardBuilder(
[[InlineKeyboardButton(text="", callback_data="delete")]]
).as_markup()
def _return_btn(data: str = "menu:main", text: str = "⬅️ Назад") -> InlineKeyboardButton: def _return_btn(data: str = "menu:main", text: str = "⬅️ Назад") -> InlineKeyboardButton:
return InlineKeyboardButton(text=text, callback_data=data) return InlineKeyboardButton(text=text, callback_data=data)

View File

@@ -48,9 +48,9 @@ STATUS_ICON_UNKNOWN = "❓"
# — Тексты статусов # — Тексты статусов
STATUS_ACTIVE = "работает" STATUS_ACTIVE = "работает"
STATUS_DISABLED = "отключена" STATUS_DISABLED = "отключена"
STATUS_EXPIRED = "срок вышел" STATUS_EXPIRED = "истёк"
STATUS_LIMITED = "трафик на нуле" STATUS_LIMITED = "трафик ограничен"
STATUS_UNKNOWN = "выясняем" STATUS_UNKNOWN = "неизвестный статус"
# ============================================================ # ============================================================
@@ -60,10 +60,10 @@ STATUS_UNKNOWN = "выясняем"
# — Дни до истечения подписки # — Дни до истечения подписки
DAYS_LEFT_POSITIVE = "{days} дн." DAYS_LEFT_POSITIVE = "{days} дн."
DAYS_LEFT_EXPIRED = "истекла {days} дн. назад" DAYS_LEFT_EXPIRED = "истекла {days} дн. назад"
DAYS_LEFT_TODAY = "доживает последний день" DAYS_LEFT_TODAY = "подходит к концу сегодня"
# — Username # — Username
NO_USERNAME = "скрыт" NO_USERNAME = "отсутствует"
USERNAME_DISPLAY = "@{username}" USERNAME_DISPLAY = "@{username}"
# — Internal Squads # — Internal Squads
@@ -89,21 +89,29 @@ MAIN_MENU = (
str(MALENIA_LOGO) str(MALENIA_LOGO)
+ " <b>Malenia — <i>{quote}</i></b>\n\n" + " <b>Malenia — <i>{quote}</i></b>\n\n"
+ f"<i>{MALENIA_COINS} Личный кабинет</i>\n" + f"<i>{MALENIA_COINS} Личный кабинет</i>\n"
+ f"<b>{MALENIA_LINK} Ключ доступа: <code>{{link}}</code></b>" + f"<b>{MALENIA_LINK} Ссылка на подписку: <code>{{link}}</code></b>"
) )
FAQ_TEXT = ( FAQ_TEXT = (
"<b>FAQ: Технический минимум</b>\n\n" "<b>Ваши частые вопросы:</b>\n\n"
"Здесь нет магии и «инновационных прорывов». Только обфускация трафика и стабильные узлы. " "<b>— Зачем мне это?</b>\n"
"Если что-то не грузится — скорее всего, фильтры опять пробуют новые сигнатуры. " "Если вас устраивает, что ваш интернет ограничен парой сайтов и банков, то вам не к нам. Но если хочется свободы и анонимности — добро пожаловать.\n\n"
"Мы это уже чиним." "<b>— Это безопасно?</b>\n"
"Мы не храним ваши данные, не используем их в коммерческих целях и не передаем третьим лицам,"
"но важно понимать, что полной анонимности не существует. Мы делаем всё, чтобы минимизировать риски, но не продаём иллюзий.\n\n"
"<b>— Почему что-то не работает?</b>\n"
"Фильтры постоянно обновляются и подстраиваются под новые методы обхода. А мы подстраиваемся под них.\n"
"Если что-то перестало работать, скорее всего, это временно, и мы уже работаем над решением. Но обращения в поддержку с описанием проблемы и скриншотами всегда приветствуются, это помогает нам быстрее находить и устранять проблемы.\n\n"
"<b>— Как работает реферальная система?</b>\n"
"Вы получаете уникальную ссылку, по которой могут прийти ваши друзья. За каждого приведённого друга, который оформит подписку,"
"<b>вам будет начисляться процент от их оплаченной подписки</b> на баланс."
) )
GENERAL_PROCESSING = "<i>⏳ Проверяем пакеты...</i>" GENERAL_PROCESSING = "<i>⏳ Подождите...</i>"
STANDARD_FALLBACK = "<b>❌ Ошибка в логике.</b> Прожмите /start. Если не поможет — значит, мы где-то не доглядели за кодом." STANDARD_FALLBACK = "<b>❌ Ошибка.</b> Прожмите /start. Если не поможет — значит, мы где-то не доглядели."
CALLBACK_FALLBACK = "Пакет потерян, попробуйте снова" CALLBACK_FALLBACK = "Что-то пошло не так. Повторите попытку или обратитесь в поддержку."
CONTEXT_REINITIATED = "🌑 Сессия сброшена. Данные могли обновиться." CONTEXT_REINITIATED = "🌑 Сессия сброшена. Данные могли обновиться."
@@ -115,10 +123,10 @@ UNDEFINED_MESSAGE = "❌ Таких команд у нас нет.\n\n<i>Ище
REFERALS_MENU = ( REFERALS_MENU = (
"<b>👥 Реферальная система</b>\n\n" "<b>👥 Реферальная система</b>\n\n"
"Никакого сетевого маркетинга, просто делимся ресурсами.\n" "Делитесь свободой с друзьями и получайте деньги на оплату своей подписки.\n"
f"<b>{MALENIA_COINS} На вашем счету:</b> " f"<b>{MALENIA_COINS} На вашем счету:</b> "
"<code>{balance}₽</code>\n" "<code>{balance}₽</code>\n"
f"<b>{MALENIA_LINK} Ссылка для своих:</b> " f"<b>{MALENIA_LINK} Ваша реферальная ссылка:</b> "
"<code>{link}</code>" "<code>{link}</code>"
) )
@@ -127,15 +135,15 @@ REFERALS_MENU = (
# ============================================================ # ============================================================
SUBSCRIPTION_DEVICE_SELECTOR = ( SUBSCRIPTION_DEVICE_SELECTOR = (
"Сколько девайсов нужно держать в сети одновременно?\n\nЦена вопроса: <b>{price}₽</b>" "Сколько устройств вы хотите подключить?\n\nЦена: <b>{price}₽</b>"
) )
SUBSCRIPTION_DURATION_SELECTOR = "На какой срок планируем инфраструктуру?\n\nИтого: <b>{price}₽</b>" SUBSCRIPTION_DURATION_SELECTOR = "На какой срок хотите оформить подписку?\n\nИтого: <b>{price}₽</b>"
WHITELISTS_ALREADY_ON = "Списки доступа уже активны." WHITELISTS_ALREADY_ON = "Белые списки уже активны."
CHECKOUT_PAYMENT_CHOICE = ( CHECKOUT_PAYMENT_CHOICE = (
"Автоплатежи — это не к нам. Стукните в поддержку, там объяснят, куда слать деньги." "Пока что без автоплатежа. Нажмите кнопку ниже и обратитесь в поддержку для оплаты и активации подписки."
) )
@@ -147,12 +155,12 @@ SUPPORT_INIT = (
f"<b>{MALENIA_SUPPORT} Технический отдел</b>\n" f"<b>{MALENIA_SUPPORT} Технический отдел</b>\n"
"— если интернет превратился в тыкву или есть идеи по конфигам.\n" "— если интернет превратился в тыкву или есть идеи по конфигам.\n"
"Пишите по делу, скриншоты приветствуются.\n\n" "Пишите по делу, скриншоты приветствуются.\n\n"
"<i>🌑 /cancel — вернуться к делам</i>" "<i>🌑 /cancel — вернуться в меню</i>"
) )
SUPPORT_MSG_SENT = "⏳ Принято. Инженеры посмотрят, как освободятся. " "Вернуться в меню: /cancel" SUPPORT_MSG_SENT = "⏳ Приняли ваше сообщение. Мы постараемся ответить на него в ближайшее время.\n<i>Вернуться в меню: /cancel</i>"
SUPPORT_SIGNATURE = "<b>📡 Ответ от Malenia Team:</b>" SUPPORT_SIGNATURE = "<b>📡 Ответ от Malenia:</b>"
# ============================================================ # ============================================================