Added traffic info

This commit is contained in:
2023-11-05 19:32:50 +02:00
parent e2f9b01269
commit bb1bc2e132
4 changed files with 28 additions and 13 deletions

5
.idea/misc.xml generated
View File

@ -1,6 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (OutlineFleet)" project-jdk-type="Python SDK" />
<component name="Black">
<option name="sdkName" value="Python 3.10 (outfleet)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (outfleet)" project-jdk-type="Python SDK" />
<component name="PyCharmProfessionalAdvertiser">
<option name="shown" value="true" />
</component>

View File

@ -75,13 +75,16 @@ def index():
add_server=request.args.get('add_server', None),
format_timestamp=format_timestamp,
)
else:
elif request.method == 'POST':
server = request.form['server_id']
server = next((item for item in SERVERS if item.info()["server_id"] == server), None)
server.apply_config(request.form)
update_state()
return redirect(
url_for('index', nt="Updated Outline VPN Server", selected_server=request.args.get('selected_server')))
else:
return redirect(
url_for('index'))
@app.route('/clients', methods=['GET', 'POST'])
@ -176,7 +179,7 @@ def add_client():
update_state()
return redirect(url_for('clients', nt="Clients updated", selected_client=request.form.get('user_id')))
else:
return redirect(url_for('index'))
return redirect(url_for('clients'))
@app.route('/del_client', methods=['POST'])

View File

@ -83,8 +83,9 @@
<input type="hidden" class="pure-u-1" name="user_id" value="{{selected_client}}"/>
<div class="pure-checkbox">
<p>Allow access to:</p>
{% for server in SERVERS %}
<label class="pure-checkbox" for="option{{loop.index0}}">{{server.info()["name"]}}
<label class="pure-checkbox" for="option{{loop.index0}}">{{server.info()["name"]}}{% if server.info()['server_id'] in client['servers'] %} ( Used {% for key in server.data["keys"] %}{% if key.name == client['name'] %}{{ (key.used_bytes if key.used_bytes else 0) | filesizeformat }}{% endif %}{% endfor %}){%endif%}
<input
{% if server.info()['server_id'] in client['servers'] %}checked{%endif%}
type="checkbox" id="option{{loop.index0}}" name="servers" value="{{server.info()['server_id']}}"></label>
@ -100,13 +101,15 @@
<div>
<h3>Invite text</h3><hr>
<p>Install OutLine VPN. Copy and paste below keys to OutLine client.</p>
{% for server in SERVERS %}
<textarea style="width: 100%; rows=10">
Install OutLine VPN. Copy and paste below keys to OutLine client.
{% for server in SERVERS -%}
{% if server.info()['server_id'] in client['servers'] %}
<b>{{server.info()['name']}}</b></br>
<code>{% for key in server.data["keys"] %}{% if key.name == client['name'] %}ssconf://{{ dynamic_hostname }}/dynamic/{{server.info()['name']}}/{{selected_client}}#{{server.info()['comment']}}{% endif %}{% endfor %}</code></br></br>
{{server.info()['name']}}
```{% for key in server.data["keys"] %}{% if key.name == client['name'] %}ssconf://{{ dynamic_hostname }}/dynamic/{{server.info()['name']}}/{{selected_client}}#{{server.info()['comment']}}{% endif %}{% endfor %}```
{% endif %}
{% endfor %}
{%- endfor -%}</textarea>
</div>
<hr>
<div style="padding-top: 15px; padding-bottom: 15px">
@ -164,7 +167,6 @@
<button type="submit" class="pure-button button-error pure-input-1 ">Delete</button>
</form>
</div>
</div>
{% endif %}

View File

@ -81,8 +81,15 @@
<!-- </div>-->
</div>
{% set ns = namespace(total_bytes=0) %}
{% for key in SERVERS[selected_server|int].data["keys"] %}
{% if key.used_bytes %}
{% set ns.total_bytes = ns.total_bytes + key.used_bytes %}
{% endif %}
{% endfor %}
<div class="server-content-body">
<h3>Clients: {{ server.info()['keys']|length }}</h3>
<h3>Total traffic: {{ ns.total_bytes | filesizeformat }}</h3>
<form class="pure-form pure-form-stacked" method="POST">
<fieldset>
<div class="pure-g">