html_built = django.dispatch.Signal()
published = django.dispatch.Signal()
- short_html_url_name = 'catalogue_book_short'
-
class AlreadyExists(Exception):
pass
return '%d:%02d:%02d' % (hours, minutes, seconds)
def get_audio_length(self):
- from mutagen.mp3 import MP3
total = 0
for media in self.get_mp3() or ():
- audio = MP3(media.file.path)
- total += audio.info.length
+ total += app_settings.GET_MP3_LENGTH(media.file.path)
return int(total)
def has_media(self, type_):
def fragment_data(self):
fragment = self.choose_fragment()
if fragment:
- return {'title': fragment.book.pretty_title(), 'html': fragment.get_short_text()}
+ return {
+ 'title': fragment.book.pretty_title(),
+ 'html': re.sub('</?blockquote[^>]*>', '', fragment.get_short_text()),
+ }
else:
return None
def ridero_link(self):
return 'https://ridero.eu/%s/books/wl_%s/' % (get_language(), self.slug.replace('-', '_'))
+ def like(self, user):
+ from social.utils import likes, get_set, set_sets
+ if not likes(user, self):
+ tag = get_set(user, '')
+ set_sets(user, self, [tag])
+
+ def unlike(self, user):
+ from social.utils import likes, set_sets
+ if likes(user, self):
+ set_sets(user, self, [])
+
def add_file_fields():
for format_ in Book.formats: