"""
Context processory lze přidat do djanga v :mod:`~mamweb.settings` a dělají to,
že do contextu (tj. to, z čeho se např. berou proměnné v templatech) libovolné
stránky přidají další věci.
"""
from datetime import datetime, date
import random

from django.conf import settings

from header_fotky.models import FotkaUrlVazba


def vzhled(request):
	"""
		Podle času přidá do contextu, zdali je nebo není noc. Dále podle dení
		doby a url přidá do contextu správnou fotku.

		url adresu nejprve vyzkouší celou, pak postupně odřezává věci za
		lomítkem, dokud nenajde url, pro kterou existuje alespoň jedna fotka.
		Z fotek pro toto url zkusí vybrat tu ve správné denní době a až poté
		libovolnou. (Z více možných fotek pro 1 url a 1 dobu vybírá náhodně.)
	"""
	hodin = datetime.now().hour
	if (hodin <= 6) or (hodin >= 20):
		noc = True
		nedoba = 'den'
		doba = 'noc'
	else:
		noc = False
		nedoba = 'noc'
		doba = 'den'
	url = request.path

	fotky = FotkaUrlVazba.objects.exclude(denni_doba=nedoba)
	fotka = None

	# TODO rychlejší patternmatch?
	while (fotka is None) and (url != ''):
		presne = fotky.filter(url__exact=url)
		if presne.count() > 0:
			presne_doba = presne.filter(denni_doba=doba)
			if presne_doba.count() > 0:
				fotka = random.choice(presne_doba).url_fotky()
			else:
				fotka = random.choice(presne).url_fotky()

		url = url[:-1]
		index = url.rfind('/')
		if index != -1:
			url = url[:index+1]

	if fotka is None:
		fotka = settings.STATIC_URL + "images/header/vikendovka.jpg"

	return {'noc': noc, 'fotka': fotka}