telegram wireguard vpn bot

Telegram bot with an admin panel for Wireguard management

22
5
Python

GitHub top language
GitHub Downloads (all assets, all releases)
GitHub commit activity
GitHub Repo stars


Recommended Ubuntu (Debian) version - from 14.04 to 22.04

on versions higher than 23, installation may not complete correctly


This is fork of svishnevskii/telegram_wireguard repositry


Quick installation:

sudo wget https://github.com/QueenDekim/telegram-wireguard-vpn-bot/releases/download/release/Wireguard-installer-with-Adminpanel.sh && chmod 774 Wireguard-installer-with-Adminpanel.sh && ./Wireguard-installer-with-Adminpanel.sh
  • after configuring the wg, a choice will appear: Hotite li ustanovit' srazu Telegram bota(1 - Da, 0 - Net): We agree (press 1)
  • Then we specify the Telegram API of the bot, which we received from BotFather when creating the bot, YCassa API, which we also received from BotFather when setting up the Payment of the bot and Telegram-id Admin - your telegram account ID

Сhecking the operation of the service

sudo systemctl status befutureAdmin

Start

sudo systemctl start befutureAdmin

Stop

sudo systemctl stop befutureAdmin

Restart

sudo systemctl restart befutureAdmin

In file config.json added discounts

{   
    "...":"...",
    "perc_1": 1,
    "perc_3": 3,
    "perc_6": 6,
    "...":"...",
}

We specify the number of months for which the user will actually pay (interest is calculated automatically)

For example:
config.json

{
    "admin_tg_id": "",
    "one_month_cost": 500,
    "trial_period": 2,
    "perc_1": 1,
    "perc_3": 2.85,
    "perc_6": 5.4,
    "UTC_time": 3,
    "tg_token": "",
    "tg_shop_token": ""
}

That is, when paying for 3 months, the user will actually pay for 2.85 months (5% discount)
And when paying for 6 months, the user will pay for 5.4 months (10%)


In telegram bot:

example


Аn admin function has been added that sends an update notification to all users

in main.py file:

if e.demojize(m.text) == "Уведомление об обновлении":
    db = sqlite3.connect(DBCONNECT)
    db.row_factory = sqlite3.Row
    c = db.execute(f"SELECT * FROM userss where username <> '@None'")
    log = c.fetchall()
    c.close()
    db.close()
    BotChecking = TeleBot(BOTAPIKEY)
    countSended = 0
    countBlocked = 0
    for i in log:
        try: 
            countSended += 1

            Butt_main = types.ReplyKeyboardMarkup(resize_keyboard=True)
            Butt_main.add(types.KeyboardButton(e.emojize(f"Продлить :money_bag:")),
                        types.KeyboardButton(e.emojize(f"Как подключить :gear:")))
            BotChecking.send_message(i['tgid'],
                                    texts_for_bot["alert_to_update"],
                                    reply_markup=Butt_main, parse_mode="HTML")
        except:
            countSended -= 1
            countBlocked += 1
        
    BotChecking.send_message(CONFIG['admin_tg_id'],
                                f"Сообщение отправлено {countSended} пользователям. {countBlocked} пользователей заблокировало бота", parse_mode="HTML")

in buttons.py file:

Butt_admin.add(types.KeyboardButton(e.emojize(f"Уведомление об обновлении"))) 

in texts.json file:

{
  "alert_to_update":"Выполнено обновление бота, проверьте, пожалуйста, функциональность бота.\nЕсли после этого сообщения у вас пропал таймер действия подписки, напишите /start\n\nО найденых ошибках просьба сообщить @admin",
}

The text of some messages is specified in texts.json

{
  "hello_message": "<b>Почему стоит выбрать Your VPN?</b>\n\n1. Мы шифруем весь трафик клиентов \uD83D\uDD10\n2. Мы не сохраняем ваши конфиденциальные данные, в отличие от бесплатных VPN-сервисов \n3. Отличная скорость и нет ограничений по трафику \uD83C\uDFCE",
  "trial_message": "Чтобы вы смогли оценить наш VPN, даем вам бесплатный доступ на 1 день!\n\nКак пользоваться VPN и другие ответы, находятся в разделе \"Как подключить :gear:\"",
  "how_to_connect_info": "1. Скачайте файл настроек\n\n2. Установите VPN: <a href='https://apps.apple.com/us/app/wireguard/id1441195209'>iPhone</a>, <a href='https://play.google.com/store/apps/details?id=com.wireguard.android'>Android</a>, <a href='https://download.wireguard.com/windows-client/wireguard-installer.exe'>Windows</a> или <a href='https://itunes.apple.com/us/app/wireguard/id1451685025?ls=1&mt=12'>Mac</a> \n\n3. Откройте VPN и нажмите добавить туннель через файл настроек",
  "success_pay_message": "Оплата прошла успешно!\nПодписка продлена, спасибо что выбираете нас.",
  "ended_sub_message": "Ваша подписка закончилась!\n\nЕсли хотите продолжить пользоваться нашими услугами, пожалуйста продлите подписку.",
  "alert_to_renew_sub": "До конца действия подписки осталось меньше дня, пора продлить ее!",
  "alert_to_extend_sub": " \uD83C\uDF81 Your VPN снова предлагает тебе бесплатный тестовый период на 7 дней\n\n✅ Уверены ты оценишь наш VPN \n\nДанные для входа были обновлены, скачайте новый файл авторизации через раздел \"Как подключить :gear:\"",
  "alert_to_update":"Выполнено обновление бота, проверьте, пожалуйста, функциональность бота.\nЕсли после этого сообщения у вас пропал таймер действия подписки, напишите /start\n\nО найденых ошибках просьба сообщить @admin"
  "add_trial_days": 7
}

links description
Static Badge My Discord tag
Static Badge My telegram
Static Badge My telegram bot for example (fully operational)