X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/04cb9d727764da3c0d3ba30783ba25dc828e3899..0c10af94c3d8f16624d5a8ac775502f92c085cde:/apps/catalogue/utils.py?ds=sidebyside diff --git a/apps/catalogue/utils.py b/apps/catalogue/utils.py index 72b097392..566eaf4cd 100644 --- a/apps/catalogue/utils.py +++ b/apps/catalogue/utils.py @@ -1,8 +1,12 @@ # -*- coding: utf-8 -*- +# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# import random import time from base64 import urlsafe_b64encode +from django.core.files.uploadedfile import UploadedFile from django.utils.hashcompat import sha_constructor from django.conf import settings @@ -16,7 +20,7 @@ MAX_SESSION_KEY = 18446744073709551616L # 2 << 63 def get_random_hash(seed): - sha_digest = sha_constructor('%s%s%s%s' % + sha_digest = sha_constructor('%s%s%s%s' % (randrange(0, MAX_SESSION_KEY), time.time(), unicode(seed).encode('utf-8', 'replace'), settings.SECRET_KEY)).digest() return urlsafe_b64encode(sha_digest).replace('=', '').replace('_', '-').lower() @@ -28,3 +32,15 @@ def split_tags(tags): result.setdefault(tag.category, []).append(tag) return result + +class ExistingFile(UploadedFile): + + def __init__(self, path, *args, **kwargs): + self.path = path + return super(ExistingFile, self).__init__(*args, **kwargs) + + def temporary_file_path(self): + return self.path + + def close(self): + pass