mirror of
https://github.com/house-of-vanity/Wireguard-Peer-Manager.git
synced 2025-07-07 01:34:08 +00:00
fix
This commit is contained in:
11
bot.py
11
bot.py
@ -5,6 +5,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import configparser
|
||||||
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
|
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
|
||||||
from telegram.ext import Updater, MessageHandler, CommandHandler, filters, CallbackQueryHandler, CallbackContext
|
from telegram.ext import Updater, MessageHandler, CommandHandler, filters, CallbackQueryHandler, CallbackContext
|
||||||
from gen import add_peer as wg_add_peer
|
from gen import add_peer as wg_add_peer
|
||||||
@ -22,6 +23,11 @@ admin = os.environ.get('TG_ADMIN')
|
|||||||
if not token or not admin:
|
if not token or not admin:
|
||||||
log.error("Env var TG_TOKEN or TG_ADMIN aren't set.")
|
log.error("Env var TG_TOKEN or TG_ADMIN aren't set.")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
wpm_config = configparser.ConfigParser()
|
||||||
|
if wpm_config.read('wpm.conf'):
|
||||||
|
config = wpm_config['Interface'].get('config', 'wg0')
|
||||||
|
else:
|
||||||
|
config = "wg0"
|
||||||
|
|
||||||
def _help(update, context):
|
def _help(update, context):
|
||||||
update.message.reply_text('<b>Help:</b>\n <b>*</b> /add <i>peer name</i>\n <b>*</b> /del <i>peer name</i>\n <b>*</b> /list [<i>peer name</i>]', parse_mode='HTML', disable_web_page_preview=True)
|
update.message.reply_text('<b>Help:</b>\n <b>*</b> /add <i>peer name</i>\n <b>*</b> /del <i>peer name</i>\n <b>*</b> /list [<i>peer name</i>]', parse_mode='HTML', disable_web_page_preview=True)
|
||||||
@ -48,7 +54,7 @@ def list_peers(update, context):
|
|||||||
peer_name = "_".join(update.message.text.split()[1:])
|
peer_name = "_".join(update.message.text.split()[1:])
|
||||||
try:
|
try:
|
||||||
update.message.reply_photo(
|
update.message.reply_photo(
|
||||||
open(f'/etc/wireguard/clients/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'/etc/wireguard/clients/{peer_name}.conf', 'r').read())
|
open(f'/etc/wireguard/clients_{config}/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'/etc/wireguard/clients_{config}/{peer_name}.conf', 'r').read())
|
||||||
except:
|
except:
|
||||||
update.message.reply_text("Wrong client name.")
|
update.message.reply_text("Wrong client name.")
|
||||||
|
|
||||||
@ -70,7 +76,8 @@ def add_peer(update, context):
|
|||||||
peer_name = "_".join(update.message.text.split()[1:])
|
peer_name = "_".join(update.message.text.split()[1:])
|
||||||
log.info("Creating peer %s", peer_name)
|
log.info("Creating peer %s", peer_name)
|
||||||
wg_add_peer(peer_name)
|
wg_add_peer(peer_name)
|
||||||
update.message.reply_photo(open(f'/etc/wireguard/clients/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'/etc/wireguard/clients/{peer_name}.conf', 'r').read())
|
update.message.reply_photo(open(f'/etc/wireguard/clients_{config}/{peer_name}-qr.png', 'rb'), filename=f'{peer_name} QR.png', quote=True, caption=open(f'/etc/wireguard/clients_{config}/{peer_name}.conf', 'r').read())
|
||||||
|
update.message.reply_document(open(f'/etc/wireguard/clients_{config}/{peer_name}.conf', 'rb'))
|
||||||
|
|
||||||
def error(update, context):
|
def error(update, context):
|
||||||
update.message.reply_text("Something went wrong...")
|
update.message.reply_text("Something went wrong...")
|
||||||
|
7
gen.py
7
gen.py
@ -36,8 +36,9 @@ peer_name = args.peer
|
|||||||
del_name = args.delete
|
del_name = args.delete
|
||||||
is_update = args.update
|
is_update = args.update
|
||||||
wpm_config = configparser.ConfigParser()
|
wpm_config = configparser.ConfigParser()
|
||||||
client_dir = f"client_{args.config}"
|
client_dir = f"/etc/wireguard/clients_{args.config}"
|
||||||
if not path.isdir(client_dir):
|
if not path.isdir(client_dir):
|
||||||
|
log.info("Creating clients directory %s", client_dir)
|
||||||
mkdir(client_dir)
|
mkdir(client_dir)
|
||||||
if wpm_config.read('wpm.conf'):
|
if wpm_config.read('wpm.conf'):
|
||||||
ips = wpm_config['Interface'].get('allowed_ips', '0.0.0.0/0')
|
ips = wpm_config['Interface'].get('allowed_ips', '0.0.0.0/0')
|
||||||
@ -92,7 +93,7 @@ class Peer:
|
|||||||
|
|
||||||
def gen_config(self, helper):
|
def gen_config(self, helper):
|
||||||
"""Generate peer config"""
|
"""Generate peer config"""
|
||||||
filename = f"/etc/wireguard/{client_dir}/{self.comment.replace(' ', '_')}"
|
filename = f"{client_dir}/{self.comment.replace(' ', '_')}"
|
||||||
_wg = wgconfig.WGConfig(f"{filename}.conf")
|
_wg = wgconfig.WGConfig(f"{filename}.conf")
|
||||||
_wg.initialize_file()
|
_wg.initialize_file()
|
||||||
_wg.add_attr(None, 'Address', self.allowed_ips)
|
_wg.add_attr(None, 'Address', self.allowed_ips)
|
||||||
@ -105,7 +106,7 @@ class Peer:
|
|||||||
_wg.write_file()
|
_wg.write_file()
|
||||||
system(f'qrencode -r {filename}.conf -o {filename}-qr.png')
|
system(f'qrencode -r {filename}.conf -o {filename}-qr.png')
|
||||||
system(f'qrencode -t ansiutf8 -r {filename}.conf -o {filename}-qr.txt')
|
system(f'qrencode -t ansiutf8 -r {filename}.conf -o {filename}-qr.txt')
|
||||||
log.info(f"Updated config for {self.comment}")
|
log.info(f"Updated config for {filename}")
|
||||||
|
|
||||||
|
|
||||||
class Helper:
|
class Helper:
|
||||||
|
Reference in New Issue
Block a user