[Sync] Image update: do not compile unchanged images
This commit is contained in:
1 parent
63796dfab3
commit
98f9de7d60
2 files changed
+43
-5
No files matched your search
@@ -13,7 +13,9 @@ import logging
|
||||
import settings
|
||||
from utils.image.resize import optimize, thumbnail
|
||||
|
||||
logger = logging.getLogger(settings.name)
|
||||
logger = logging.getLogger(settings.name + '.Image')
|
||||
|
||||
store = collection(settings.collection_images)
|
||||
|
||||
|
||||
def get_upload_url(url):
|
||||
@@ -21,12 +23,25 @@ def get_upload_url(url):
|
||||
|
||||
|
||||
class Image(Model):
|
||||
@staticmethod
|
||||
async def find_one(query):
|
||||
document = store.find_one(query)
|
||||
return document
|
||||
|
||||
@staticmethod
|
||||
async def new(provider, file, sizes, url_factory):
|
||||
img = Image(provider, file, url_factory)
|
||||
await img.compile(sizes)
|
||||
await img.upload()
|
||||
await img.save()
|
||||
changed = await img.is_changed()
|
||||
if changed:
|
||||
await img.compile(sizes)
|
||||
await img.upload()
|
||||
await img.save()
|
||||
else:
|
||||
doc = await Image.find_one({'file': file})
|
||||
|
||||
img.image = [i for i in doc['data'].values()]
|
||||
img.id = doc['_id']
|
||||
|
||||
return img
|
||||
|
||||
def __init__(self, provider, file, url_factory):
|
||||
@@ -38,6 +53,10 @@ class Image(Model):
|
||||
def init(self):
|
||||
self.hash = self.__get_hash()
|
||||
|
||||
async def is_changed(self):
|
||||
i = await Image.find_one({'file': self.file})
|
||||
return self._is_changed_hash(i)
|
||||
|
||||
async def compile(self, sizes):
|
||||
img_in = self.provider.get_abs(self.file)
|
||||
img_out = tempfile.mkdtemp()
|
||||
|
||||
Reference in new issue
Block a user