<% SWITCH cmd %> <% CASE 'USER_NOT_FOUND' %> { "shmRegister": { "partner_id": "{{ args.0 }}", "callback_data": "/start", "error": "ОШИБКА: Логин {{ message.chat.username }} или chat_id {{ message.chat.id }} уже существует" } } <% CASE ['/start', '/menu', 'Лучшее Меню'] %> {{ IF cmd != '/start' }} { "deleteMessage": { "message_id": {{ message.message_id }} } }, {{ END }} { "sendMessage": { "text":"Меню", "parse_mode": "HTML", "reply_markup": { "keyboard": [ [ {"text": "Лучшее Меню"} ] ], "one_time_keyboard": false, "resize_keyboard": true } } }, { "sendMessage": { "text": "Создавайте VPN ключи и управляйте ими", "reply_markup": { "inline_keyboard": [ [ { "text": "💰 Баланс", "callback_data": "/balance" } ], [ { "text": "🗝 Список VPN ключей", "callback_data": "/list" } ], [ { "text": "🤝 Реферальная система", "callback_data": "/referrals" } ], [ { "text": "🗓 Помощь", "callback_data": "/help" } ] ] } } } <% CASE '/balance' %> { "deleteMessage": { "message_id": {{ message.message_id }} } }, { "sendMessage": { "text": "💰 Баланс: {{ user.balance }}\n\nНеобходимо оплатить: {{ user.pays.forecast('blocked',1).total }}", "reply_markup" : { "inline_keyboard": [ [ { "text": "✚ Пополнить баланс", "url": "https://yoomoney.ru/quickpay/shop-widget?writer=seller&targets=%D0%9E%D0%BF%D0%BB%D0%B0%D1%82%D0%B0%20%D0%BF%D0%BE%20%D0%B4%D0%BE%D0%B3%D0%BE%D0%B2%D0%BE%D1%80%D1%83%20{{ user.id }}&targets-hint=&default-sum={{ user.pays.forecast('blocked',1).total }}&label={{ user.id }}&button-text=12&payment-type-choice=on&hint=&successURL=&quickpay=shop&account={{ config.pay_systems.yoomoney.account }}" } ], [ { "text": "☰ История платежей", "callback_data": "/pays" } ], [ { "text": "⇦ Назад", "callback_data": "/menu" } ] ] } } } <% CASE '/list' %> { "deleteMessage": { "message_id": {{ message.message_id }} } }, { "sendMessage": { "text": "🔑 Список VPN ключей", "reply_markup" : { "inline_keyboard": [ {{ FOR item IN ref( user.services.list_for_api( 'category', '%' ) ) }} {{ SWITCH item.status }} {{ CASE 'ACTIVE' }} {{ icon = '✅' }} {{ status = 'Работает' }} {{ CASE 'BLOCK' }} {{ icon = '❌' }} {{ status = 'Заблокирована' }} {{ CASE 'NOT PAID' }} {{ icon = '💰' }} {{ status = 'Ожидает оплаты' }} {{ CASE }} {{ icon = '⏳' }} {{ status = 'Обработка' }} {{ END }} [ { "text": "{{ item.name }} - {{ icon }} {{ status }}", "callback_data": "/service {{ item.user_service_id }}" } ], {{ END }} [ { "text": "✚ Купить новый ключ", "callback_data": "/pricelist" } ], [ { "text": "⇦ Назад", "callback_data": "/menu" } ] ] } } } <% CASE '/service' %> {{ us = user.services.list_for_api( 'usi', args.0 ) }} { "deleteMessage": { "message_id": {{ message.message_id }} } }, { "sendMessage": { {{ SWITCH us.status }} {{ CASE 'ACTIVE' }} {{ icon = '✅' }} {{ status = 'Работает' }} {{ CASE 'BLOCK' }} {{ icon = '❌' }} {{ status = 'Заблокирована' }} {{ CASE 'NOT PAID' }} {{ icon = '💰' }} {{ status = 'Ожидает оплаты' }} {{ CASE }} {{ icon = '⏳' }} {{ status = 'Обработка' }} {{ END }} "text": "Услуга: {{ us.name }}{{ IF us.expire }}\n\nОплачена до: {{ us.expire }}{{ END }}\n\nСтатус: {{ icon}} {{ status }}", "reply_markup" : { "inline_keyboard": [ {{ IF us.status == 'ACTIVE' }} {{ subscription_url = storage.read('name','vpn_mrzb_' _ args.0 ).subscription_url }} {{ IF us.category.grep('^vpn-mz-').first }} {{ IF subscription_url.grep('^https:').first }} [ { "text": "Показать данные для подключения", "web_app": { "url": "{{ subscription_url }}" } } ], [ { "text": "Показать ссылку подписки", "callback_data": "/show_mz_keys {{ args.0 }}" } ], {{ ELSE }} [ { "text": "ОШИБКА: настройте SSL для Marzban", "callback_data": "/menu" } ], {{ END }} {{ ELSE }} [ { "text": "🗝 Скачать ключ", "callback_data": "/download_qr {{ args.0 }}" }, { "text": "👀 Показать QR код", "callback_data": "/show_qr {{ args.0 }}" } ], {{ END }} {{ END }} {{ IF us.status == 'NOT PAID' || us.status == 'BLOCK' }} [ { "text": "💰 Оплатить", "callback_data": "/balance" } ], {{ END }} {{ IF us.status != 'PROGRESS' }} [ { "text": "❌ Удалить ключ", "callback_data": "/delete {{ args.0 }}" } ], {{ END }} [ { "text": "⇦ Назад", "callback_data": "/list" } ] ] } } } <% CASE '/pricelist' %> { "deleteMessage": { "message_id": {{ message.message_id }} } }, { "sendMessage": { "text": "☷ Выберите услугу для заказа", "reply_markup" : { "inline_keyboard": [ {{ FOR item IN ref(service.api_price_list).nsort('service_id') }} [ { "text": "{{ item.name }} - {{ item.cost }} руб/мес.", "callback_data": "/serviceorder {{ item.service_id }}" } ], {{ END }} [ { "text": "⇦ Назад", "callback_data": "/menu" } ] ] } } } <% CASE '/serviceorder' %> { "deleteMessage": { "message_id": {{ message.message_id }} } }, { "shmServiceOrder": { "service_id": "{{ args.0 }}", "callback_data": "/list", "cb_not_enough_money": "/balance", "error": "ОШИБКА" } } <% CASE '/download_qr' %> { "uploadDocumentFromStorage": { "name": "vpn{{ args.0 }}", "filename": "vpn{{ args.0 }}.conf" } } <% CASE '/show_qr' %> { "uploadPhotoFromStorage": { "name": "vpn{{ args.0 }}", "format": "qr_code_png" } } <% CASE '/delete' %> { "deleteMessage": { "message_id": {{ message.message_id }} } }, { "sendMessage": { "text": "🤔 Подтвердите удаление услуги. Услугу нельзя будет восстановить!", "reply_markup" : { "inline_keyboard": [ [ { "text": "🧨 ДА, УДАЛИТЬ! 🔥", "callback_data": "/delete_confirmed {{ args.0 }}" } ], [ { "text": "⇦ Назад", "callback_data": "/list" } ] ] } } } <% CASE '/delete_confirmed' %> { "deleteMessage": { "message_id": {{ message.message_id }} } }, { "shmServiceDelete": { "usi": "{{ args.0 }}", "callback_data": "/list", "error": "ОШИБКА" } } <% CASE '/help' %> { "deleteMessage": { "message_id": {{ message.message_id }} } }, { "sendPhoto": { "photo": "https://media.tenor.com/5KHjsG1Aw1YAAAAi/photos-google-photos.gif", "protect_content": "true", "parse_mode":"HTML", "caption": "1️⃣ Скачайте и установите приложение WireGuard к себе на устройство. Скачать для iPhone, Android, Mac.\n\n2️⃣ В разделе \"Ключи\" нажмите \"Новый ключ\" и выберите нужный вам.\n\n3️⃣ После оплаты скачайте файл настроек для приложения WireGuard. Находясь в меню \"Ключи\" выберите нужный ключ, кликнув по нему. Далее скачайте файл ключа и добавьте его в приложение WireGuard.", "reply_markup" : { "inline_keyboard": [ [ { "text": "Чат поддержки", "url": "https://t.me/shm_billing" } ], [ { "text": "⇦ Назад", "callback_data": "/menu" } ] ] } } } <% CASE '/pays' %> { "sendMessage": { "text": "Платежи", "reply_markup" : { "inline_keyboard": [ {{ FOR item IN ref(user.pays.list_for_api('limit', 5)) }} [ { "text": "Дата: {{ item.date }}, Сумма: {{ item.money }} руб.", "callback_data": "/menu" } ], {{ END }} [ { "text": "⇦ Назад", "callback_data": "/menu" } ] ] } } } <% CASE '/referrals' %> { "sendMessage": { "text": "🤝 Партнёрская программа\n\nПриводи друзей и зарабатывай {{ config.billing.partner.income_percent }}% с их пополнений\n\n⬇️️ Твоя реферальная ссылка:\n└ https://t.me/NAME_bot?start={{ user.id }}\n\n🏅 Статистика:\n├ Приведено друзей: {{ user.referrals_count }}\n└ Доступно к выводу: {{ user.get_bonus }} ₽", "reply_markup": { "inline_keyboard": [ [ { "text": "Назад...", "callback_data": "/menu" } ] ] } } } <% CASE '/show_mz_keys' %> {{ subscription_url = storage.read('name','vpn_mrzb_' _ args.0 ).subscription_url }} { "printQrCode": { "data": "{{ subscription_url }}", "parameters": { "parse_mode": "HTML", "caption": "Subscription URL:\n{{ subscription_url }}" } } }, {{ ss = storage.read('name','vpn_mrzb_' _ args.0 ).links.grep('^ss:').first }} { "printQrCode": { "data": "{{ ss }}", "parameters": { "parse_mode": "HTML", "caption": "ShadowSocks:\n{{ ss }}" } } }, {{ vless_tcp = storage.read('name','vpn_mrzb_' _ args.0 ).links.grep('^vless:').first }} { "printQrCode": { "data": "{{ vless_tcp }}", "parameters": { "parse_mode": "HTML", "caption": "VLESS TCP:\n{{ vless_tcp }}" } } } <% CASE %> { "sendMessage": { "text": "ОШИБКА! Бот не знает введенную вами команду. Если у Вас есть вопросы, пишите в чат поддержки" } } <% END %>