diff --git a/README.md b/README.md
index e8cef61..0ecb0db 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
-
VATSIM Fox
+ VATSIM Fox — v1.2
Website to find out your detailed VATSIM stastic
@@ -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
diff --git a/src/app.py b/src/app.py
index 00d3658..dff3806 100644
--- a/src/app.py
+++ b/src/app.py
@@ -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("//")
@@ -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__":
diff --git a/src/static/viewer.css b/src/static/viewer.css
index c03c1cc..3220435 100644
--- a/src/static/viewer.css
+++ b/src/static/viewer.css
@@ -6,3 +6,7 @@
.fox_active, .fox_atc_active {
background-color: #dee2e6 !important;
}
+
+#notification_wrapper {
+ display: none;
+}
diff --git a/src/static/viewer.js b/src/static/viewer.js
index 019fda0..8c0a63d 100644
--- a/src/static/viewer.js
+++ b/src/static/viewer.js
@@ -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: '© OpenStreetMap 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);
+}
diff --git a/src/templates/include/template.html b/src/templates/include/template.html
index ed73ee1..87bc675 100644
--- a/src/templates/include/template.html
+++ b/src/templates/include/template.html
@@ -18,8 +18,20 @@
{% block header_css %}{% endblock %}
@@ -33,13 +45,13 @@
{% block content %}{% endblock %}
-
-
-
+
+
+
-
- {% block javascript_code %}{% endblock %}
+
+ {% block javascript_code %}{% endblock %}