Web M&M
https://mam.matfyz.cz
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.
31 lines
1.0 KiB
31 lines
1.0 KiB
from random import choices
|
|
from django.shortcuts import render
|
|
|
|
def fanik_middleware(get_response):
|
|
# Mapování uživatelských jmen na blbý kecy (+ váhy), obsah odkazu ap.
|
|
config = {
|
|
'fanik': {
|
|
'kecy': [
|
|
(r'<h1>Co je web?</h1><p>– 8. 11. 2021</p>', 10),
|
|
(r'<h1>Mě to nezajímá.</h1><p>– 8. 11. 2021</p>', 5),
|
|
],
|
|
'link': r'<a href="mailto:web@mam.mff.cuni.cz?subject=Omluva%20webařům&body=Převelice%20se%20omlouvám.">Svůj postoj jsem přehodnotil</a>',
|
|
},
|
|
}
|
|
|
|
def middleware(request):
|
|
if request.user.is_authenticated:
|
|
username = request.user.username
|
|
if username in config:
|
|
kecy = config[username]['kecy']
|
|
vahy = [x[1] for x in kecy]
|
|
kec = choices([x[0] for x in kecy], weights=vahy, k=1)[0]
|
|
template_name = 'universal.html'
|
|
context = {}
|
|
context['raw_html'] = kec + config[username]['link']
|
|
return render(request,template_name,context)
|
|
|
|
# Ve všech ostatních případech vrátíme výsledek původního dotazu
|
|
return get_response(request)
|
|
|
|
return middleware
|
|
|