ui more
This commit is contained in:
72
app.py
72
app.py
@@ -1,39 +1,22 @@
|
|||||||
import os
|
import os
|
||||||
import requests
|
import requests
|
||||||
from flask import Flask, Response, render_template, request, redirect, url_for
|
from flask import Flask, render_template, request, redirect, url_for, Response
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
app = Flask(__name__)
|
|
||||||
|
|
||||||
# Load environment variables from .env file
|
# Load environment variables from .env file
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
|
||||||
# Mock data for configuration
|
app = Flask(__name__, template_folder='templates')
|
||||||
config = {
|
|
||||||
"excluded_countries": os.getenv('EXCLUDED_COUNTRIES', '[]'),
|
|
||||||
"preferred_protocols": os.getenv('PREFERRED_PROTOCOLS', '["https", "http"]'),
|
|
||||||
"preferred_types": os.getenv('PREFERRED_TYPES', '["https", "http"]'),
|
|
||||||
"min_preference": os.getenv('MIN_PREFERENCE', '0')
|
|
||||||
}
|
|
||||||
|
|
||||||
@app.route('/dash/config', methods=['GET', 'POST'])
|
def get_config():
|
||||||
def config():
|
"""Retrieve configuration from environment variables."""
|
||||||
if request.method == 'POST':
|
return {
|
||||||
config['excluded_countries'] = request.form['excluded_countries']
|
"excluded_countries": os.getenv('EXCLUDED_COUNTRIES', '[]'),
|
||||||
config['preferred_protocols'] = request.form['preferred_protocols']
|
"preferred_protocols": os.getenv('PREFERRED_PROTOCOLS', '["https", "http"]'),
|
||||||
config['preferred_types'] = request.form['preferred_types']
|
"preferred_types": os.getenv('PREFERRED_TYPES', '["https", "http"]'),
|
||||||
config['min_preference'] = request.form['min_preference']
|
"min_preference": os.getenv('MIN_PREFERENCE', '0')
|
||||||
return redirect(url_for('config'))
|
}
|
||||||
return render_template('config.html', **config)
|
|
||||||
|
|
||||||
@app.route('/dash/stats')
|
|
||||||
def stats():
|
|
||||||
return render_template('stats.html')
|
|
||||||
|
|
||||||
@app.route('/dash/logs')
|
|
||||||
def logs():
|
|
||||||
return render_template('logs.html')
|
|
||||||
|
|
||||||
@app.route('/metalink')
|
@app.route('/metalink')
|
||||||
def get_metalink():
|
def get_metalink():
|
||||||
@@ -52,11 +35,12 @@ def get_metalink():
|
|||||||
response = requests.get(metalink_url)
|
response = requests.get(metalink_url)
|
||||||
metalink_content = response.content
|
metalink_content = response.content
|
||||||
|
|
||||||
# Parse the .env file to get the filtering criteria
|
# Get the filtering criteria from environment variables
|
||||||
excluded_countries = eval(os.getenv('EXCLUDED_COUNTRIES', '[]'))
|
config = get_config()
|
||||||
preferred_protocols = eval(os.getenv('PREFERRED_PROTOCOLS', '["https", "http"]'))
|
excluded_countries = eval(config['excluded_countries'])
|
||||||
preferred_types = eval(os.getenv('PREFERRED_TYPES', '["https", "http"]'))
|
preferred_protocols = eval(config['preferred_protocols'])
|
||||||
min_preference = int(os.getenv('MIN_PREFERENCE', '0'))
|
preferred_types = eval(config['preferred_types'])
|
||||||
|
min_preference = int(config['min_preference'])
|
||||||
|
|
||||||
# Filter out the URLs based on the criteria
|
# Filter out the URLs based on the criteria
|
||||||
filtered_content = filter_urls(metalink_content, excluded_countries, preferred_protocols, preferred_types, min_preference)
|
filtered_content = filter_urls(metalink_content, excluded_countries, preferred_protocols, preferred_types, min_preference)
|
||||||
@@ -90,5 +74,27 @@ def filter_urls(content, excluded_countries, preferred_protocols, preferred_type
|
|||||||
|
|
||||||
return filtered_content
|
return filtered_content
|
||||||
|
|
||||||
|
@app.route('/dash/config', methods=['GET', 'POST'])
|
||||||
|
def config_route():
|
||||||
|
if request.method == 'POST':
|
||||||
|
# Update environment variables with form data
|
||||||
|
os.environ['EXCLUDED_COUNTRIES'] = request.form.get('excluded_countries', '')
|
||||||
|
os.environ['PREFERRED_PROTOCOLS'] = request.form.get('preferred_protocols', '')
|
||||||
|
os.environ['PREFERRED_TYPES'] = request.form.get('preferred_types', '')
|
||||||
|
os.environ['MIN_PREFERENCE'] = request.form.get('min_preference', '')
|
||||||
|
|
||||||
|
return redirect(url_for('config_route'))
|
||||||
|
|
||||||
|
config = get_config()
|
||||||
|
return render_template('config.html', **config)
|
||||||
|
|
||||||
|
@app.route('/dash/stats')
|
||||||
|
def stats():
|
||||||
|
return render_template('stats.html')
|
||||||
|
|
||||||
|
@app.route('/dash/logs')
|
||||||
|
def logs():
|
||||||
|
return render_template('logs.html')
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
app.run(debug=True)
|
app.run(host='0.0.0.0', port=8182)
|
||||||
|
|||||||
Reference in New Issue
Block a user