master
daz 2013-11-26 16:00:33 +01:00
parent cf25017490
commit 9d3e9bd248
2 changed files with 11 additions and 8 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

View File

@ -1,28 +1,31 @@
from papiezator.models import Pope, PerfectPope, decimal_places from papiezator.models import Pope, PerfectPope, decimal_places
from PIL import Image from PIL import Image
from os import path
import decimal import decimal
PREFIX = "popes" PREFIX = "popes"
class ENOPopeException(Exception): pass
def select_best_pope(aspect_ratio): def select_best_pope(aspect_ratio):
aspect_ratio = decimal.Decimal(
round(aspect_ratio, decimal_places)
)
pp = PerfectPope.objects.filter(aspect_ratio=aspect_ratio) pp = PerfectPope.objects.filter(aspect_ratio=aspect_ratio)
if pp: if pp:
return pp[0].pope.path return pp[0].pope.path
aspect_ratio = decimal.Decimal(aspect_ratio)
lte = Pope.objects.filter(aspect_ratio__lte=aspect_ratio).order_by('-aspect_ratio') lte = Pope.objects.filter(aspect_ratio__lte=aspect_ratio).order_by('-aspect_ratio')
gte = Pope.objects.filter(aspect_ratio__gte=aspect_ratio).order_by('aspect_ratio') gte = Pope.objects.filter(aspect_ratio__gte=aspect_ratio).order_by('aspect_ratio')
if not gte: if not gte and not lte:
raise ENOPopeException
elif not gte:
return lte[0].path return lte[0].path
elif not lte: elif not lte:
return gte[0].path return gte[0].path
elif not gte and not lte:
return "papiez.jpg"
else: else:
r_lte = abs(aspect_ratio/lte[0].aspect_ratio) r_lte = abs(aspect_ratio - lte[0].aspect_ratio)
r_gte = abs(aspect_ratio/gte[0].aspect_ratio) r_gte = abs(aspect_ratio - gte[0].aspect_ratio)
if r_lte >= r_gte: if r_lte >= r_gte:
pp = PerfectPope(aspect_ratio=aspect_ratio, pope=gte[0]).save() pp = PerfectPope(aspect_ratio=aspect_ratio, pope=gte[0]).save()
return gte[0].path return gte[0].path
@ -30,11 +33,11 @@ def select_best_pope(aspect_ratio):
pp = PerfectPope(aspect_ratio=aspect_ratio, pope=lte[0]).save() pp = PerfectPope(aspect_ratio=aspect_ratio, pope=lte[0]).save()
return lte[0].path return lte[0].path
class PopeMaster: class PopeMaster:
def __init__(self): def __init__(self):
pass pass
def parse_popes(self): def parse_popes(self):
self.parse_pope("papiez.jpg") self.parse_pope("papiez.jpg")