fix duplicated shelves
[wolnelektury.git] / src / catalogue / models / book.py
index 004c27e..b71926e 100644 (file)
@@ -233,7 +233,7 @@ class Book(models.Model):
     def get_audio_length(self):
         from mutagen.mp3 import MP3
         total = 0
-        for media in self.get_mp3():
+        for media in self.get_mp3() or ():
             audio = MP3(media.file.path)
             total += audio.info.length
         return int(total)
@@ -770,6 +770,17 @@ class Book(models.Model):
     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: