-# -*- 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.
#
file = models.FileField(_('file'), max_length=600, upload_to=_file_upload_to, storage=OverwriteStorage())
uploaded_at = models.DateTimeField(_('creation date'), auto_now_add=True, editable=False, db_index=True)
extra_info = jsonfield.JSONField(_('extra information'), default={}, editable=False)
- book = models.ForeignKey('Book', related_name='media')
+ book = models.ForeignKey('Book', models.CASCADE, related_name='media')
source_sha1 = models.CharField(null=True, blank=True, max_length=40, editable=False)
def __str__(self):
artist_name = ', '.join(', '.join(tag.text) for tag in audio.getall('TPE1'))
director_name = ', '.join(', '.join(tag.text) for tag in audio.getall('TPE3'))
project = ", ".join([
- t.data for t in audio.getall('PRIV')
+ t.data.decode('utf-8') for t in audio.getall('PRIV')
if t.owner == 'wolnelektury.pl?project'])
funded_by = ", ".join([
- t.data for t in audio.getall('PRIV')
+ t.data.decode('utf-8') for t in audio.getall('PRIV')
if t.owner == 'wolnelektury.pl?funded_by'])
except MutagenError:
pass
if filetype == 'mp3':
try:
audio = id3.ID3(filepath)
- return [t.data for t in audio.getall('PRIV')
+ return [t.data.decode('utf-8') for t in audio.getall('PRIV')
if t.owner == 'wolnelektury.pl?flac_sha1'][0]
except (MutagenError, IndexError):
return None
@property
def artist(self):
return self.extra_info.get('artist_name', None)
+
+ def file_url(self):
+ return self.file.url