X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/c3fc1fa1087b5c12e287f6a7194d7a98fc27817e..6ed1d78c6ca14fd002c7a00867d1964e0c4ea4a8:/src/catalogue/utils.py diff --git a/src/catalogue/utils.py b/src/catalogue/utils.py index e94c67d0b..380ec8ecd 100644 --- a/src/catalogue/utils.py +++ b/src/catalogue/utils.py @@ -2,24 +2,24 @@ # This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. # -from collections import defaultdict import hashlib import os.path import random import re import time from base64 import urlsafe_b64encode - -from django.http import HttpResponse -from django.core.files.uploadedfile import UploadedFile -from django.core.files.storage import DefaultStorage -from django.utils.encoding import force_unicode -from django.conf import settings -from os import mkdir, path, unlink +from collections import defaultdict from errno import EEXIST, ENOENT from fcntl import flock, LOCK_EX +from os import mkdir, path, unlink from zipfile import ZipFile +from django.conf import settings +from django.core.files.storage import DefaultStorage +from django.core.files.uploadedfile import UploadedFile +from django.http import HttpResponse +from django.utils.encoding import force_unicode + from reporting.utils import read_chunks # Use the system (hardware-based) random number generator if it exists. @@ -85,7 +85,7 @@ class LockFile(object): try: unlink(self.lockname) except OSError as oe: - if oe.errno != EEXIST: + if oe.errno != ENOENT: raise oe self.lock.close() @@ -354,3 +354,8 @@ def gallery_path(slug): def gallery_url(slug): return '%s%s%s/' % (settings.MEDIA_URL, settings.IMAGE_DIR, slug) + + +def get_mp3_length(path): + from mutagen.mp3 import MP3 + return int(MP3(path).info.length)