master
parent
cf25017490
commit
9d3e9bd248
BIN
papiez.jpg
BIN
papiez.jpg
Binary file not shown.
Before Width: | Height: | Size: 132 KiB |
|
@ -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")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue