Compare commits

...

2 Commits

Author SHA1 Message Date
07d32958cb Bump version: 1.3.1 → 1.3.2
All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 1m35s
2025-07-19 09:32:53 +01:00
984b3a62f9 dns on config page 2025-07-19 09:32:45 +01:00
5 changed files with 64 additions and 51 deletions

View File

@ -1,5 +1,5 @@
[tool.bumpversion] [tool.bumpversion]
current_version = "1.3.1" current_version = "1.3.2"
commit = true commit = true
tag = true tag = true
tag_name = "{new_version}" tag_name = "{new_version}"

View File

@ -1 +1 @@
1.3.1 1.3.2

View File

@ -2,8 +2,8 @@ import os
from flask import Flask, jsonify from flask import Flask, jsonify
from dotenv import load_dotenv from dotenv import load_dotenv
from ktvmanager.config import DevelopmentConfig, ProductionConfig from ktvmanager.config import DevelopmentConfig, ProductionConfig
from routes.api import api_blueprint from ktvmanager.routes.api import api_blueprint
from routes.dns import dns_bp from ktvmanager.routes.dns import dns_bp
from ktvmanager.lib.database import initialize_db_pool from ktvmanager.lib.database import initialize_db_pool
from ktvmanager.account_checker import send_expiry_notifications from ktvmanager.account_checker import send_expiry_notifications
from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.schedulers.background import BackgroundScheduler

View File

@ -1,47 +0,0 @@
from flask import Blueprint, render_template, request, redirect, url_for, flash
import os
dns_bp = Blueprint('dns', __name__)
DNS_FILE = os.path.join(os.path.dirname(__file__), '..', 'lib', 'DNS_list.txt')
def read_dns_list():
if not os.path.exists(DNS_FILE):
return []
with open(DNS_FILE, 'r') as f:
return [line.strip() for line in f.readlines()]
def write_dns_list(dns_list):
with open(DNS_FILE, 'w') as f:
for item in dns_list:
f.write(f"{item}\n")
@dns_bp.route('/add_dns', methods=['POST'])
def add_dns():
dns_entry = request.form.get('dns_entry')
if dns_entry:
dns_list = read_dns_list()
if dns_entry not in dns_list:
dns_list.append(dns_entry)
write_dns_list(dns_list)
flash('DNS entry added successfully.', 'success')
else:
flash('DNS entry already exists.', 'info')
else:
flash('DNS entry cannot be empty.', 'danger')
return redirect(url_for('config_dashboard'))
@dns_bp.route('/remove_dns', methods=['POST'])
def remove_dns():
dns_entry = request.form.get('dns_entry')
if dns_entry:
dns_list = read_dns_list()
if dns_entry in dns_list:
dns_list.remove(dns_entry)
write_dns_list(dns_list)
flash('DNS entry removed successfully.', 'success')
else:
flash('DNS entry not found.', 'info')
else:
flash('DNS entry cannot be empty.', 'danger')
return redirect(url_for('config_dashboard'))

60
routes/dns.py Normal file
View File

@ -0,0 +1,60 @@
from flask import Blueprint, request, jsonify
import os
dns_bp = Blueprint('dns', __name__)
DNS_FILE = os.path.join(os.path.dirname(__file__), '..', 'ktvmanager', 'lib', 'DNS_list.txt')
def read_dns_list():
if not os.path.exists(DNS_FILE):
return []
with open(DNS_FILE, 'r') as f:
return [line.strip() for line in f.readlines() if line.strip()]
def write_dns_list(dns_list):
with open(DNS_FILE, 'w') as f:
for item in dns_list:
f.write(f"{item}\n")
@dns_bp.route('/dns', methods=['GET'])
def get_dns_list():
"""Gets the list of DNS entries."""
return jsonify(read_dns_list())
@dns_bp.route('/dns', methods=['POST'])
def add_dns():
"""Adds a new DNS entry."""
data = request.get_json()
if not data or 'dns_entry' not in data:
return jsonify({'error': 'Missing dns_entry in request body'}), 400
dns_entry = data.get('dns_entry')
if not dns_entry:
return jsonify({'error': 'DNS entry cannot be empty.'}), 400
dns_list = read_dns_list()
if dns_entry in dns_list:
return jsonify({'message': 'DNS entry already exists.'}), 200
dns_list.append(dns_entry)
write_dns_list(dns_list)
return jsonify({'message': 'DNS entry added successfully.'}), 201
@dns_bp.route('/dns', methods=['DELETE'])
def remove_dns():
"""Removes a DNS entry."""
data = request.get_json()
if not data or 'dns_entry' not in data:
return jsonify({'error': 'Missing dns_entry in request body'}), 400
dns_entry = data.get('dns_entry')
if not dns_entry:
return jsonify({'error': 'DNS entry cannot be empty.'}), 400
dns_list = read_dns_list()
if dns_entry not in dns_list:
return jsonify({'error': 'DNS entry not found.'}), 404
dns_list.remove(dns_entry)
write_dns_list(dns_list)
return jsonify({'message': 'DNS entry removed successfully.'}), 200