mirror of
https://github.com/Hopiu/django-imagekit.git
synced 2026-03-16 21:30:23 +00:00
Move filename generation to generator
This commit is contained in:
parent
20c900df4a
commit
236eea8459
2 changed files with 16 additions and 13 deletions
|
|
@ -4,8 +4,8 @@ from django.core.files.images import ImageFile
|
|||
from django.utils.encoding import smart_str, smart_unicode
|
||||
import os
|
||||
from .signals import before_access
|
||||
from .utils import (format_to_mimetype, format_to_extension,
|
||||
extension_to_mimetype, get_logger, get_singleton)
|
||||
from .utils import (format_to_mimetype, extension_to_mimetype, get_logger,
|
||||
get_singleton)
|
||||
|
||||
|
||||
class BaseIKFile(File):
|
||||
|
|
@ -92,14 +92,8 @@ class GeneratedImageCacheFile(BaseIKFile, ImageFile):
|
|||
'file storage backend')
|
||||
super(GeneratedImageCacheFile, self).__init__(storage=storage)
|
||||
|
||||
def get_default_filename(self):
|
||||
hash = self.generator.get_hash()
|
||||
ext = format_to_extension(self.generator.format)
|
||||
return os.path.join(settings.IMAGEKIT_CACHE_DIR,
|
||||
'%s%s' % (hash, ext))
|
||||
|
||||
def _get_name(self):
|
||||
return self._name or self.get_default_filename()
|
||||
return self._name or self.generator.get_filename()
|
||||
|
||||
def _set_name(self, value):
|
||||
self._name = value
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@ from ..files import GeneratedImageCacheFile, IKContentFile
|
|||
from ..imagecache.backends import get_default_image_cache_backend
|
||||
from ..imagecache.strategies import StrategyWrapper
|
||||
from ..processors import ProcessorPipeline
|
||||
from ..utils import open_image, extension_to_format, img_to_fobj
|
||||
from ..utils import (open_image, extension_to_format, img_to_fobj,
|
||||
suggest_extension)
|
||||
from ..registry import generator_registry, register
|
||||
|
||||
|
||||
|
|
@ -40,9 +41,6 @@ class BaseImageSpec(object):
|
|||
self.image_cache_backend = self.image_cache_backend or get_default_image_cache_backend()
|
||||
self.image_cache_strategy = StrategyWrapper(self.image_cache_strategy)
|
||||
|
||||
def get_hash(self):
|
||||
raise NotImplementedError
|
||||
|
||||
def generate(self, source_file, filename=None):
|
||||
raise NotImplementedError
|
||||
|
||||
|
|
@ -91,6 +89,17 @@ class ImageSpec(BaseImageSpec):
|
|||
self.kwargs = kwargs
|
||||
super(ImageSpec, self).__init__()
|
||||
|
||||
def get_filename(self):
|
||||
source_filename = self.kwargs['source_file'].name
|
||||
ext = suggest_extension(source_filename, self.format)
|
||||
return os.path.normpath(os.path.join(
|
||||
settings.IMAGEKIT_CACHE_DIR,
|
||||
os.path.splitext(source_filename)[0],
|
||||
'%s%s' % (self.get_hash(), ext)))
|
||||
|
||||
return os.path.join(settings.IMAGEKIT_CACHE_DIR,
|
||||
'%s%s' % (hash, ext))
|
||||
|
||||
def get_hash(self):
|
||||
return md5(''.join([
|
||||
pickle.dumps(self.kwargs),
|
||||
|
|
|
|||
Loading…
Reference in a new issue