- formats.append(u'<a href="%s">Plik ODT</a>' % self.odt_file.url)
-
- self._short_html = unicode(render_to_string('catalogue/book_short.html',
- {'book': self, 'tags': tags, 'formats': formats}))
- self.save()
- return mark_safe(self._short_html)
-
+ formats.append(u'<a href="%s">ODT</a>' % self.odt_file.url)
+ if self.txt_file:
+ formats.append(u'<a href="%s">TXT</a>' % self.txt_file.url)
+ if self.mp3_file:
+ formats.append(u'<a href="%s">MP3</a>' % self.mp3_file.url)
+ if self.ogg_file:
+ formats.append(u'<a href="%s">OGG</a>' % self.ogg_file.url)
+
+ formats = [mark_safe(format) for format in formats]
+
+ setattr(self, key, unicode(render_to_string('catalogue/book_short.html',
+ {'book': self, 'tags': tags, 'formats': formats})))
+ self.save(reset_short_html=False)
+ return mark_safe(getattr(self, key))
+
+
+ def get_mp3_info(self):
+ """Retrieves artist and director names from audio ID3 tags."""
+ audio = id3.ID3(self.mp3_file.path)
+ artist_name = ', '.join(', '.join(tag.text) for tag in audio.getall('TPE1'))
+ director_name = ', '.join(', '.join(tag.text) for tag in audio.getall('TPE3'))
+ return {'artist_name': artist_name, 'director_name': director_name}
+