forked from platypush/platypush
114 lines
3.7 KiB
Python
114 lines
3.7 KiB
Python
from flask import Blueprint, jsonify, send_from_directory
|
|
|
|
from platypush.config import Config
|
|
from platypush.backend.http.app import template_folder
|
|
|
|
pwa = Blueprint('pwa', __name__, template_folder=template_folder)
|
|
|
|
# Declare routes list
|
|
__routes__ = [
|
|
pwa,
|
|
]
|
|
|
|
|
|
@pwa.route('/manifest.json', methods=['GET'])
|
|
def manifest_json():
|
|
"""Generated manifest file for the PWA"""
|
|
return jsonify(
|
|
{
|
|
"name": f'Platypush @ {Config.get("device_id")}',
|
|
"short_name": Config.get('device_id'),
|
|
"icons": [
|
|
{
|
|
"src": "/img/icons/favicon-16x16.png",
|
|
"sizes": "16x16",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/favicon-32x32.png",
|
|
"sizes": "32x32",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/apple-touch-icon-60x60.png",
|
|
"sizes": "60x60",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/apple-touch-icon-76x76.png",
|
|
"sizes": "76x76",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/apple-touch-icon-120x120.png",
|
|
"sizes": "120x120",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/msapplication-icon-144x144.png",
|
|
"sizes": "144x144",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/mstile-150x150.png",
|
|
"sizes": "150x150",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/apple-touch-icon-152x152.png",
|
|
"sizes": "152x152",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/apple-touch-icon-180x180.png",
|
|
"sizes": "180x180",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/android-chrome-192x192.png",
|
|
"sizes": "192x192",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/android-chrome-maskable-192x192.png",
|
|
"sizes": "192x192",
|
|
"type": "image/png",
|
|
"purpose": "maskable",
|
|
},
|
|
{
|
|
"src": "/img/icons/logo-256x256.png",
|
|
"sizes": "256x256",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/android-chrome-512x512.png",
|
|
"sizes": "512x512",
|
|
"type": "image/png",
|
|
},
|
|
{
|
|
"src": "/img/icons/android-chrome-maskable-512x512.png",
|
|
"sizes": "512x512",
|
|
"type": "image/png",
|
|
"purpose": "maskable",
|
|
},
|
|
],
|
|
"gcm_sender_id": "",
|
|
"gcm_user_visible_only": True,
|
|
"start_url": "/",
|
|
"permissions": ["gcm"],
|
|
"orientation": "portrait",
|
|
"display": "standalone",
|
|
"theme_color": "#000000",
|
|
"background_color": "#ffffff",
|
|
}
|
|
)
|
|
|
|
|
|
@pwa.route('/service-worker.js', methods=['GET'])
|
|
def service_worker_js():
|
|
"""URL that serves the service worker for the PWA"""
|
|
return send_from_directory(template_folder, 'service-worker.js')
|
|
|
|
|
|
# vim:sw=4:ts=4:et:
|