From 66aa98701390fc7b7c7b81a376e0a24dac81f543 Mon Sep 17 00:00:00 2001 From: Nathan Woodburn Date: Tue, 17 Sep 2024 15:38:58 +1000 Subject: [PATCH] feat: Add manifest.json to allow installing pwa --- server.py | 10 ++++++++-- templates/assets/img/favicon.png | Bin 29332 -> 29113 bytes templates/index.html | 1 + templates/manifest.json | 15 +++++++++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 templates/manifest.json diff --git a/server.py b/server.py index 575c0c4..2ea798a 100644 --- a/server.py +++ b/server.py @@ -101,8 +101,6 @@ def send_report(path): ): if os.path.isfile("templates/assets/img/" + filename): return send_from_directory("templates/assets/img", filename) - if os.path.isfile("templates/assets/img/favicon/" + filename): - return send_from_directory("templates/assets/img/favicon", filename) return render_template("404.html"), 404 @@ -870,6 +868,14 @@ def index(): ) +@app.route("/manifest.json") +def manifest(): + with open("templates/manifest.json", "r") as file: + manifest = json.load(file) + manifest["start_url"] = request.url_root + return jsonify(manifest) + + @app.route("/") def catch_all(path: str): if os.path.isfile("templates/" + path): diff --git a/templates/assets/img/favicon.png b/templates/assets/img/favicon.png index 88ddd853bf4df98e47beaa14c0dd2b18155619e6..dd8950d98d319a7753b0af17201b8229ea4e71ca 100644 GIT binary patch delta 25687 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 diff --git a/templates/index.html b/templates/index.html index 0a1aadc..68e7bda 100644 --- a/templates/index.html +++ b/templates/index.html @@ -34,6 +34,7 @@ + diff --git a/templates/manifest.json b/templates/manifest.json new file mode 100644 index 0000000..dfe2b6e --- /dev/null +++ b/templates/manifest.json @@ -0,0 +1,15 @@ +{ + "name": "HNSDoH Status", + "short_name": "HNSDoH Status", + "start_url": "https://{{host}}/", + "display": "standalone", + "background_color": "#212529", + "theme_color": "#212529", + "orientation": "portrait-primary", + "icons": [ + { + "src": "/favicon.png", + "sizes": "500x500" + } + ] + } \ No newline at end of file