15 lines
708 B
Python
15 lines
708 B
Python
from django.utils.deprecation import MiddlewareMixin
|
|
|
|
class FaviconMiddleware(MiddlewareMixin):
|
|
def process_response(self, request, response):
|
|
if 'text/html' in response.get('Content-Type', '') and b'</head>' in response.content:
|
|
icon_link = (
|
|
b"<link rel='icon' href=\"data:image/svg+xml,"
|
|
b"<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120'>"
|
|
b"<text y='96' font-size='96'>\xf0\x9f\xa7\x89</text></svg>\">"
|
|
b"\n"
|
|
)
|
|
# (UTF-8 encoded 🧉 = \xf0\x9f\xa7\x89 in bytes)
|
|
response.content = response.content.replace(b'</head>', icon_link + b'</head>')
|
|
return response
|