a Django-based indieweb.org site
https://00dani.me/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
873 B
30 lines
873 B
from django.http import JsonResponse |
|
from django.urls import reverse |
|
from ..favicons import icons |
|
from lemoncurry import utils |
|
from lemoncurry.theme import color |
|
from urllib.parse import urljoin |
|
from textwrap import shorten |
|
|
|
|
|
def manifest_icons(base): |
|
return [{'src': i.url, 'type': i.mime, 'sizes': i.sizes} for i in sorted(icons, key=lambda i: i.size)] |
|
|
|
|
|
def manifest(request): |
|
base = utils.origin(request) |
|
start_url = reverse('home:index') + '?utm_source=homescreen' |
|
|
|
app = { |
|
'name': request.site.name, |
|
'short_name': shorten(request.site.name, width=20, placeholder=''), |
|
'icons': manifest_icons(base), |
|
|
|
'display': 'browser', |
|
'start_url': urljoin(base, start_url), |
|
|
|
'background_color': color(0), |
|
'theme_color': color(3), |
|
} |
|
|
|
return JsonResponse(app, content_type='application/manifest+json')
|
|
|