const.py (1205B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\imagecaching\client\const.py 2 import hashlib 3 import re 4 LOGGER_NAME = 'IMAGECACHE' 5 INDEX_FILENAME = u'image_cache.fb' 6 DEFAULT_BASE_PATH = u'cache:/Storage/imagecache' 7 USER_FOLDER = u'users' 8 OUTCOME_DOWNLOADED = u'downloaded' 9 OUTCOME_NOT_MODIFIED = u'not_modified' 10 OUTCOME_SERVED_STALE = u'served_stale' 11 OUTCOME_FAILED = u'failed' 12 _EXT_BY_MIME = {u'image/png': u'.png', 13 u'image/jpeg': u'.jpg'} 14 IMAGE_EXTENSIONS = frozenset(_EXT_BY_MIME.values()) 15 16 def extension_for_content_type(content_type): 17 if not content_type: 18 return None 19 mime = content_type.split(u';', 1)[0].strip().lower() 20 return _EXT_BY_MIME.get(mime) 21 22 23 def user_cache_folder(user_id, feature_folder): 24 return u'%s/%d/%s' % (USER_FOLDER, user_id, feature_folder) 25 26 27 _UNSAFE_FILENAME_CHARS = re.compile('[^A-Za-z0-9._-]+') 28 _DIGEST_LENGTH = 8 29 _MAX_SLUG_LENGTH = 40 30 31 def image_cache_path(cache_folder, image_id): 32 slug = _UNSAFE_FILENAME_CHARS.sub(u'_', image_id)[:_MAX_SLUG_LENGTH].strip(u'_') 33 digest = hashlib.sha1(image_id.encode('utf-8')).hexdigest()[:_DIGEST_LENGTH] 34 return u'%s/%s-%s' % (cache_folder, slug or u'image', digest)