49 lines
1.5 KiB
Python
49 lines
1.5 KiB
Python
from flask import Flask, render_template, request, jsonify
|
|
import requests
|
|
import threading
|
|
|
|
app = Flask(__name__)
|
|
|
|
proxy_data = {}
|
|
deleted_servers = set()
|
|
|
|
@app.route('/')
|
|
def index():
|
|
filtered_data = {k: v for k, v in proxy_data.items() if k not in deleted_servers}
|
|
return render_template('index.html', proxies=filtered_data)
|
|
|
|
@app.route('/update', methods=['POST'])
|
|
def update():
|
|
data = request.json
|
|
if not data or "server" not in data or "entries" not in data:
|
|
return jsonify({"error": "Invalid data"}), 400
|
|
|
|
server_name = data["server"]
|
|
proxy_data[server_name] = data["entries"]
|
|
|
|
if server_name in deleted_servers:
|
|
deleted_servers.remove(server_name)
|
|
|
|
return jsonify({"message": "Updated successfully"}), 200
|
|
|
|
@app.route('/delete', methods=['POST'])
|
|
def delete_entry():
|
|
data = request.json
|
|
server_name = data.get("server")
|
|
if not server_name or server_name not in proxy_data:
|
|
return jsonify({"error": "Server not found"}), 400
|
|
|
|
deleted_servers.add(server_name)
|
|
return jsonify({"message": f"Server {server_name} deleted"}), 200
|
|
|
|
@app.route('/status/<domain>')
|
|
def check_status(domain):
|
|
"""Check if a subdomain is reachable"""
|
|
try:
|
|
response = requests.get(f"https://{domain}", timeout=3)
|
|
return jsonify({"status": response.status_code})
|
|
except requests.exceptions.RequestException:
|
|
return jsonify({"status": "offline"})
|
|
|
|
if __name__ == '__main__':
|
|
app.run(host='0.0.0.0', port=5000)
|