# ============================================================ # PREMIUM EMOJI # ============================================================ class PremiumEmoji: def __init__(self, emoji_id: int, emoji: str): self.emoji_id = emoji_id self.emoji = emoji def __str__(self) -> str: return f'{self.emoji}' # — Иконки бота MALENIA_LOGO = PremiumEmoji(5265053829522562789, "☀️") MALENIA_HEART = PremiumEmoji(5276516908257025723, "❤️") MALENIA_LINK = PremiumEmoji(5276012730636082950, "🔗") MALENIA_COINS = PremiumEmoji(5276298354551199712, "🪙") MALENIA_LOCKED = PremiumEmoji(5276346642868508688, "🔒") MALENIA_SUPPORT = PremiumEmoji(5275968088746006467, "🎧") MALENIA_SHIELD = PremiumEmoji(5444924740596702937, "☀️") MALENIA_SILHOUETTE = PremiumEmoji(5447117295631506779, "☀️") MALENIA_CARD = PremiumEmoji(5447145526451543197, "☀️") MALENIA_QUESTION = PremiumEmoji(5276157346479903928, "❤️") MALENIA_CHAT = PremiumEmoji(5445391895599554146, "☀️") MALENIA_CHECK = PremiumEmoji(5447446814112389179, "☀️") MALENIA_CROSS = PremiumEmoji(5444977405485687021, "☀️") MALENIA_WARN = PremiumEmoji(5447571325214303934, "☀️") MALENIA_BANK = PremiumEmoji(5447344860178717542, "☀️") # ============================================================ # ОБЩИЕ БЛОКИ # ============================================================ _DIVIDER = "────────────────────────────\n\n" # ============================================================ # СТАТУСЫ ПОДПИСКИ # ============================================================ # — Иконки статусов STATUS_ICON_ACTIVE = "🟢" STATUS_ICON_DISABLED = "⚪" STATUS_ICON_EXPIRED = "🔴" STATUS_ICON_LIMITED = "🟠" STATUS_ICON_UNKNOWN = "❓" # — Тексты статусов STATUS_ACTIVE = "активна" STATUS_DISABLED = "отключена" STATUS_EXPIRED = "истёк" STATUS_LIMITED = "трафик ограничен" STATUS_UNKNOWN = "неизвестный статус" # ============================================================ # ФОРМАТИРОВАНИЕ ДАННЫХ # ============================================================ # — Дни до истечения подписки DAYS_LEFT_POSITIVE = "{days} дн." DAYS_LEFT_EXPIRED = "истекла {days} дн. назад" DAYS_LEFT_TODAY = "подходит к концу сегодня" # — Username NO_USERNAME = "отсутствует" USERNAME_DISPLAY = "@{username}" # — Internal Squads NO_SQUADS = "отсутствуют" # — HWID лимит UNLIMITED_HWID = "без лимитов" # — OS эмодзи WINDOWS = "💻" LINUX = "🐧" ANDROID = "💚" APPLE = "🍎" UNKNOWN_OS = "👤" # — Трафик NO_TRAFFIC_LIMIT = "не ограничен" TRAFFIC_WITH_LIMIT = "{used} / {limit}" TRAFFIC_NO_LIMIT = "{used}" # — Прочее NOTHING_PLACEHOLDER = "∅" GENERAL_SUCCESS = "✅" # ============================================================ # ГЛАВНОЕ МЕНЮ # ============================================================ MAIN_MENU = ( str(MALENIA_LOGO) + " Malenia — {quote}\n\n" + f"{MALENIA_CARD} Личный кабинет\n" + f"{MALENIA_COINS} Ваш баланс: {{balance}}₽\n" + f"{MALENIA_LINK} Ссылка на подписку: {{link}}" ) # ============================================================ # FAQ # ============================================================ FAQ_TEXT = ( f"{MALENIA_HEART} Ваши частые вопросы:\n\n" f"{MALENIA_QUESTION} — Как продлить подписку?\n" f"{MALENIA_CHAT} — Подписка автоматически продляется из бота. Просто пополните баланс на нужную сумму и мы сами продлим вашу подписку. Вы можете выключить автопродление и продлять вручную, если захотите.\n\n" f"{MALENIA_QUESTION} — Как изменить количество устройств / опцию Обхода Белых Списков и др.?\n" f'{MALENIA_CHAT} — Вы можете это сделать в кнопке "Купить". Ваша подписка обновится на новый срок. Подробнее про механику продления вы можете почитать в нашей статье.\n\n' f"{MALENIA_QUESTION} — Что делать если VPN не работает?\n" f'{MALENIA_CHAT} — Пишите в поддержку. При обращении, не забывайте уточнять регион и оператора, т.к. ограничения разнятся от этих параметров.\n\n' f"{MALENIA_CHAT} Блиц:\n" "— Информация о подписке в боте.\n" "— Трафик безлимитен.\n" '— Тарифы начинаются от 3-х устройств. Меньше нельзя. Хотите больше 12? Вам в поддержку.\n' ) # ============================================================ # СОСТОЯНИЯ И ОБРАБОТКА # ============================================================ CALLBACK_PROCESSING = "⏳" GENERAL_PROCESSING = "⏳ Подождите..." CONTEXT_REINITIATED = "🌑 Сессия сброшена. Данные могли обновиться." # ============================================================ # ОШИБКИ И FALLBACK # ============================================================ STANDARD_FALLBACK = ( f"{MALENIA_CROSS} Ошибка. Прожмите /start. Если не поможет то скоро починим." ) CALLBACK_FALLBACK = "❌ Что-то пошло не так. Повторите попытку или обратитесь в поддержку." UNDEFINED_MESSAGE = f"{MALENIA_CROSS} Таких команд у нас нет.\n\nИщете техподдержку? Вам в /support\nПотерялись? Вам в /start." # ============================================================ # ИНФОРМАЦИЯ О ПОДПИСКЕ # ============================================================ SUBSCRIPTION_INFORMATION = ( "📊 Данные о подписке\n\n" f"{MALENIA_LINK} Ссылка на подписку: {{link}}\n\n" "{status_icon} Статус: {status}\n" + "📅 Истекает: {expire_date}\n" + "⏳ Осталось дней: {days_left}\n" + "📊 Израсходовано трафика: {used_traffic}\n" + "📱 Количество устройств: {hwid_limit}\n" + "💸 Автопродление: {autorenew}" ) NO_SUBSCRIPTION = f"{MALENIA_WARN} Подписка не найдена." NO_CONNECTIONS = f"{MALENIA_SHIELD} У вас нет подключённых устройств." HWID_LIST = f"{MALENIA_SHIELD} Ваши устройства ({{count}} / {{limit}}):" PROMPT_HWID_DELETION = f"{MALENIA_WARN} Вы уверены что хотите удалить это устройство?" SUCCESSFUL_HWID_DELETION = f"{MALENIA_HEART} Устройство успешно удалено." # ============================================================ # РЕФЕРАЛЬНАЯ СИСТЕМА # ============================================================ REFERALS_MENU = ( "👥 Реферальная система\n\n" "Делитесь с друзьями и получайте деньги на оплату своей подписки.\n" f"{MALENIA_COINS} На вашем счету: " "{balance}₽\n" f"{MALENIA_LINK} Ваша реферальная ссылка: " "{link}" ) # ============================================================ # ОФОРМЛЕНИЕ ПОДПИСКИ # ============================================================ SUBSCRIPTION_DEVICE_SELECTOR = ( f"{MALENIA_QUESTION} Сколько устройств вы хотите подключить?\n\nЦена: {{price}}₽" ) SUBSCRIPTION_DURATION_SELECTOR = f"{MALENIA_QUESTION} На какой срок хотите оформить подписку?\n\nИтого: {{price}}₽ (скидка: {{discount}}%)" WHITELISTS_ALREADY_ON = "Белые списки уже активны." CHECKOUT_PAYMENT_CHOICE = ( f"{MALENIA_BANK} Пополнение баланса:\n\n❓ Выберите способ оплаты:" ) # ============================================================ # БИЛЛИНГ # ============================================================ _BILL_TEMPLATE = ( f"{MALENIA_CHECK} Счёт на {{amount}}₽\n\n" "‼️ Вам придёт уведомление в течение нескольких минут после завершения платежа.\n" f"{MALENIA_CARD} Способ оплаты: {{provider}}\n\n" ) _BILL_LINK = f"{MALENIA_LINK} Ссылка на оплату:" BILL_CREATION = _BILL_TEMPLATE + _DIVIDER + GENERAL_PROCESSING BILL_CREATED = _BILL_TEMPLATE + _DIVIDER + _BILL_LINK INSUFFICIENT_FUNDS = f"{MALENIA_CROSS} Недостаточно средств для проведения операции.\n\n💰 Текущий баланс: {{balance}}₽\n💸 Требуется: {{amount}}₽\n\n{MALENIA_CARD} Пополните баланс на {{diff}}₽" SUCCESSFULLY_CREATED_SUBSCRIPTION = f"{MALENIA_HEART} Ваша подписка успешно оплачена! Ссылка на добавления доступна в главном меню." DEPOSIT_AMOUNT = f"{MALENIA_COINS} Укажите сумму пополнения:" DEPOSIT_AMOUNT_FALLBACK = ( f"{MALENIA_CROSS} Сумма пополнения указана неверно, повторите попытку." ) DEPOSIT_AMOUNT_BELOW_MINIMAL = ( f"{MALENIA_CROSS} Сумма пополнения ниже минимальной - {{threshold}}₽." ) # ============================================================ # АВТОПРОДЛЕНИЕ # ============================================================ AUTORENEWAL_INSUFFICIENT_FUNDS = ( f"{MALENIA_WARN} Не удалось продлить подписку автоматически.\n" "Недостаточно средств на балансе (нужно {price}₽, доступно {balance}₽). Автопродление отключено." ) AUTORENEWAL_SUCCESS = ( f"{MALENIA_CARD} Подписка продлена автоматически. Списано {{price}}₽." "Новая дата окончания: {end_date}." ) # ============================================================ # ПОДДЕРЖКА # ============================================================ SUPPORT_INIT = "🎧 Тех. Поддержка Malenia — не здесь. Кнопка ниже." # ============================================================ # АДМИН-ПАНЕЛЬ # ============================================================ ADM_MAIN_MENU = ( f"{MALENIA_SHIELD} Malenia. Админ-панель.\n" "— {quote}\n\n" f"{MALENIA_SILHOUETTE} Пользователей в боте: {{user_count}}\n" f"{MALENIA_CARD} Ваш ID: {{user_id}}\n" ) ADM_PROMO_INIT = "📢 Введите/перешлите текст рассылки:" ADM_VERIFY_PROMOTION = ( "❓ Отправить рассылку? Это действие будет невозможно отменить." ) SUCCESSFULLY_SENT_PROMO = "💚 Успешно отправлена рассылка.\n⚡ Успешных отправок: {successful}."