avoid db lookups for icons
This commit is contained in:
parent
05db6f042d
commit
a7db68236c
1 changed files with 28 additions and 0 deletions
|
@ -91,6 +91,34 @@ icons = Icons(icons_db_path)
|
||||||
|
|
||||||
@run_async
|
@run_async
|
||||||
def get_icon(app, id, type_, size, callback):
|
def get_icon(app, id, type_, size, callback):
|
||||||
|
if size:
|
||||||
|
skey = '%s:%s:%s' % (type_, id, size)
|
||||||
|
data = icons[skey]
|
||||||
|
if data:
|
||||||
|
callback(str(data))
|
||||||
|
return
|
||||||
|
key = '%s:%s' % (type_, id)
|
||||||
|
if not icons[key]:
|
||||||
|
type_ = 'preview' if type_ == 'cover' else 'cover'
|
||||||
|
if size:
|
||||||
|
skey = '%s:%s:%s' % (type_, id, size)
|
||||||
|
data = None
|
||||||
|
if size:
|
||||||
|
data = icons[skey]
|
||||||
|
if data:
|
||||||
|
size = None
|
||||||
|
if not data:
|
||||||
|
data = icons[key]
|
||||||
|
if not data:
|
||||||
|
data = icons.black()
|
||||||
|
size = None
|
||||||
|
if size:
|
||||||
|
data = icons[skey] = resize_image(data, size=size)
|
||||||
|
data = str(data) or ''
|
||||||
|
callback(data)
|
||||||
|
|
||||||
|
@run_async
|
||||||
|
def get_icon_app(app, id, type_, size, callback):
|
||||||
with app.app_context():
|
with app.app_context():
|
||||||
from item.models import Item
|
from item.models import Item
|
||||||
item = Item.get(id)
|
item = Item.get(id)
|
||||||
|
|
Loading…
Reference in a new issue