Merge pull request #9 from uw935/hotfix/userid

v1.2.1 — hotfix #1
This commit is contained in:
Mark
2024-02-28 00:57:33 +03:00
committed by GitHub
7 changed files with 60 additions and 24 deletions
+4 -2
View File
@@ -1,7 +1,7 @@
<br>
<p align="center">
<img align="center" src="media/cover.png">
<h3 align="center">VATSIM Fox</h3>
<h3 align="center">VATSIM Fox — v1.2</h3>
<p align="center">Website to find out your detailed VATSIM stastic</p>
</p>
<br>
@@ -14,7 +14,7 @@ Project based on [Virtual Air Traffic Simulation Network (VATSIM) API](https://v
Written in Python 3.8.18 + JS (JQuery framework) + Boostrap
## Startup
For run application on your own machine, you must install docker. Then just one command in the "src" folder with the project source code:
To run application on your own machine, you must install docker. Then just one command in the "src" folder with the project source code:
```bash
docker compose up
@@ -37,6 +37,8 @@ python -m venv venv
# downloading requirements && upgrading pip
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
# starting application
python -m flask run --host 0.0.0.0 --debug
```
## Feature
+6 -3
View File
@@ -19,9 +19,12 @@ def errorhandler_page(_):
@app.route("/api/request")
def request_handler():
if request_string := request.args.get("request_string"):
return requests.get(f"{VATSIM_API_URL}{request_string}").json()
try:
return requests.get(f"{VATSIM_API_URL}{request_string}").json()
except requests.exceptions.JSONDecodeError:
return jsonify({"result": "error", "message": "Something went wrong. Report that error please"})
return jsonify({"result": "not found"})
return jsonify({"result": "not found", "message": "Not found"})
@app.route("/<int:cid>/")
@@ -31,7 +34,7 @@ def viewer_page(cid):
if "detail" in user and user["detail"] == "Not Found":
return abort(404)
return render_template("viewer.html", data=(user, ))
return render_template("viewer.html", user=user)
if __name__ == "__main__":
+4
View File
@@ -6,3 +6,7 @@
.fox_active, .fox_atc_active {
background-color: #dee2e6 !important;
}
#notification_wrapper {
display: none;
}
+13 -5
View File
@@ -2,8 +2,10 @@
let userSession = {};
fetch(ATC_API_URL, {}).then(response => response.json()).then(result => {
if (result && result["result"] == "not found")
return
if (result && (result["result"] == "not found" || result["result"] == "error")) {
showAlert("Error while getting ATC information", result["message"]);
return;
}
for (let session of result["items"]) {
// Separate each session by it's connection ID
@@ -72,13 +74,13 @@ $.getJSON("/static/data/airports.json", function(json) {
// Map creation
const MAP_ELEMENT = L.map("fox_map");
const MAP_DEFAULT_TARGET = L.latLng("47.50737", "19.04611");
const MAP_DEFAULT_ZOOM_VIEW = 14;
const MAP_DEFAULT_ZOOM_VIEW = 2;
const MAP_DEFAULT_TARGET = L.latLng("0", "0");
let line = null;
MAP_ELEMENT.setView(MAP_DEFAULT_TARGET, MAP_DEFAULT_ZOOM_VIEW);
L.tileLayer("http://{s}.tile.osm.org/{z}/{x}/{y}.png", {
L.tileLayer("https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png", {
attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors',
subdomains: "abcd",
maxZoom: 20,
@@ -153,3 +155,9 @@ function showSession(session) {
$(".atc_transfers").text(session["handoffsinitiated"]);
$(".atc_received").text(session["handoffsreceived"]);
}
function showAlert(title, message) {
$("#notification_wrapper").css("display", "block");
$("#notification_title").text(title);
$("#notification_message").text(message);
}
+20 -8
View File
@@ -18,8 +18,20 @@
{% block header_css %}{% endblock %}
</head>
<style>
.btn-outline-primary:hover, .btn-outline-primary:active {
color: white !important;
background-color: var(--main-rgb) !important;
border-color: var(--main-rgb) !important;
}
.btn-outline-primary {
border-color: var(--main-rgb);
color: var(--main-rgb);
}
:root {
--bs-primary-rgb: 250, 130, 50
--main-rgb: #FA8232;
--bs-primary-rgb: 250, 130, 50
}
</style>
<body>
@@ -33,13 +45,13 @@
{% block content %}{% endblock %}
<footer class="pt-3 mt-4 text-muted border-top">
created by <a href="https://uw935.t.me/" style="text-decoration: underline; cursor: pointer;">uw935</a> (1606255)
</footer>
</div>
</main>
<footer class="pt-3 mt-4 text-muted border-top">
created by <a href="https://uw935.t.me/" style="text-decoration: underline; cursor: pointer;">uw935</a> (1606255)
</footer>
</div>
</main>
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
{% block javascript_code %}{% endblock %}
<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
{% block javascript_code %}{% endblock %}
</body>
</html>
+1 -1
View File
@@ -7,7 +7,7 @@
<p class="col-md-8 fs-4">See your detailed profile statistic</p>
<div class="d-flex" role="search">
<input class="fox_input form-control me-2" type="number" placeholder="100000" aria-label="CID">
<button class="fox_submit btn btn-outline-success" type="submit">Search</button>
<button class="fox_submit btn btn-outline-primary" type="submit">Search</button>
</div>
<p class="fox_message text-primary col-md-8 fs-4"></p>
</div>
+12 -5
View File
@@ -1,12 +1,19 @@
{% extends "/include/template.html" %}
{% block title %}User {{user_cid}} statistic — VATSIM Fox{% endblock %}
{% block title %}User {{user["id"]}} statistic — VATSIM Fox{% endblock %}
{% block header_css %}
<link rel="stylesheet" href="{{ url_for('static', filename='viewer.css') }}">
<link href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" rel="stylesheet"/>
{% endblock %}
{% block content %}
<div class="mb-5">
<h2 class="text-center text-primary mb-4">{{data[0]["id"]}}</h2>
<div id="notification_wrapper">
<div class="mb-4 alert alert-warning" role="alert">
<h4 id="notification_title"></h4>
<span id="notification_message"></span>
</div>
</div>
<h2 class="text-center text-primary mb-4">{{user["id"]}}</h2>
<p class="fs-4 text-secondary">Date of registration: <span class="date_registration"></span></p>
</div>
@@ -91,7 +98,7 @@
<div class="col-md" style="height: 321px;">
<div class="h-auto p-5 bg-light border rounded-3">
<h2 class="atc_callsign">UUEE_DEL</h2>
<h2 class="atc_callsign">Callsign</h2>
<span>
<b>Start time:</b>
<span class="atc_start_time"></span>
@@ -133,11 +140,11 @@
{% block javascript_code %}
<script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js"></script>
<script type="text/javascript">
const USER_CID = '{{data[0]["id"]}}';
const USER_CID = '{{user["id"]}}';
const FLIGHTPLANS_API_URL = "/api/request?request_string=members/" + USER_CID + "/flightplans";
const ATC_API_URL = "/api/request?request_string=members/" + USER_CID + "/atc";
$(".date_registration").text("{{data[0]['reg_date']}}".replace("T", " "));
$(".date_registration").text("{{user['reg_date']}}".replace("T", " "));
</script>
<script type="text/javascript" src="{{ url_for('static', filename='viewer.js') }}"></script>
{% endblock %}