diff --git a/README.md b/README.md index 9aae879d..4fbeca2a 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ - 🎯 **Готовое решение** - разверни за 5 минут, начни продавать сегодня - 💰 **Многоканальные платежи** - Telegram Stars + Tribute + планы на ЮKassa - 🔄 **Автоматизация 99%** - от регистрации до продления подписок -- 📊 **Детальная аналитика** - понимай свой бизнес через цифры - +- 📊 **Детальная аналитика** + ### 🎛️ **Гибкость конфигурации** - 🌍 **Выбор стран** - пользователи сами выбирают нужные локации - 📱 **Управление устройствами** - от 1 до неограниченного количества @@ -44,7 +44,7 @@ ## 🚀 Быстрый старт -### 🐳 Одна Docker команда - и ты уже бизнессмен +### 🐳 Один Docker команда - и ты в бизнесе ```bash # 1. Скачай репозиторий @@ -65,7 +65,7 @@ docker compose up -d docker compose logs -f bot ``` -### ⚙️ Минимальная настройка +### ⚙️ Минимальная настройка (2 минуты) | Настройка | Где взять | Пример | |-----------|-----------|---------| @@ -183,7 +183,7 @@ GRAFANA_PASSWORD=admin123 - 📱 Количество устройств (1-10) 💰 **Удобные платежи** -- ⭐ Telegram Stars +- ⭐ Telegram Stars - 💳 Tribute (автопополнение) - 🎁 Реферальные бонусы @@ -195,7 +195,7 @@ GRAFANA_PASSWORD=admin123 🎁 **Бонусная система** - 🎫 Промокоды на деньги/дни -- 👥 Реферальная программа (Подарки + % с покупок) +- 👥 Реферальная программа - 🆓 Бесплатный триал - 🔔 Ежедневные уведомления @@ -258,7 +258,7 @@ bedolaga_bot/ ├── 🎯 main.py # Точка входа ├── 📦 requirements.txt # Зависимости ├── ⚙️ .env.example # Конфиг -├── 💾 app-config.json # Приложения/текста/ссылки для гайд по подключению в боте +├── ⚙️ app-config.json # Информация для гайда в боте по подключению(Приложения, текста) │ ├── 📱 app/ │ ├── 🤖 bot.py # Инициализация бота @@ -681,10 +681,127 @@ docker stats bedolaga_bot bedolaga_postgres bedolaga_redis --- -### 🔄 **Синхронизация с Remnawave** +## 💎 Продвинутые возможности -- **👥 Импорт существующих пользователей** -- **📊 Мониторинг статуса нод** - контроль состояния инфраструктуры +### 🎯 **Реальные примеры кода** + +**🔄 Автопродление подписок:** +```python +# Из monitoring_service.py - реальная логика автопродления +if user.balance_kopeks >= renewal_cost: + success = await subtract_user_balance( + db, user, renewal_cost, + "Автопродление подписки" + ) + + if success: + await extend_subscription(db, subscription, 30) + await subscription_service.update_remnawave_user(db, subscription) + + if self.bot: + await self._send_autopay_success_notification(user, renewal_cost, 30) + + logger.info(f"💳 Автопродление подписки пользователя {user.telegram_id} успешно") +``` + +**💰 Реферальные бонусы:** +```python +# Из referral_service.py - начисление комиссии +commission_amount = int(purchase_amount_kopeks * settings.REFERRAL_COMMISSION_PERCENT / 100) + +if commission_amount > 0: + await add_user_balance( + db, referrer, commission_amount, + f"Комиссия {settings.REFERRAL_COMMISSION_PERCENT}% с покупки {user.full_name}" + ) + + await create_referral_earning( + db=db, + user_id=referrer.id, + referral_id=user_id, + amount_kopeks=commission_amount, + reason="referral_commission" + ) +``` + +**📊 Расчет стоимости подписки:** +```python +# Из subscription_service.py - умный расчет цен +async def calculate_subscription_price( + self, + period_days: int, + traffic_gb: int, + server_squad_ids: List[int], + devices: int, + db: AsyncSession +) -> Tuple[int, List[int]]: + + base_price = PERIOD_PRICES.get(period_days, 0) + traffic_price = TRAFFIC_PRICES.get(traffic_gb, 0) + + total_servers_price = 0 + for server_id in server_squad_ids: + server = await get_server_squad_by_id(db, server_id) + if server and server.is_available and not server.is_full: + total_servers_price += server.price_kopeks + + devices_price = max(0, devices - 1) * settings.PRICE_PER_DEVICE + total_price = base_price + traffic_price + total_servers_price + devices_price + + logger.info(f"💰 Расчет стоимости новой подписки: {total_price/100}₽") + return total_price, server_prices +``` + +**🔔 Система уведомлений:** +```python +# Из monitoring_service.py - умные уведомления +async def _send_trial_ending_notification(self, user: User, subscription: Subscription): + message = f""" +🎁 Тестовая подписка скоро закончится! + +Ваша тестовая подписка истекает через 2 часа. + +💎 Не хотите остаться без VPN? +Переходите на полную подписку со скидкой! + +🔥 Специальное предложение: +• 30 дней всего за {settings.format_price(settings.PRICE_30_DAYS)} +• Безлимитный трафик +• Все серверы доступны +• Поддержка до 3 устройств +""" + + keyboard = InlineKeyboardMarkup(inline_keyboard=[ + [InlineKeyboardButton(text="💎 Купить подписку", callback_data="buy_subscription")], + [InlineKeyboardButton(text="💰 Пополнить баланс", callback_data="balance_top_up")] + ]) + + await self.bot.send_message(user.telegram_id, message, parse_mode="HTML", reply_markup=keyboard) +``` + +**💳 Платежная система:** +```python +# Из payment_service.py - Telegram Stars +async def create_stars_invoice(self, amount_kopeks: int, description: str) -> str: + try: + stars_amount = max(1, amount_kopeks // 100) + + invoice_link = await self.bot.create_invoice_link( + title="Пополнение баланса VPN", + description=description, + payload=f"balance_topup_{amount_kopeks}", + provider_token="", + currency="XTR", + prices=[LabeledPrice(label="Пополнение", amount=stars_amount)] + ) + + logger.info(f"Создан Stars invoice на {stars_amount} звезд") + return invoice_link + + except Exception as e: + logger.error(f"Ошибка создания Stars invoice: {e}") + raise +``` ### 🔧 **Первичная настройка в боте** @@ -770,20 +887,20 @@ docker stats bedolaga_bot bedolaga_postgres bedolaga_redis 1. **🚀 Старт** → Найди бота и нажми `/start` 2. **📋 Правила** → Прими правила сервиса 3. **💰 Баланс** → "💰 Баланс" → пополни через Stars/Tribute -4. **🛒 Подписка** → "🛒 Купить подписку" → выбор и нвчтройка тарифа → оплата -5. **📱 Управление** → "📋 Мои подписки" → получение ссылки + Редактирование подписки(сервера, устройства, трафик) -6. **👥 Рефералы** → "👥 Рефералы" → поделись ссылкой через удобную пересылку втнутри бота +4. **🛒 Подписка** → "🛒 Купить подписку" → выбор тарифа → оплата +5. **📱 Управление** → "📋 Мои подписки" → конфигурация → получение ссылки +6. **👥 Рефералы** → "👥 Рефералы" → поделись ссылкой ### ⚙️ **Для администраторов** Доступ через **"⚙️ Админ панель"**: - **📦 Подписки** → настройка серверов, цен, синхронизация -- **👥 Пользователи** → поиск, редактирование, блокировка, удаление +- **👥 Пользователи** → поиск, редактирование, блокировка - **🎁 Промокоды** → создание бонусов, статистика - **📨 Рассылки** → уведомления по сегментам - **🖥 Remnawave** → мониторинг панели, синхронизация -- **📊 Статистика** → детальная аналитика +- **📊 Статистика** → детальная аналитика бизнеса --- @@ -825,10 +942,11 @@ docker stats bedolaga_bot bedolaga_postgres bedolaga_redis ### 💡 **Идеи для будущих версий** - 🎨 Кастомизируемые темы интерфейса +- 🤖 AI-помощник для поддержки - 📈 Продвинутая аналитика с ML -- 🔔 Push-уведомления об неиспользуемом трафике -- 🌐 Вебпанель -- 💰 Доп способы оплаты +- 🔔 Push-уведомления +- 💼 Корпоративные тарифы +- 🌐 Мультипанельная поддержка --- @@ -1043,11 +1161,7 @@ docker stats --no-stream ### 🏅 **Достижения проекта** -- 🌟 **500+ Stars** на GitHub -- 👥 **100+ Forks** от разработчиков -- 💼 **50+ реальных внедрений** в VPN бизнесе -- 🌍 **10+ стран** использования -- 💰 **$100,000+** обработано платежей +- 🌟 **40+ Stars** на GitHub --- @@ -1087,15 +1201,12 @@ docker stats --no-stream Огромная благодарность всем, кто делает проект лучше: - 🐛 **Тестировщикам** - находят баги до пользователей -- 📝 **Документаторам** - улучшают README и wiki - 💻 **Разработчикам** - присылают Pull Request'ы - 💡 **Идейным вдохновителям** - предлагают новые функции ### 🌟 **Особая благодарность** - **Remnawave Team** - за отличную панель и API -- **Telegram Team** - за мощную Bot API -- **Open Source Community** - за библиотеки и инструменты --- @@ -1127,12 +1238,9 @@ copies or substantial portions of the Software. **Bedolaga Bot 2.0.0** - это не просто бот, это **готовое решение для VPN бизнеса**. -### 🎯 **Почему выбирают нас:** - - ⚡ **5 минут до запуска** - быстрее некуда - 💰 **Автоматизация 99%** - деньги идут сами - 🔧 **Легкая настройка** - справится даже новичок -- 📈 **Доказанная масштабируемость** - до 100k+ пользователей - 🆓 **Open Source** - код открыт, развитие прозрачно ### 💪 **Начни свой VPN бизнес уже сегодня!** @@ -1150,9 +1258,8 @@ docker compose up -d ### 💝 **Создано с любовью для Remnawave сообщества** -*Превращаем сложное в простое, делаем VPN-бизнес доступным каждому* 🚀 -**Автор:** [@fringg](https://t.me/fringg) - соло-разработчик, который делает крутые штуки +**Автор:** [@fringg](https://t.me/fringg) - соло-разработчик *Если проект помог тебе - поставь ⭐, это очень мотивирует!*