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 os
|
||||
import sys
|
||||
import configparser
|
||||
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
|
||||
from telegram.ext import Updater, MessageHandler, CommandHandler, filters, CallbackQueryHandler, CallbackContext
|
||||
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:
|
||||
log.error("Env var TG_TOKEN or TG_ADMIN aren't set.")
|
||||
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):
|
||||
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:])
|
||||
try:
|
||||
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:
|
||||
update.message.reply_text("Wrong client name.")
|
||||
|
||||
@ -70,7 +76,8 @@ def add_peer(update, context):
|
||||
peer_name = "_".join(update.message.text.split()[1:])
|
||||
log.info("Creating peer %s", 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):
|
||||
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
|
||||
is_update = args.update
|
||||
wpm_config = configparser.ConfigParser()
|
||||
client_dir = f"client_{args.config}"
|
||||
client_dir = f"/etc/wireguard/clients_{args.config}"
|
||||
if not path.isdir(client_dir):
|
||||
log.info("Creating clients directory %s", client_dir)
|
||||
mkdir(client_dir)
|
||||
if wpm_config.read('wpm.conf'):
|
||||
ips = wpm_config['Interface'].get('allowed_ips', '0.0.0.0/0')
|
||||
@ -92,7 +93,7 @@ class Peer:
|
||||
|
||||
def gen_config(self, helper):
|
||||
"""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.initialize_file()
|
||||
_wg.add_attr(None, 'Address', self.allowed_ips)
|
||||
@ -105,7 +106,7 @@ class Peer:
|
||||
_wg.write_file()
|
||||
system(f'qrencode -r {filename}.conf -o {filename}-qr.png')
|
||||
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:
|
||||
|
Reference in New Issue
Block a user