From e1d48bf7de04cd27ce4784d39d470910eea7960c Mon Sep 17 00:00:00 2001 From: Karl Hudgell Date: Thu, 7 Nov 2024 17:00:54 +0000 Subject: [PATCH] convert to pwa app --- app.py | 5 ++- static/icons/android-launchericon-144-144.png | Bin 0 -> 6277 bytes static/icons/android-launchericon-192-192.png | Bin 0 -> 8393 bytes static/icons/android-launchericon-512-512.png | Bin 0 -> 24446 bytes static/manifest.json | 29 ++++++++++++++++++ static/service-worker.js | 22 +++++++++++++ templates/index.html | 15 +++++++++ 7 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 static/icons/android-launchericon-144-144.png create mode 100644 static/icons/android-launchericon-192-192.png create mode 100644 static/icons/android-launchericon-512-512.png create mode 100644 static/manifest.json create mode 100644 static/service-worker.js diff --git a/app.py b/app.py index 478483d..38158e4 100644 --- a/app.py +++ b/app.py @@ -1,5 +1,5 @@ # app.py -from flask import Flask, render_template, request, redirect, url_for, session, flash +from flask import Flask, render_template, request, redirect, url_for, session, flash, send_file from flask_caching import Cache import requests.auth import os @@ -17,6 +17,9 @@ app.config.from_object( ) cache = Cache(app, config={"CACHE_TYPE": "SimpleCache"}) +@app.route('/manifest.json') +def serve_manifest(): + return send_file('manifest.json', mimetype='application/manifest+json') @app.route("/favicon.ico") def favicon(): diff --git a/static/icons/android-launchericon-144-144.png b/static/icons/android-launchericon-144-144.png new file mode 100644 index 0000000000000000000000000000000000000000..b077e84d930b7ed10a7e9d2013aa323b828cd755 GIT binary patch literal 6277 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 literal 0 HcmV?d00001 diff --git a/static/icons/android-launchericon-192-192.png b/static/icons/android-launchericon-192-192.png new file mode 100644 index 0000000000000000000000000000000000000000..4f4c83d34f190bc36eca1d160c3554e9d602dc3b GIT binary patch literal 8393 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 BkJA7E literal 0 HcmV?d00001 diff --git a/static/manifest.json b/static/manifest.json new file mode 100644 index 0000000..d77aea2 --- /dev/null +++ b/static/manifest.json @@ -0,0 +1,29 @@ +{ + "name": "KTVManager", + "short_name": "KTV", + "start_url": "https://tv-ui.k-world.me.uk/", + "scope": "/", + "display": "standalone", + "theme_color": "#317EFB", + "background_color": "#317EFB", + "icons": [ + { + "src": "/static/icons/android-launchericon-144-144.png", + "sizes": "144x144", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "/static/icons/android-launchericon-192-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "any maskable" + }, + { + "src": "/static/icons/android-launchericon-512-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" + } + ] +} \ No newline at end of file diff --git a/static/service-worker.js b/static/service-worker.js new file mode 100644 index 0000000..92d09ad --- /dev/null +++ b/static/service-worker.js @@ -0,0 +1,22 @@ +self.addEventListener('install', function (event) { + event.waitUntil( + caches.open('my-cache').then(function (cache) { + return cache.addAll([ + '/', + '/index.html', + '/static/styles.css', + '/static/script.js', + '/static/icons/icon-192x192.png', + '/static/icons/icon-512x512.png' + ]); + }) + ); +}); + +self.addEventListener('fetch', function (event) { + event.respondWith( + caches.match(event.request).then(function (response) { + return response || fetch(event.request); + }) + ); +}); diff --git a/templates/index.html b/templates/index.html index 57baa12..a37ae61 100644 --- a/templates/index.html +++ b/templates/index.html @@ -6,6 +6,7 @@ KTV Manager + @@ -58,5 +59,19 @@ + +