% 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 %>